flex手册说以下话。
默认情况下,任何与Flex扫描仪不匹配的文本都将复制到输出中
我想了解如何明确地编写它。是这样吗?
%%
. ECHO;
还有,如何禁用默认规则?
答案 0 :(得分:1)
默认规则为:
.|\n ECHO;
(在每个启动条件下)
请记住(f)lex中的.
与换行符不符。
要禁用默认规则,请使用声明
%option nodefault
执行此操作后,如果您的规则未涵盖所有可能的情况,则会收到警告。如果您忽略该警告并使用生成的扫描仪,则如果输入与任何模式都不匹配,它将以致命错误停止。
由于您几乎不需要默认规则,因此我建议始终使用上面的%option
。
如果您有自己的默认规则,则可以将其作为文件中的最后一条规则放在
<*>.|\n /* default action here */