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()); }
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()); }