我想知道是否可以将整个输入从开始条件保存到 lex 中的最终状态。
例如:
%x START
%%
"XXX" BEGIN START;
<START>.
<START>"YYY" {printf("%s", yytext);}
如果我输入类似 XXX some chars YYY
的内容,将打印YYY
,但我希望它打印XXX some chars YYY
. 有没有办法在 lex 中做到这一点?
从开始条件中的每个操作调用yymore()
,最后一个操作除外。 yymore()
意味着有更多的代币要来;它导致扫描程序不重置令牌 起点。