final public void Symbol(int role) throws ParseException {
Token t;
Token var = null;
Location location;
Parent args = null;
Name name = new Name();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MODULE:
case SYMBOL:
case FUNCTION:
case SUPER:
case STATIC:
case CLASS:
case VAR:
case THIS:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SYMBOL:
case VAR:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case VAR:
var = jj_consume_token(VAR);
break;
default:
jj_la1[134] = jj_gen;
;
}
t = jj_consume_token(SYMBOL);
break;
case MODULE:
t = jj_consume_token(MODULE);
break;
case CLASS:
t = jj_consume_token(CLASS);
break;
case STATIC:
t = jj_consume_token(STATIC);
break;
case THIS:
t = jj_consume_token(THIS);
break;
case SUPER:
t = jj_consume_token(SUPER);
break;
case FUNCTION:
t = jj_consume_token(FUNCTION);
break;
default:
jj_la1[135] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
location = toLocation(var != null ? var : t);
if (var != null) {
Statement stmt = flowPeek();
if (stmt.isStaticRegion() && stmt.getFunctionStatement() == null) {
error(location, "Explicit variable declaration modifier 'var' cannot be used in static initialization");
} else {
switch(role) {
case LinkNode.ASSIGN:
case LinkNode.GET:
case LinkNode.DECLARE:
role = LinkNode.DECLARE;
break;
default:
error(location, "Invalid use of explicit variable declaration modifier 'var'");
}
}
}
name.add(t);
label_45:
while (true) {
if (jj_2_20(2147483647)) {
;
} else {
break label_45;
}
t = DotAndThisOrSymbol();
name.add(t);
}
break;
case DOT:
t = jj_consume_token(DOT);
location = toLocation(t);
name.add(t);
t = jj_consume_token(SYMBOL);
name.add(t);
label_46:
while (true) {
if (jj_2_21(2147483647)) {
;
} else {
break label_46;
}
t = DotAndThisOrSymbol();
name.add(t);
}
break;
default:
jj_la1[136] = jj_gen;
jj_consume_token(-1);