コード例 #1
0
        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");
        }
コード例 #2
0
        public override Query VisitUnaryMinusExpression(CalcParser.UnaryMinusExpressionContext context)
        {
            Query q = Visit(context.expression());

            return(new Query($"(-{q})", ResultType.Number));
        }