flex手册说明如下。
默认情况下,任何与flex扫描仪不匹配的文本都会复制到输出
我想知道如何把它写得清晰明了。是这样的吗?
%%
. ECHO;
此外,如何禁用默认规则?
默认规则为:
.|n ECHO;
(在每种启动条件下)
请记住,(f)lex中的.
与换行符不匹配。
要禁用默认规则,请使用声明
%option nodefault
一旦你这样做了,如果你的规则没有涵盖所有可能发生的事情,你会得到警告。如果忽略警告并使用生成的扫描程序,如果输入与任何模式都不匹配,它将停止并出现致命错误。
由于您几乎不想要默认规则,我建议您始终使用上面的%option
。
如果你有自己的默认规则,你可以把它作为文件中的最后一条规则:
<*>.|n /* default action here */