public override PredicateNode VisitBooleanOperator(PredicateParser.BooleanOperatorContext context) { var terminal = (ITerminalNode)context.GetChild(0); var symbolType = terminal.Symbol.Type; switch (symbolType) { case PredicateLexer.And: return(new PredicateNode(SymbolType.BooleanOperator, BooleanOperator.And)); case PredicateLexer.Or: return(new PredicateNode(SymbolType.BooleanOperator, BooleanOperator.Or)); } throw new Exception("Unhandled Boolean Operator"); }
/// <summary> /// Visit a parse tree produced by <see cref="PredicateParser.booleanOperator"/>. /// <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 VisitBooleanOperator([NotNull] PredicateParser.BooleanOperatorContext context) { return(VisitChildren(context)); }