在ANTLR4中,我应该支持Token还是ParserRuleContext?

时间:2015-04-03 15:11:59

标签: java antlr4

想象一下,我有以下两种语法:

grammar Token;
rule       : 'test' x=Identifier;
Identifier : [a-z]+;

grammar ParserRuleContext;
rule       : 'test' x;
x          : Identifier;
Identifier : [a-z]+;

在前者中,我可以将'rule'作为公共字段(Token类型的值)访问。在后者中,我将其作为方法访问(值类型RuleContext扩展ParserRuleContext)。最终结果是通过getText()获取的,因此最终结果没有区别。问题是应该我使用哪个为什么

1 个答案:

答案 0 :(得分:0)

令牌变体更紧凑。

我认为第二种变体没有优势。然而,在我看来这是一个品味问题。