【发布时间】:2012-06-04 23:32:49
【问题描述】:
我可以将以下语法中的 indent_loop[3] 替换为 3 个 INDENT 的组吗? 其中 INDENT 是缩进的词法规则。
我只想根据数字写出 INDENT 的数字。
match_node
: match_node_name (tree_operator) (NEW_LINE (indent_loop[3]) ( moduleCall | literals ))*
{ match_node_list.push($match_node_name.text); }
| SINGLE_QUOTE POINTE SINGLE_QUOTE
;
match_node_name
: IDENT_SMALL_LETTERS
;
indent_loop[int scope]
: {scope == 3}? INDENT INDENT INDENT
| {scope == 4}? INDENT INDENT INDENT INDENT
;
INDENT : '\t';
当我这样做时,我无法回到我的调用规则并且无法返回这组缩进? 意思是,( moduleCall | literals ))* 没有被调用。
我哪里错了?我才刚刚开始。
或者有没有其他方法可以做到这一点?
【问题讨论】:
标签: compiler-construction antlr interpreter rules antlr3