什么是解决ANTLR这个问题的正确方法:如何对付列表返回值在ANTLR
我有一个简单的语法规则,说与元素任意数量的列表。
list
: '[]'
| '[' value (COMMA value)* ']'
如果我想为指定列表中的返回值,并有该值是返回的值从生产实际列表,是什么做的正确方法?我在娱乐的替代品:
- 创造在全球范围内我自己的堆栈,以保持这些列表的轨道
- 尝试检查我下面的树节点,并提取信息的方式
- 访问它我希望能找到一些简洁而酷的方式,从中可以轻松访问与规则关联的动作中的这样一个列表。
我想的问题是:如何时尚的年轻人做呢?
(FYI我使用ANTLR Python API中,但如果你打我的另一种语言,我可以搞定)
而且这与它在Java中的外观非常接近。谢谢!然而,ANTLR的要求我的名字分配给每个 “值”:A = EXPR {$ valueList.add($ a.value中);}(B = EXPR {$ valueList.add($ b.value);})* – 2010-10-28 20:02:01