anchor.diff:            $term = $exponentiationOperator.operator; }
           ee=exponentiationExpression
           { $exponentiationOperator.operator.setRightTerm($ee.term); }
  -      | scaleOperator
  -        { $scaleOperator.operator.setLeftTerm($term);
  -          $term = $scaleOperator.operator; }
  -        ee=exponentiationExpression
  -        { $scaleOperator.operator.setRightTerm($ee.term); }
         )?
       ;
   
  
positive.code:     ;
  
  additiveExpression returns [Term term]
      : me1=multiplicativeExpression
        { $term = $me1.term; }
        (
          additiveOperator 
          { $additiveOperator.operator.setLeftTerm($term);
            $term = $additiveOperator.operator; }
          me2=multiplicativeExpression
          { $additiveOperator.operator.setRightTerm($me2.term); }
        )*
      ;
  
negative.code:       { $operator = new SumOp($SUM_OP); }
      | DIFFERENCE_OP
        { $operator = new DifferenceOp($DIFFERENCE_OP); }
      ;
  
  scaleExpression returns [Term term]
      : multiplicativeExpression
        { $term = $multiplicativeExpression.term; }
        (
          scaleOperator
          { $scaleOperator.operator.setLeftTerm($term);
            $term = $scaleOperator.operator; }
          se=scaleExpression
          { $scaleOperator.operator.setRightTerm($se.term); }
        )?
      ;
  
  multiplicativeExpression returns [Term term]
  