Ejemplo n.º 1
0
 public override void Visit(NotInNode node)
 {
     Visit(node as InNode);
 }
Ejemplo n.º 2
0
 /// <summary>
 ///     Visit NotIn node in DFS manner.
 /// </summary>
 /// <param name="node">NotIn node that will be visited.</param>
 public void Visit(NotInNode node)
 {
     node.Right.Accept(this);
     node.Left.Accept(this);
     node.Accept(_visitor);
 }
Ejemplo n.º 3
0
 public override void Visit(NotInNode node) => ProduceDebuggerInstructions(node, n => base.Visit(n));
Ejemplo n.º 4
0
 /// <summary>
 ///     Visit NotIn node.
 /// </summary>
 /// <param name="node">NotIn node of AST</param>
 public abstract void Visit(NotInNode node);
Ejemplo n.º 5
0
 public void Visit(NotInNode node)
 {
 }
Ejemplo n.º 6
0
 /// <summary>
 ///     Performs "NotIn" specific operations.
 /// </summary>
 /// <param name="node">The "NotIn" node.</param>
 public virtual void Visit(NotInNode node)
 {
     Visit(node as InNode);
     Instructions.Add(new NotInstruction());
 }
Ejemplo n.º 7
0
        private RdlSyntaxNode ComposeArithmeticOperators(Precendence precendence)
        {
            RdlSyntaxNode node = null;

            switch (precendence)
            {
            case Precendence.Level1:
            {
                node = ComposeArithmeticOperators(Precendence.Level2);
                while (IsArithmeticOperator(Current, Precendence.Level1))
                {
                    switch (Current.TokenType)
                    {
                    case StatementType.Star:
                        Consume(StatementType.Star);
                        node = new StarNode(node, ComposeBaseTypes());
                        break;

                    case StatementType.FSlash:
                        Consume(StatementType.FSlash);
                        node = new FSlashNode(node, ComposeBaseTypes());
                        break;

                    case StatementType.Mod:
                        Consume(StatementType.Mod);
                        node = new ModuloNode(node, ComposeBaseTypes());
                        break;

                    case StatementType.In:
                        Consume(StatementType.In);
                        node = new InNode(node, ComposeArgs());
                        break;

                    case StatementType.NotIn:
                        Consume(StatementType.NotIn);
                        node = new NotInNode(node, ComposeArgs());
                        break;
                    }
                }
                break;
            }

            case Precendence.Level2:
            {
                node = ComposeArithmeticOperators(Precendence.Level3);
                while (IsArithmeticOperator(Current, Precendence.Level2))
                {
                    switch (Current.TokenType)
                    {
                    case StatementType.Plus:
                        Consume(StatementType.Plus);
                        node = new AddNode(node, ComposeBaseTypes());
                        break;

                    case StatementType.Hyphen:
                        Consume(StatementType.Hyphen);
                        node = new HyphenNode(node, ComposeBaseTypes());
                        break;
                    }
                }
                break;
            }

            case Precendence.Level3:
                node = ComposeBaseTypes();
                break;
            }
            return(node);
        }