Объявление глобальной области действия antlr против объявления @members

Какой из них вы бы предпочли объявить переменную в этом случае, глобальную область видимости или объявление @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';
8
задан mert inan 16 May 2012 в 10:15
поделиться