为什么Lex / flex显示输入虽然它不匹配?

时间:2018-01-21 13:56:40

标签: flex-lexer lex

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

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

1 个答案:

答案 0 :(得分:2)

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

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

.|\n      ;