ANTLR3 Kleene星和树遍历

时间:2013-04-03 20:12:51

标签: antlr3 tree-traversal

我是一名经验丰富的yacc / bison滥用者。我习惯于建造自己的树木,然后遍历它们。那么,现在,切换到ANTLR3(为什么3?因为4不支持Python,这就是原因!)...我有以下语法:

symbol : ID fields          -> ^(NAME ID fields);

fields : (DOT ID)*          -> ^(FIELD ID*);

我的树语法片段是:

names: ^(NAME id=. fields) ;

fields: ^(FIELD .*) ;

“let z = a.b.c”的结果树是:

(LETS (LET z (NAME a (FIELD b c))))

步行者说:

  

来自第1:10行的节点不匹配输入u'b'期待

引入+而不是*的各种尝试在其他方面都失败了。也许有关于树木行走者如何为*和+工作的文件,但我没有找到它(就像一些人和冰箱?)。

0 个答案:

没有答案