为什么 Lex/flex 显示输入,尽管它不匹配?


%%
[0-9]+ {printf("%s is a numbern",yytext);}
%%
int main()
{
   yylex();
}

对于输入affafe它的结果是affafe,但它不匹配。如何停止在输出中显示不匹配的输入?

(F(lex 插入一个默认操作来处理没有模式匹配的情况。默认操作匹配单个字符并将其回显到标准输出

为避免这种情况,请在模式末尾添加您自己的回退规则,该规则与单个字符匹配并且不执行任何操作:

.|n      ;

最新更新