Lex: сохранение всей строки с использованием начального условия и перехода между состояниями

Мне интересно, возможно ли сохранить весь ввод из начального условия в конечное состояние в lex.

Например:

%x START

%%

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

Будет печатать YYY если я введу что-то вроде XXX some chars YYY, но я бы хотел это напечатать XXX some chars YYY, Есть ли способ сделать это в lex?

1 ответ

Решение

Вызов yymore() от каждого действия в начальном состоянии, кроме последнего. yymore() означает, что есть еще один жетон; это заставляет сканер не сбрасывать начальную точку токена.

Другие вопросы по тегам