final public void expression() throws ParseException {
    relation();
    label_33:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AND:
      case NAND:
      case NOR:
      case OR:
      case XNOR:
      case XOR:
        ;
        break;
      default:
        jj_la1[125] = jj_gen;
        break label_33;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AND:
        jj_consume_token(AND);
        break;
      case OR:
        jj_consume_token(OR);
        break;
      case NAND:
        jj_consume_token(NAND);
        break;
      case NOR:
        jj_consume_token(NOR);
        break;
      case XOR:
        jj_consume_token(XOR);
        break;
      case XNOR:
        jj_consume_token(XNOR);
        break;
      default:
        jj_la1[126] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      relation();
    }
  }