在哪种情况下,您更愿意声明一个变量,全局范围还是 @members 声明?在我看来,他们可以为同样的目的服务?
这里的更新是解释我的意思的语法。
grammar GlobalVsScope;
scope global{
int i;
}
@lexer::header{package org.inanme.antlr;}
@parser::header{package org.inanme.antlr;}
@parser::members {
int j;
}
start
scope global;
@init{
System.out.println($global::i);
System.out.println(j);
}:R EOF;
R:'which one';