プログラム
C言語プログラムの空行とコメント行以外を表示するperlスクリプト:
#!/usr/bin/perl #変数の設定 $YES=1; $NO=0; #コメント行かどうかを指定:最初はNo $COMMENT_LINE=$NO; #ファイルの読み込みと引き続く処理 while(<>){ if(/\/\/\*/){#//******とかいう行は コメント開始行にしない。 }elsif(/\/\*/){#/*という文字がきたら、ここからコメント行 $COMMENT_LINE=$YES; } if(/#ifdef DEBUG/){#ついでに、デバッグ用の#ifdef DEBUG が来たら、コメントにする。 $COMMENT_LINE=$YES; } if(/^\/\//){#//というコメント行は表示しない。 }elsif(/^$/){#空行も表示しない。 }elsif($COMMENT_LINE eq $NO){#コメント行でなければ、表示 print; } if(/\*\//){#*/が来たらコメント行が終了なので、ここで、コメント行マーカーを戻す $COMMENT_LINE=$NO; } if(/#endif/){#ついでに、デバッグ用のも忘れずに。 $COMMENT_LINE=$NO; } } # 行の途中にある/* コメント */ だけを表示しないことは、このスクリプトでは処理できない。