throw new Error("Missing return statement in function");
}
final public void SwitchStatement(String label) throws ParseException {
Token t;
Case caze;
SwitchStatement stmt;
t = jj_consume_token(SWITCH);
jj_consume_token(OPEN);
Expression();
jj_consume_token(CLOSE);
jj_consume_token(BEGIN);
stmt = new SwitchStatement(flowPeek(), toLocation(t), (Expression)pop(), label);
flowPushChild(stmt);
label_22:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case CASE:
case _DEFAULT:
;
break;
default:
jj_la1[63] = jj_gen;
break label_22;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case CASE:
t = jj_consume_token(CASE);
ValueExpression();
caze = stmt.onCase(this, (Expression)pop());
label_23:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
jj_la1[64] = jj_gen;
break label_23;
}
jj_consume_token(COMMA);
ValueExpression();
caze = stmt.onCase(this, (Expression)pop());
}
flowPush(caze.getBlock());
jj_consume_token(COLON);
label_24:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MODULE:
case SYMBOL:
case BEGIN:
case DOT:
case STAR:
case IMPORT:
case STRING_LITERAL:
case SEMICOLON:
case RANGE:
case FUNCTION:
case OPEN:
case SUPER:
case SYNCHRONIZED:
case STATIC:
case CLASS:
case VAR:
case IF:
case WHILE:
case TRY:
case CATCH:
case FINALLY:
case THROW:
case PRINT:
case HOOK:
case PRINTLN:
case PRINTBR:
case SWITCH:
case FOR:
case DO:
case FOREACH:
case BREAK:
case CONTINUE:
case EXIT:
case RETURN:
case YIELD:
case ASSERT:
case ET:
case NEGATION:
case PLUS:
case MINUS:
case MINUSMINUS:
case PLUSPLUS:
case COPYOF:
case CLONEOF:
case TYPEOF:
case SIZEOF:
case CLASSOF:
case BOOLEAN:
case INT:
case FLOAT:
case STRING:
case DEFINED:
case UNDEFINED:
case NULL:
case OPEN_BRACKET:
case CARET:
case DELETE:
case BEGIN_LIST:
case NEW:
case THIS:
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case INF:
case FALSE:
case TRUE:
case PATTERN:
;
break;
default:
jj_la1[65] = jj_gen;
break label_24;
}
Statement();
}
flowPop();
break;
case _DEFAULT:
t = jj_consume_token(_DEFAULT);
jj_consume_token(COLON);
caze = stmt.onDefault(this, toLocation(t));
flowPush(caze.getBlock());
label_25:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MODULE:
case SYMBOL: