public Object Visit_UnaryExpr(UnaryExpr expr) { Object right = Evaluate(expr.right); switch (expr.op.type) { case TokenType.Bang: return(!IsTruthy(right)); case TokenType.Minus: return(-(double)right); } throw new Exception("Unhandled case"); }
public object VisitUnaryExpr(UnaryExpr expr) { object right = Evaluate(expr.Right); switch (expr.Oper.Type) { case TokenType.MINUS: AssertNumberType(expr.Oper, right); return(-(double)right); case TokenType.BANG: return(!IsTruthy(right)); } // Should be unreachable. throw new LoxRuntimeException(expr.Oper, $"UnaryExpr has unexpected operator: {expr.Oper.Type}."); }
public object VisitUnaryExpr(UnaryExpr expr) { Resolve(expr.Right); return(null); }
public Void Visit_UnaryExpr(UnaryExpr expr) { Resolve(expr.right); return(null); }
public string Visit_UnaryExpr(UnaryExpr expr) { return(Parenthesize(expr.op.ToText(), expr.right)); }