У меня возникла проблема с использованием (реентерабельной) Flex + Lemon для синтаксического анализа. Я использую простую грамматику и лексер here. Когда я запустил его, я поставлю число, за которым следует токен EOF (Ctrl-D). Распечатка будет читать:синтаксический анализатор лимона 0 token
89
found int of .
AST=0.
Если первая строка является число, которое я поставил в Теоретически значение АСТ должна быть сумма всего, что я положил в
EDIT:.., Когда я звоню Разбор () вручную выполняется правильно.
Кроме того, лимон, как представляется, запускает правило atom ::= INT
, даже если токен равен 0 (токен остановки). Почему это? Я очень смущен этим поведением, и я не могу найти хорошую документацию.