蛙の井戸見聞記 Pretty frog in a well who knows nothing of the great web ocean!

~~ 好奇心は猫をも殺す Curiosity Kills the Cat ~~ ♪欲しいモノ・食べたいモノ・ネットで集めた情報と日々の記録の倉庫♪ Logging my life... Since 2003.12  

プログラム

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;
    }
}
# 行の途中にある/* コメント */ だけを表示しないことは、このスクリプトでは処理できない。