Я пишу довольно простую программу с LEX, которая после анализа нескольких файлов анализирует ввод пользователя.
Теперь с файлами все работает как часы. Однако когда дело доходит до пользовательского ввода со стандартного ввода, правила LEX не будут выполняться, пока не будет отправлен символ EOF (через Ctrl+D). Когда я это делаю, LEX анализирует все, что я написал, а затем ожидает ввода данных. Второй последовательный EOF завершает работу сканера.
Дело в том, что я хочу, чтобы программа реагировала на \n
, выводя какие-то данные. Есть ли способ заставить сканирование изнутри правила или как-то настроить буферизацию LEX, чтобы соответствовать этому поведению?