【发布时间】:2016-05-12 18:28:40
【问题描述】:
我正在为一种简单的语言编写 EBNF。该语言的功能之一是计算表达式并存储在变量中。例如:
A = 5
B = A + 2
C = B / (A * 2)
D = C - B + A
我正在使用 ANTLR 生成 Python 解析器,并且能够很好地计算值并构建我的数据结构。
不过,我有一个额外的要求。如果稍后在代码中更新变量 A 的值,我需要 B、C 和 D 来获取与 A 对应的新值。 到目前为止,我的想法是为每个变量存储整个表达式/方程。然后,一旦解析器完成了第一遍,我就会重新评估所有存储的表达式以获取更新的值。
但我想知道 ANTLR 本身是否提供了一些钩子来做这样的事情?像多通道之类的东西?
任何指针将不胜感激。
【问题讨论】: