switch (jj_nt.kind) {
case SPECIFIC:
jj_consume_token(SPECIFIC);
clauseValue = qualifiedName();
clausePosition = CreateAliasNode.TABLE_NAME;
{if (true) throw new StandardException("Not implemented SPECIFIC identifier");}
break;
case DYNAMIC:
case RESULT:
switch (jj_nt.kind) {
case DYNAMIC:
jj_consume_token(DYNAMIC);
break;
default:
jj_la1[297] = jj_gen;
;
}
jj_consume_token(RESULT);
jj_consume_token(SETS);
drs = uint_value();
if (!isProcedure)
{if (true) throw new StandardException("Only allowed on procedure: RESULT SETS");}
clauseValue = drs;
clausePosition = CreateAliasNode.DYNAMIC_RESULT_SET_COUNT;
break;
case LANGUAGE:
jj_consume_token(LANGUAGE);
clauseValue = routineLanguage();
clausePosition = CreateAliasNode.LANGUAGE;
break;
case DETERMINISTIC:
jj_consume_token(DETERMINISTIC);
clauseValue = Boolean.TRUE;
clausePosition = CreateAliasNode.DETERMINISTIC;
break;
case NOT:
jj_consume_token(NOT);
jj_consume_token(DETERMINISTIC);
clauseValue = Boolean.FALSE;
clausePosition = CreateAliasNode.DETERMINISTIC;
break;
case EXTERNAL:
jj_consume_token(EXTERNAL);
switch (jj_nt.kind) {
case NAME:
jj_consume_token(NAME);
clauseValue = string();
clausePosition = CreateAliasNode.EXTERNAL_NAME;
break;
case SECURITY:
jj_consume_token(SECURITY);
clauseValue = new Boolean(routineSecurityClause());
clausePosition = CreateAliasNode.ROUTINE_SECURITY_DEFINER;
break;
default:
jj_la1[298] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
case PARAMETER:
jj_consume_token(PARAMETER);
jj_consume_token(STYLE);
clauseValue = parameterStyle();
clausePosition = CreateAliasNode.PARAMETER_STYLE;
break;
case AS:
jj_consume_token(AS);
clauseValue = string();
clausePosition = CreateAliasNode.INLINE_DEFINITION;
break;
case NO:
jj_consume_token(NO);
jj_consume_token(SQL);
clauseValue = RoutineAliasInfo.SQLAllowed.NO_SQL;
clausePosition = CreateAliasNode.SQL_CONTROL;
break;
case CONTAINS:
jj_consume_token(CONTAINS);
jj_consume_token(SQL);
clauseValue = RoutineAliasInfo.SQLAllowed.CONTAINS_SQL;
clausePosition = CreateAliasNode.SQL_CONTROL;
break;
case READS:
jj_consume_token(READS);
jj_consume_token(SQL);
jj_consume_token(DATA);
clauseValue = RoutineAliasInfo.SQLAllowed.READS_SQL_DATA;
clausePosition = CreateAliasNode.SQL_CONTROL;
break;
case MODIFIES:
jj_consume_token(MODIFIES);
jj_consume_token(SQL);
jj_consume_token(DATA);
if (!isProcedure)
{if (true) throw new StandardException("Only allowed on procedure: MODIFIES SQL DATA");}
clauseValue = RoutineAliasInfo.SQLAllowed.MODIFIES_SQL_DATA;
clausePosition = CreateAliasNode.SQL_CONTROL;
break;
case CALLED:
case RETURNS:
clauseValue = calledOnNullInput(isProcedure);
clausePosition = CreateAliasNode.NULL_ON_NULL_INPUT;
break;
default:
jj_la1[299] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if (clausePosition != -1) {
// check for repeated clause
if (routineElements[clausePosition] != null) {
String which = ROUTINE_CLAUSE_NAMES[clausePosition];
{if (true) throw new StandardException("Repeated " + which + " clause");}
}
routineElements[clausePosition] = clauseValue;
}
}