Die Deklaration des Gültigkeitsbereichs der globalen Regel antlr im Vergleich zur Deklaration @members
Welches würden Sie bevorzugen, um eine Variable in welchem Fall zu deklarieren, globaler Bereich oder @members-Deklaration? Es scheint mir, dass sie für den gleichen Zweck dienen können?
AKTUALISIEREN Hier ist eine Grammatik, um zu erklären, was ich meine.
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';