Expr Es(Expr expr, boolean cal) {
        switch(look.getType()) {
        case Type.EQ:
            if(cal) {
                // Build AST node.
                expr = new ExprArith(expr.op, expr, expr.expr2);
            } else {
                cal = true;
            }

            System.out.println(expr.getResult());

            // Es -> [=] Es | epsilon
            next();

            // Es -> = [Es] | epsilon
            expr = Es(expr, cal);
            break;
        case Type.ADD:
        case Type.SUB:
        case Type.EOF:
            break;
        default:
            syntaxError();
        }
        return expr;
    }