public override Result VisitEqual([NotNull] ExpressionParser.EqualContext context) { Result a = Visit(context.bexpr()); Result b = Visit(context.expression()); object rlt; switch (context.op.Type) { case ExpressionParser.EQUALS: rlt = a.Value.Equals(b.Value); break; case ExpressionParser.NOT_EQUALS: rlt = !a.Value.Equals(b.Value); break; case ExpressionParser.GTE: rlt = OperatorProvider.BinaryExecute("op_GreaterThanOrEqual", a.Value, b.Value); break; case ExpressionParser.GT: rlt = OperatorProvider.BinaryExecute("op_GreaterThan", a.Value, b.Value); break; case ExpressionParser.LTE: rlt = OperatorProvider.BinaryExecute("op_LessThanOrEqual", a.Value, b.Value); break; default: rlt = OperatorProvider.BinaryExecute("op_LessThanOrEqual", a.Value, b.Value);; break; } return(new Result { Value = rlt }); }
/// <summary> /// Exit a parse tree produced by the <c>Equal</c> /// labeled alternative in <see cref="ExpressionParser.bexpr"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitEqual([NotNull] ExpressionParser.EqualContext context) { }
/// <summary> /// Visit a parse tree produced by the <c>Equal</c> /// labeled alternative in <see cref="ExpressionParser.bexpr"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitEqual([NotNull] ExpressionParser.EqualContext context) { return(VisitChildren(context)); }