示例#1
0
 public void Visit(ElseIfNode node)
 {
     foreach (var subnode in node)
     {
         Visit((dynamic)subnode);
     }
 }
示例#2
0
        public ElseIfBuilder(ElseIfNode elseIf)
        {
            node          = elseIf;
            DotDefinition = new List <IDotElement>();

            CreateNode();
            CreateTrueEdge();
            CreateFalseEdge();
        }
示例#3
0
        public IfNode(LeafParser.IfContext ctx)
        {
            Line  = ctx.Start.Line;
            Check = ValueNode.Create(ctx.value());
            Scope = new ScopeNode(ctx.conditional_scope(0));

            if (ctx.Else() != null)
            {
                if (ctx.conditional_scope(1) != null)
                {
                    Else = new ElseNode(ctx.conditional_scope(1));
                }
                else
                {
                    ElseIf = new ElseIfNode(ctx.@if());
                }
            }
        }
        public Node ElseIf()
        {
            var node = new ElseIfListNode();

            while (CurrentToken == TokenCategory.ELSEIF)
            {
                var node1 = new ElseIfNode();
                Expect(TokenCategory.ELSEIF);
                Expect(TokenCategory.PARENTHESIS_OPEN);
                node1.Add(Expr());
                Expect(TokenCategory.PARENTHESIS_CLOSE);
                Expect(TokenCategory.LLAVE_OPEN);
                node1.Add(StmtList());
                Expect(TokenCategory.LLAVE_CLOSE);
                node.Add(node1);
            }
            return(node);
        }