【发布时间】:2016-08-23 20:08:14
【问题描述】:
我一直在试用 Ply example calculator from Github。
当我运行计算器时,它会在 REPL 中运行。我将如何使用 Ply 使多个表达式一个接一个地被评估。
例如,如果我输入 3+4,REPL 会这样做:
calc > 3+4
7
calc >
如果我输入4+3 6+2,REPL 会这样做:
calc > 4+3 6+2
Syntax error at '6'
2
calc >
我将如何修改示例计算器以使 REPL 能够执行此操作:
calc > 4+3 6+2
7
8
calc >
我需要修改语法、解析器还是两者都修改?我已经尝试修改语法以使其保持递归,但它似乎不起作用。
【问题讨论】:
-
由于示例语法已经左递归,您尝试将其修改为左递归的声明需要一些说明。 (为什么你会认为这会有所作为?)
-
太宽泛了:你基本上找到了一个第三方库,你问如何为自己的目的修改它,这并不比“为我写这段代码”好。跨度>
-
@Two-BitAlchemist 老实说我不是。我正在尝试使用 Ply 编写一个简单的解释器,而我的解释器目前一次只能评估一个表达式/语句。我不想发布我的解释器,因为它比示例计算器要长得多。我选择了示例计算器,因为它具有与我试图弄清楚的相同的限制,而且它要小得多。