Подсчет количества '# define's в файле - PullRequest
0 голосов
/ 29 декабря 2011

Ну, я уже спрашивал, как проверить для каждого #include в файле.Может ли кто-нибудь дать мне пример, чтобы проверить, сколько #define s от начала файла до конца?

Я пытался, но безуспешно.

1 Ответ

0 голосов
/ 29 декабря 2011

В Linux / UNIX:

egrep -c "\#include|\#define" <filename>

Это даст вам количество вхождений обоих шаблонов в файл. Если вы хотите его отделить:

grep -c \#include <filename>

дает счет #include с

grep -c \#define <filename>

дает счет #define с

grep \#include <filename>

дает все строки для #include с

grep \#define <filename>

дает все строки для #defines с

Если вы хотите быть модным и искушенным в Perl:

$include_count = 0;
$define_count = 0;
open SOURCE, $filename || die $!;
while(<SOURCE>)
{
     next if( !~ /include/ && !~ /define/ );
     $line = $_;
     $orig_line = $line;
     $line =~ s/^\s+//g;
     next if( $line !~ /^# );
     if( $line =~ /include/ ) 
     {
         $include_count++;
         print "$orig_line";
     }
     if( $line =~ /define/ )
     {
         $define_count++;
         print "$orig_line";
     }
}
print "Define count $define_count . Include Count: $include_count\n";

Это быстрый и грязный скрипт, поэтому вы можете основывать свое решение на этом или написать его на Python / C / C ++ или любом другом языке, который вам подходит.

...