final public BigDecimal Term() throws ParseException {
   BigDecimal i ;
   BigDecimal value ;
    value = Primary();
    label_3:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TIMES:
      case DIVIDE:
        ;
        break;
      default:
        jj_la1[3] = jj_gen;
        break label_3;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TIMES:
        jj_consume_token(TIMES);
        i = Primary();
          value = value.multiply( i) ;
        break;
      case DIVIDE:
        jj_consume_token(DIVIDE);
        i = Primary();
          value = value.divide( i, 8, BigDecimal.ROUND_HALF_UP ).stripTrailingZeros();
        break;
      default:
        jj_la1[4] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
     {if (true) return value ;}
    throw new Error("Missing return statement in function");
  }