{
Object RESULT = null;
String id = (String) ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (id.equals("TRUE") || id.equals("FALSE") || id.equals("NULL"))
throw new SelectorException("Invalid ID TRUE, FALSE or FALSE");
// id type and value are not known at that step!
CUP$Checker$result = new java_cup.runtime.Symbol(5/* lit_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 33: // lit_expr ::= LPAREN expr RPAREN
{
Object RESULT = null;
Object e = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 1)).value;
RESULT = e;
CUP$Checker$result = new java_cup.runtime.Symbol(5/* lit_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 32: // expr ::= lit_expr
{
Object RESULT = null;
Object lit = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
RESULT = lit;
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 31: // expr ::= MIN_LONG expr
{
Object RESULT = null;
RESULT = new Long(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 1)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 30: // expr ::= MINUS expr
{
Object RESULT = null;
Object e = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e instanceof String || e instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '-'");
if (e instanceof Double)
RESULT = new Double(0);
else if (e instanceof Float)
RESULT = new Float(0);
else if (e instanceof Long)
RESULT = new Long(0);
else if (e instanceof Integer)
RESULT = new Integer(0);
else if (e instanceof Short)
RESULT = new Short((short) 0);
else
RESULT = new Double(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 1)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 29: // expr ::= PLUS expr
{
Object RESULT = null;
Object e = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e instanceof String || e instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '+'");
RESULT = new Double(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 1)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 28: // expr ::= expr DIVIDE expr
{
Object RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '/'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '/'");
else
RESULT = new Double(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 27: // expr ::= expr TIMES expr
{
Object RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '*'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '*'");
else
RESULT = new Double(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 26: // expr ::= expr MINUS expr
{
Object RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '-'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '-'");
else
RESULT = new Double(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 25: // expr ::= expr PLUS expr
{
Object RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '+'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '+'");
else
RESULT = new Double(0);
CUP$Checker$result = new java_cup.runtime.Symbol(4/* expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 24: // strings ::= STRING
{
String RESULT = null;
String st = (String) ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
RESULT = st.substring(1, st.length() - 1);
CUP$Checker$result = new java_cup.runtime.Symbol(3/* strings */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 23: // strings ::= strings COMMA STRING
{
String RESULT = null;
String sts = (String) ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
String st = (String) ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
RESULT = sts + st.substring(1, st.length() - 1);
CUP$Checker$result = new java_cup.runtime.Symbol(3/* strings */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 22: // comp_expr ::= expr
{
Boolean RESULT = null;
Object e = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e instanceof String || e instanceof Double)
throw new SelectorException("Boolean type expected");
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 21: // comp_expr ::= ID IS NOT NULL
{
Boolean RESULT = null;
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 3)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 20: // comp_expr ::= ID IS NULL
{
Boolean RESULT = null;
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 19: // comp_expr ::= ID NOT LIKE STRING ESCAPE STRING
{
Boolean RESULT = null;
// id type can't be checked at that point!
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 5)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 18: // comp_expr ::= ID LIKE STRING ESCAPE STRING
{
Boolean RESULT = null;
// id type can't be checked at that point!
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 4)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 17: // comp_expr ::= ID NOT LIKE STRING
{
Boolean RESULT = null;
// id type can't be checked at that point!
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 3)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 16: // comp_expr ::= ID LIKE STRING
{
Boolean RESULT = null;
// id type can't be checked at that point!
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 15: // comp_expr ::= ID NOT IN LPAREN strings RPAREN
{
Boolean RESULT = null;
// id type can't be checked at that point!
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 5)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 14: // comp_expr ::= ID IN LPAREN strings RPAREN
{
Boolean RESULT = null;
// id type can't be checked at that point!
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 4)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 13: // comp_expr ::= expr NOTBETWEEN expr AND expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 4)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e3 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before 'NOT BETWEEN'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after 'BETWEEN'");
else if (e3 instanceof String || e3 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after 'AND'");
else
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 4)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 12: // comp_expr ::= expr BETWEEN expr AND expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 4)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e3 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before 'BETWEEN'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after 'BETWEEN'");
else if (e3 instanceof String || e3 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after 'AND'");
else
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 4)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 11: // comp_expr ::= expr NEQ expr
{
Boolean RESULT = null;
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 10: // comp_expr ::= expr EQ expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof Boolean && e2 instanceof Number)
throw new SelectorException("Invalid id TRUE, FALSE or NULL");
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 9: // comp_expr ::= expr LE expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '<='");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '<='");
else
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 8: // comp_expr ::= expr LT expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '<'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '<'");
else
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 7: // comp_expr ::= expr GE expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '>='");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '>='");
else
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).left,
((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).right, RESULT);
}
return CUP$Checker$result;
/* . . . . . . . . . . . . . . . . . . . . */
case 6: // comp_expr ::= expr GT expr
{
Boolean RESULT = null;
Object e1 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 2)).value;
Object e2 = ((java_cup.runtime.Symbol) CUP$Checker$stack.elementAt(CUP$Checker$top - 0)).value;
if (e1 instanceof String || e1 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " before '>'");
else if (e2 instanceof String || e2 instanceof Boolean)
throw new SelectorException("Numeric type expected" + " after '>'");
else
RESULT = Boolean.TRUE;
CUP$Checker$result = new java_cup.runtime.Symbol(2/* comp_expr */,