Lex:使用起始条件和状态转换保存整个字符串



我想知道是否可以将整个输入从开始条件保存到 lex 中的最终状态。

例如:

%x START
%%
"XXX"  BEGIN START;
<START>.
<START>"YYY"  {printf("%s", yytext);}

如果我输入类似 XXX some chars YYY 的内容,将打印YYY,但我希望它打印XXX some chars YYY. 有没有办法在 lex 中做到这一点?

从开始条件中的每个操作调用yymore()最后一个操作除外yymore()意味着有更多的代币要来;它导致扫描程序不重置令牌 起点。

最新更新