test14v3.pl

#!/usr/bin/perl
#インスタンス「(」無しには非対応

$i= 0;


while($line = <>){

$i=$i+1;
$line =~ s#\(# \(#;
$line =~ s#^\s*always.*##; #always line delete (応急処置)
$line =~ s#^\s*if\s*\(.*##; #if line delete (応急処置)
$line =~ s#^\s*else\s*.*##; #else line delete (応急処置)

if ( $line =~ m/^\s*module\s*([^ \t\n\r\f]+)\b/ ) {
$modulenext = 0;
printf ("%4d ", $i);
# print "module : ";
print "module , ";
print $line;
$modulename = $1; #()内をキャプチャして変数へ
} elsif ( $line =~ m/^\s*module\s*/ ) {
$modulenext = 1; # flag
} elsif ( $line =~ m/^\s*([^ \t\n\r\f]+)\s+([^ \t\n\r\f]+)\s*\(/ && $line !~ m/^\s*module/) {
$module_next = 0;
printf ("%4d ", $i);
# print "instance: ";
print "instance, ";
print "$modulename ,";
print $line;
} elsif ( ($modulenext == 1) && ($line =~ m/^\s*([^ \t\n\r\f]+)\s*/ ) ) {
printf ("%4d ", $i);
# print "module : ";
print "module , ";
print $line;
$modulename = $1; #()内をキャプチャして変数へ
$modulenext = 0; # clear flag
}

}