Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ANTLR4中,我应该选择Token还是ParserRuleContext?_Java_Antlr4 - Fatal编程技术网

Java 在ANTLR4中,我应该选择Token还是ParserRuleContext?

Java 在ANTLR4中,我应该选择Token还是ParserRuleContext?,java,antlr4,Java,Antlr4,假设我有以下两种语法: grammar Token; rule : 'test' x=Identifier; Identifier : [a-z]+; grammar ParserRuleContext; rule : 'test' x; x : Identifier; Identifier : [a-z]+; 在前者中,我可以作为公共字段(Token类型的值)访问“rule”。在后者中,我将其作为方法访问(值类型RuleContext扩展了Pars

假设我有以下两种语法:

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

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

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

令牌变量更紧凑

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