⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dependencygenerator.pm

📁 ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识
💻 PM
字号:
package DependencyGenerator;# ************************************************************# Description   : Runs the correct dependency generator on the file.# Author        : Chad Elliott# Create Date   : 2/10/2002# ************************************************************# ************************************************************# Pragmas# ************************************************************use strict;use Preprocessor;use DependencyWriterFactory;use ObjectGeneratorFactory;# ************************************************************# Subroutine Section# ************************************************************sub new {  my($class)    = shift;  my($macros)   = shift;  my($ipaths)   = shift;  my($replace)  = shift;  my($type)     = shift;  my($noinline) = shift;  my($exclude)  = shift;  my($self)     = bless {'pre'      => new Preprocessor($macros,                                                        $ipaths, $exclude),                         'replace'  => $replace,                         'dwrite'   => DependencyWriterFactory::create($type),                         'objgen'   => ObjectGeneratorFactory::create($type),                         'noinline' => $noinline,                        }, $class;  ## Set the current working directory, but  ## escape regular expression special characters  $self->{'cwd'} = Cwd::getcwd() . '/';  $self->{'cwd'} =~ s/([\+\-\\\$\[\]\(\)\.])/\\$1/g;  ## Sort the replace keys to get the longest key first.  This way  ## when we are replacing portions of the file path, we replace the  ## most we can.  my(@repkeys) = sort { length($b) <=> length($a) } keys %$replace;  $self->{'repkeys'} = \@repkeys;  return $self;}sub process {  my($self) = shift;  my($file) = shift;  ## Generate the dependency string  my($depstr) = $self->{'dwrite'}->process(                   $self->{'objgen'}->process($file),                   $self->{'pre'}->process($file, $self->{'noinline'}));  ## Perform the replacements on the dependency string  $depstr =~ s/$self->{'cwd'}//go;  my($replace) = $self->{'replace'};  foreach my $rep (@{$self->{'repkeys'}}) {    $depstr =~ s/$rep/$$replace{$rep}/g;  }  return $depstr;}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -