public static final int expr() throws ParseException { Token t; int t1, t2; Operation op = null; // <expr> ::= <term> {(+|-) <term>} t1 = term(); label_2: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case PLUS: case MINUS:; break; default: jj_la1[1] = jj_gen; break label_2; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case PLUS: t = jj_consume_token(PLUS); System.out.printf( "@(%d,%d)\u005ctPLUS\u005ct-\u005ct%s\u005cn", t.beginLine, t.beginColumn, t); op = new Sum(); break; case MINUS: t = jj_consume_token(MINUS); System.out.printf( "@(%d,%d)\u005ctMINUS\u005ct-\u005ct%s\u005cn", t.beginLine, t.beginColumn, t); op = new Sub(); break; default: jj_la1[2] = jj_gen; jj_consume_token(-1); throw new ParseException(); } t2 = term(); t1 = op.calculate(t1, t2); // System.out.println("<TERM>" + t.beginLine + " " + t.beginColumn); } { if (true) return t1; } throw new Error("Missing return statement in function"); }
public static final int term() throws ParseException { Token t; int f1, f2; Operation op = null; // <term> ::= <factor> {(*|/) <factor>} f1 = factor(); label_3: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case MUL: case DIV:; break; default: jj_la1[3] = jj_gen; break label_3; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case MUL: t = jj_consume_token(MUL); op = new Mul(); System.out.printf( "@(%d,%d)\u005ctMUL\u005ct-\u005ct%s\u005cn", t.beginLine, t.beginColumn, t); break; case DIV: t = jj_consume_token(DIV); op = new Div(); System.out.printf( "@(%d,%d)\u005ctDIV\u005ct-\u005ct%s\u005cn", t.beginLine, t.beginColumn, t); break; default: jj_la1[4] = jj_gen; jj_consume_token(-1); throw new ParseException(); } f2 = factor(); f1 = op.calculate(f1, f2); } { if (true) return f1; } throw new Error("Missing return statement in function"); }