public override Argument VisitUnaryMinusExpression(CalcParser.UnaryMinusExpressionContext context) { Argument arg = Visit(context.expression()); if (arg.IsNull) { return(Argument.Null); } if (arg.IsInteger) { return(new Argument(-arg.ToInteger())); } if (arg.IsDouble) { return(new Argument(-arg.ToDouble())); } throw new ArgumentCastException("Wrong argument in unary minus expression"); }
public override Query VisitUnaryMinusExpression(CalcParser.UnaryMinusExpressionContext context) { Query q = Visit(context.expression()); return(new Query($"(-{q})", ResultType.Number)); }