【发布时间】:2011-08-16 04:27:49
【问题描述】:
您好,我的 ANTLR 树语法有一个小问题。我正在使用 ANTLRWorks 1.4。在解析器语法中,我有这样的规则:
declaration
: 'variable' IDENTIFIER ( ',' IDENTIFIER)* ':' TYPE ';'
-> ^('variable' IDENTIFIER TYPE)+
所以我希望每个 IDENTIFIER 有一棵树。
而在树语法中我只剩下重写规则:
declaration
: ^('variable' IDENTIFIER TYPE)+
但是当我检查语法时,我得到了语法错误意外标记 +。而在树文法中,声明规则的末尾就是这个+号。那么我做错了什么?
解析器语法工作正常并按预期构建 AST 树。我为 C# 生成了词法分析器和解析器,并对其进行了一些输入测试。
【问题讨论】: