public Expr ShiftExpr() throws ParseException {
        Token tok;
        Expr e, er;
        e = AddExpr();
        label_10:
        while (true) {
            switch (jj_ntk == -1 ? jj_ntk() : jj_ntk) {
                case 175:
                case 176:
                    break;
                default:
                    jj_la1[30] = jj_gen;
                    break label_10;
            }
            switch (jj_ntk == -1 ? jj_ntk() : jj_ntk) {
                case 175:
                    tok = jj_consume_token(175);
                    break;
                case 176:
                    tok = jj_consume_token(176);
                    break;
                default:
                    jj_la1[31] = jj_gen;
                    jj_consume_token(-1);
                    throw new ParseException();
            }
            er = AddExpr();
            e = new Expr.BinOp(tok, e, er);
        }
        return e;

    }