public override PredicateNode VisitOperator(PredicateParser.OperatorContext context) { var terminal = (ITerminalNode)context.GetChild(0); var symbolType = terminal.Symbol.Type; switch (symbolType) { case PredicateLexer.GreaterThan: return(CreateOperatorNode(Operator.GreaterThan)); case PredicateLexer.GreaterThanEqual: return(CreateOperatorNode(Operator.GreaterThanEqual)); case PredicateLexer.LessThan: return(CreateOperatorNode(Operator.LessThan)); case PredicateLexer.LessThanEqual: return(CreateOperatorNode(Operator.LessThanEqual)); case PredicateLexer.Equal: return(CreateOperatorNode(Operator.Equal)); case PredicateLexer.NotEqual: return(CreateOperatorNode(Operator.NotEqual)); case PredicateLexer.Contains: return(CreateOperatorNode(Operator.Contains)); } throw new Exception("Unhandled Operator"); }
/// <summary> /// Visit a parse tree produced by <see cref="PredicateParser.operator"/>. /// <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 VisitOperator([NotNull] PredicateParser.OperatorContext context) { return(VisitChildren(context)); }