我正在编写一个词法分析器程序来对一个C程序进行标记。我已经编写了以下规则来匹配C的预处理指令。
#.* {printf("\n%s is a PREPROCESSOR DIRECTIVE",yytext);}
当我将文件作为yyin的输入时,文件中的预处理指令会被匹配,但yytext显示为空。
例如,我得到的结果是:
is a PREPROCESSOR DIRECTIVE
当yyin是stdin时,没有问题,但只有在输入文件时才会出现这个问题。是否存在替代的LEX规则?