// $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); }