我的ANTLR语法中包含以下内容:
rich_newick_string
: str=(.*';') { stack.pushRichNewickString($str.text); };
我希望将一些字符串匹配传递给我的pushRichNewickString方法,但我得到的是null。我做错了什么?
感谢。
答案 0 :(得分:0)
您不能在括号内放置多个词法分析器/解析器规则,然后为其指定标签:
rule
: label=(ruleA ruleB ruleC) { /* use $label.text in here */ }
;
请改为尝试:
rule
: label=tempRule { /* use $label.text in here */ }
;
tempRule
: ruleA ruleB ruleC
;
另外,您的解析器规则中是否真的有.*
?您是否知道不匹配零个或多个字符,而零个或多个令牌?