Я пытаюсь написать простую грамматику расчета с Treetop. Чтобы упростить мой пример для этого вопроса, я использую только переменные, числа и оператор +
. Я хотел бы иметь возможность писать выражения, как это:
Вот моя грамматика:
grammar Calculation
rule expression
(plus / number / variable)
end
rule plus
expression "+" expression
end
rule number
'-'? [0-9]+ ('.' [0-9]+)?
end
rule variable
[A-Za-z0-9]+
end
end
Когда я запускаю это, оно бесконечно повторяется. Подумав некоторое время, я думаю, что моя проблема как-то связана с левой рекурсией, но я новичок в парсерах и не очень понимаю, что это значит. Может кто-нибудь объяснить, почему мой конкретный пример не работает и как я могу это исправить?