Lex yacc изменяющий буфер - PullRequest
2 голосов
/ 02 января 2012

Flex предоставляет механизм для создания и переключения между несколькими входными буферами.Входной буфер создается с помощью: yy_creat_buffer и дает возможность переключать входной поток с помощью yy_switch_buffer.

Проблема в том, что lex не реализует подобное решение.

вы можете найти больше в руководстве Flex

1 Ответ

1 голос
/ 02 января 2012

К сожалению, в lex нет аналогичного решения, и если кто-нибудь знает его, пожалуйста, дайте его нам.

Единственная возможность состоит в том, что вы переопределяете yywrap(), который вызывается всякий раз, когда Лекс достигает конца файла.

В этом случае вы должны предоставить yywrap(), который организует новый ввод и возвращает 0. Это дает команду Lex продолжить обработку. Yywrap по умолчанию всегда возвращает 1 (без ввода).

...