Using both global and local (rule) attribute scopes
It is possible to use both global and local (rule-level) scopes together in ANTLR v3 but you have to get the order right: global scopes come after local scope but before @init.
grammar T;
scope GlobalOne {
int foo;
}
myrule
scope {
int bar;
}
scope GlobalOne;
@init {
/* your stuff here */
}
: case1
| case2
;
To use more than one global scope, specify them in a comma-delimited list:
myrule
scope {
int foo;
}
scope GlobalOne, GlobalTwo, GlobalThree;
(Adapted from mailing list post by Jim Idle)
, multiple selections available,