public Expr Equ_Expr() throws ParseException {
        Expr e, et;
        Token tok;
        e = Rel_Expr();
        label_21:
        while (true) {
            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                case EQUAL:
                case NOTEQUAL:
                    break;
                default:
                    jj_la1[49] = jj_gen;
                    break label_21;
            }
            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                case EQUAL:
                    tok = jj_consume_token(EQUAL);
                    break;
                case NOTEQUAL:
                    tok = jj_consume_token(NOTEQUAL);
                    break;
                default:
                    jj_la1[50] = jj_gen;
                    jj_consume_token(-1);
                    throw new ParseException();
            }
            et = Rel_Expr();
            e = new BinOpExpr(e, tok, et);
        }
        return e;

    }