// $ANTLR end "multExpr"
// $ANTLR start "atom"
// JavaCompat\\Expr.g3:96:0: atom returns [int value] : ( INT | ID | '(' expr ')' );
private int atom( )
{
int value = default(int);
IToken INT4 = null;
IToken ID5 = null;
int expr6 = default(int);
try
{
// JavaCompat\\Expr.g3:97:9: ( INT | ID | '(' expr ')' )
int alt5 = 3;
switch (input.LA(1))
{
case INT:
{
alt5 = 1;
}
break;
case ID:
{
alt5 = 2;
}
break;
case 9:
{
alt5 = 3;
}
break;
default:
{
NoViableAltException nvae = new NoViableAltException("", 5, 0, input);
throw nvae;
}
}
switch (alt5)
{
case 1:
// JavaCompat\\Expr.g3:97:9: INT
{
INT4 = (IToken)Match(input, INT, Follow._INT_in_atom231);
value = Integer.parseInt((INT4 != null?INT4.Text:null));
}
break;
case 2:
// JavaCompat\\Expr.g3:98:9: ID
{
ID5 = (IToken)Match(input, ID, Follow._ID_in_atom243);
Integer v = (Integer)memory.get((ID5 != null?ID5.Text:null));
if (v != null)
{
value = v.intValue();
}
else
{
JSystem.err.println("undefined variable " + (ID5 != null?ID5.Text:null));
}
}
break;
case 3:
// JavaCompat\\Expr.g3:104:9: '(' expr ')'
{
Match(input, 9, Follow._9_in_atom263);
PushFollow(Follow._expr_in_atom265);
expr6 = expr();
state._fsp--;
Match(input, 10, Follow._10_in_atom267);
value = expr6;
}
break;
}
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
}
finally
{
}
return(value);
}