private Expr And() { var expr = Equality(); while (Match(AND)) { var @operator = Previous(); var right = Equality(); expr = new Expr.LogicalExpr(expr, @operator, right); } return(expr); }
private Expr Or() { var expr = And(); while (Match(OR)) { var @operator = Previous(); var right = And(); expr = new Expr.LogicalExpr(expr, @operator, right); } return(expr); }
public string VisitLogicalExpr(Expr.LogicalExpr expr) { return(Parenthesize(expr.Operator.Lexeme, expr.Left, expr.Right)); }
public object VisitLogicalExpr(Expr.LogicalExpr expr) { Resolve(expr.Left); Resolve(expr.Right); return(null); }