expr ::= expr:e PLUS exprminus:f {: RESULT = new Integer(e.intValue() + f.intValue()); :} | exprminus:f {: RESULT = new Integer(f.intValue()); :} ; exprminus ::= exprminus:e MINUS factor:f {: RESULT = new Integer(e.doubleValue() - f.intValue()); :} | factor:f {: RESULT = new Integer(f.intValue()); :} ; factor ::= factor:f TIMES term:t {: RESULT = new Integer(f.intValue() * t.intValue()); :} | factor:f DIVIDE term:t {: RESULT = new Integer(f.intValue() / t.intValue()); :} | term:t {: RESULT = new Integer(t.intValue()); :} ; new modification