Exemple #1
0
        public override Query VisitEqualityExpression(CalcParser.EqualityExpressionContext context)
        {
            Query q1 = Visit(context.expression(0));
            Query q2 = Visit(context.expression(1));

            if (context.Equals_() != null)
            {
                return(new Query($"({q1}={q2})", ResultType.Number));
            }

            if (context.NotEquals() != null)
            {
                return(new Query($"({q1}<>{q2})", ResultType.Number));
            }

            throw new ExpressionException("Unknown equality expression: " + context.GetText());
        }
Exemple #2
0
        public override Argument VisitEqualityExpression(CalcParser.EqualityExpressionContext context)
        {
            Argument arg1 = Visit(context.expression(0));
            Argument arg2 = Visit(context.expression(1));

            if (arg1.IsNull || arg2.IsNull)
            {
                return(Argument.Null);
            }

            if (context.Equals_() != null)
            {
                return(Equals(arg1, arg2) ? new Argument(1.0) : new Argument(0.0));
            }

            if (context.NotEquals() != null)
            {
                return(!Equals(arg1, arg2) ? new Argument(1.0) : new Argument(0.0));
            }

            throw new ExpressionException("Unknown equality operation: " + context.GetText());
        }