Я пытался пробить Ply example calculator from Github.Ply пример калькулятор несколько выражений
Когда я запускаю калькулятор, он запускается внутри REPL. Как я могу использовать Ply, чтобы можно было оценивать несколько выражений один за другим.
Например, если я ввожу 3+4
РЕПЛ делает это:
calc > 3+4
7
calc >
Если я вхожу 4+3 6+2
РЕПЛ делает это:
calc > 4+3 6+2
Syntax error at '6'
2
calc >
Как бы я изменить пример калькулятора, чтобы включить REPL для этого:
calc > 4+3 6+2
7
8
calc >
Нужно ли изменять грамматику r, анализатор или и то, и другое? Я пробовал модифицировать грамматику, чтобы она оставалась рекурсивной, но она не работает.
Поскольку образец грамматики * уже * лево-рекурсивный, ваше утверждение, что вы пытались изменить его, чтобы быть леворекурсивным, требует некоторого разъяснения. (И почему вы думаете, что это изменило бы?) – rici
Слишком широкий: вы по существу нашли стороннюю библиотеку, и вы спрашиваете, как изменить ее для своих целей, что не лучше, чем «напишите мне этот код для меня». –
@ Two-BitAlchemist Честно говоря, я не. Я пытаюсь написать простой интерпретатор, используя Ply, и мой интерпретатор может в настоящее время оценивать только одно выражение/утверждение за раз. Я не хотел публиковать свой переводчик, так как он значительно длиннее, чем образец калькулятора. Я выбрал образец калькулятора, потому что у него есть то же ограничение, которое я пытаюсь выяснить, и он намного меньше. – Francis