サンプル作り(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;
# 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;
}
}
--------------------------