final public BigDecimal Primary() throws ParseException {
   Token t ;
   BigDecimal d ;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case NUMBER:
      t = jj_consume_token(NUMBER);
     {if (true) return new BigDecimal( t.image ) ;}
      break;
    case OPEN_PAR:
      jj_consume_token(OPEN_PAR);
      d = Expression();
      jj_consume_token(CLOSE_PAR);
     {if (true) return d ;}
      break;
    case MINUS:
      jj_consume_token(MINUS);
      d = Primary();
       {if (true) return d.negate() ;}
      break;
    default:
      jj_la1[5] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }