private RdlSyntaxNode ComposeEqualityOperators() { var node = ComposeArithmeticOperators(Precendence.Level1); while (IsEqualityOperator(Current)) { switch (Current.TokenType) { case StatementType.GreaterEqual: Consume(StatementType.GreaterEqual); node = new GreaterEqualNode(node, ComposeEqualityOperators()); break; case StatementType.Greater: Consume(StatementType.Greater); node = new GreaterNode(node, ComposeEqualityOperators()); break; case StatementType.LessEqual: Consume(StatementType.LessEqual); node = new LessEqualNode(node, ComposeEqualityOperators()); break; case StatementType.Less: Consume(StatementType.Less); node = new LessNode(node, ComposeEqualityOperators()); break; case StatementType.Equality: Consume(StatementType.Equality); node = new EqualityNode(node, ComposeEqualityOperators()); break; case StatementType.Diff: Consume(StatementType.Diff); node = new DiffNode(node, ComposeEqualityOperators()); break; case StatementType.Between: node = new BetweenNode(ConsumeAndGetToken(), node, ComposeAndSkip(f => f.ComposeArithmeticOperators(Precendence.Level1), StatementType.And), ComposeArithmeticOperators(Precendence.Level1)); break; case StatementType.Not: Consume(StatementType.Not); node = new NotNode(Current, node); break; default: throw new NotSupportedException(); } } return(node); }
/// <summary> /// Visit GreaterEqual node in DFS manner. /// </summary> /// <param name="node">GreaterEqual node that will be visited.</param> public void Visit(GreaterEqualNode node) { node.Left.Accept(this); node.Right.Accept(this); node.Accept(_visitor); }
public override void Visit(GreaterEqualNode node) { ReportReturnTypesAreNotSame(node, "GreaterEqual"); }
public override void Visit(GreaterEqualNode node) => ProduceDebuggerInstructions(node, n => base.Visit(n));
/// <summary> /// Visit GreaterEqual node. /// </summary> /// <param name="node">GreaterEqual node of AST</param> public abstract void Visit(GreaterEqualNode node);
public void Visit(GreaterEqualNode node) { }
/// <summary> /// Performs "GreaterEqual" specific operations. /// </summary> /// <param name="node">The "Numeric" node.</param> public virtual void Visit(GreaterEqualNode node) { ExpressionGenerateInstructions <GreaterEqualNumeric>(); }