final public void factor() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case ABS:
      jj_consume_token(ABS);
      primary();
      break;
    case NOT:
      jj_consume_token(NOT);
      primary();
      break;
    case NULL:
    case based_literal:
    case basic_identifier:
    case bit_string_literal:
    case character_literal:
    case decimal_literal:
    case extended_identifier:
    case string_literal:
    case 152:
      primary();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case EXP:
        jj_consume_token(EXP);
        primary();
        break;
      default:
        jj_la1[119] = jj_gen;
        ;
      }
      break;
    default:
      jj_la1[120] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }