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

