假设我想处理某些模式并在输出文件中使用其他文本(VHDL 代码)。
为此,我需要在最后编写一个主规则作为
(MY_PATTERN){
// do something with my pattern
}
(.*){
return TOK_VHDL_CODE;
}
此策略的问题是 MY_PATTERN 在这种情况下无用,并且会根据最大 munch 规则与 .* 匹配。
那么我怎样才能获得这个功能呢?
最佳答案
最简单的方法是在最后去掉默认规则中的*
,只使用
. { append_to_buffer(*yytext); }
因此您的默认规则会获取所有与先前规则不匹配的内容,并将其填充到缓冲区中,以供其他人处理。
关于c - 我如何禁用 Lex 中的最大咀嚼规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27704747/