私はCプログラムをトークン化するためのlexプログラムを書いています。Cプリプロセッサディレクティブに一致する次のルールを作成しました
#.* {printf("\n%s is a PREPROCESSOR DIRECTIVE",yytext);}
しかし、ファイルをyyinへの入力として使用すると、ファイル内のプリプロセッサディレクティブは、表示されるyytextと一致します。空です。
例:
is a PREPROCESSOR DIRECTIVE
yyinがstdinの場合は問題ありませんが、これはファイルが入力された場合にのみ発生します。代替のLEXルールはありますか?