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

📄 nescprogramfiles.pm

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 PM
字号:
#!/usr/bin/perl -wpackage NescProgramFiles;use strict;use FindBin;use lib $FindBin::Bin;use FindInclude;use SlurpFile;my %Opts = ( verbose => 0 );my %deps = ();my $depnum = 1;sub getProgramFiles{    my $fileName = $_[0];    my $file = &FindInclude::find_file( $fileName );    $deps{$file} = $depnum++ if defined($file);    my $text = "";    my %unparsed = %deps;    while( (keys %unparsed) > 0 ) {	my @files = sort {$unparsed{$a} <=> $unparsed{$b}} keys %unparsed;	%unparsed = ();	for my $file (@files) {	    my @ff = parse_file( $file );	    map { $unparsed{$_} = $depnum++ } @ff;	    $text .= join("\n", $file, grep {$_ ne $file} @ff) . "\n\n" if $Opts{verbose};	}	for my $dep (keys %deps) {	    delete $unparsed{$dep};	}	for my $unp (keys %unparsed) {	    $deps{$unp} = $unparsed{$unp};	}    }    return %deps;    #$text = join("\n",sort {$deps{$a} <=> $deps{$b}} keys %deps) . "\n" unless $Opts{verbose};    #print $text;}sub parse_file {  my $file = shift;  my $text = &SlurpFile::scrub_c_comments( &SlurpFile::slurp_file( $file ) );  my @files = ();  while( $text =~ m/      (?: \b interface \s+ (\w+) )               # $1 interface    | (?: \b components \s+ ([^;]+) )            # $2 components    | (?: \b includes \s+ (\w+) )                # $3 includes    | (?: \b \#include \s+ [<"] ([^>"]+) [>"] )  # $4 #include                  /xg ) {    if( defined $1 ) {      push( @files, "$1.nc" );    } elsif( defined $2 ) {      my $tt = $2;      push( @files, map { "$_.nc" } ($tt =~ /(\w+)/g) );    } elsif( defined $3 ) {      push( @files, "$3.h" );    } elsif( defined $4 ) {      push( @files, $4 );    }  }  my %once = ();  return    grep { defined $_ }    map { &FindInclude::find_file($_) }    grep { my $o=$once{$_}; $once{$_}=1; !$o }    @files;}

⌨️ 快捷键说明

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