サンプル作り(9/29朝現在のもの一覧

test001.v

----------------------

module HOGEMODULE ( // No space

input hoge ;

output hogege;

reg aaa ;
reg aaa ; // hoge hoge hoge


for ( i=0 ; i<0 ; i++ ) begin


end

DUMMY Instance ();

INST instance1 ( );
INST instance2( );
INST \instance3 ( );
INST \insta/nce4 ( );
INST \insta_nce5 ( );
INST \insta7nce6 ( );
INST insta.7nce7 ( );
INST
instance8 ( );


INST instance9 ( )
INST insta10 ( );

endmodule

module HOGE2 ( // space x 1

);


endmodule


module HOGE3 ( // tab x 1
);
endmodule

 

module HOGE3 ( // tab x 1 + space x 2
);

endmodule

 

---------------------------

 

test.pl

--------------------------

#!usr/bin/env perl

$i = 0;

while( $line = <> ) {

$i = $i + 1;


# if ( $line =~ m/\;/ ) { ★意図)「;」を含む行にマッチ
#コメント対応版(UTF-8とか日本語はNGと考えられる→.*のところ)
if ( $line =~ m/$\;\s*\n/ || $line =~ m/$\;\s*\/\/(.*)/ ) {
#★意図)行末が;スペース\nで終わるか、
#または;スペース(or無)//英語コメント、にマッチ)
print $i:
print $line;
}
}

-------------------------

test.pl

現在やりたいことに一番ちかい内容

---------------
#!usr/bin/env perl

$i=0;

while($line = <>){

$i = $i + 1;

#perlコメントアウトは #

# if ( $line =~ m/^\s+module/ ) { +を使うと先頭のスペース無(\sが0個)にマッチしない
if ( $line =~ m/^\s*module/ ) { *を使うと先頭のスペース無(\sが0個)にもマッチ(タブ、スペース何個でも対応)


print $i ;
print $line;
}


# if ( $line =~ m/^\s*[A-Z0-9_]+/ ) {
# if ( $line =~ m/^\s*[A-Z0-9_]+/ ) {
if ( $line =~ m/^\s*[A-Z0-9_]+/ ) {                 #//インスタンス名の先頭に
print $i;
print $line;
}


}

 

--------------------------