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

Lex: Saving entire string using starting condition and state transition

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

例如:

%x START

%%

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

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

从开始条件中的每个动作调用yymore(),最后一个动作除外yymore()表示还有更多token要来;它导致扫描仪不重置令牌 起点.