Beispiel #1
0
        public void AddNode(TemplateNode node)
        {
            if (Root == null)
            {
                this.Root = node;
            }

            _nodes.Add(node);
        }
Beispiel #2
0
        public static void Print(TemplateNode node, int level = 0)
        {
            for (int i = 0; i < level; i++)
            {
                Console.Write("\t");
            }
            Console.WriteLine(node.GetType().Name);

            if (node is GroupNode)
            {
                var temp = node as GroupNode;

                foreach (var child in temp.Nodes)
                {
                    Print(child, level + 1);
                }
            }
            else
            if (node is IfNode)
            {
                var temp = node as IfNode;

                for (int i = 0; i <= level; i++)
                {
                    Console.Write("\t");
                }
                Console.WriteLine(".true");
                Print(temp.trueNode, level + 2);

                if (temp.falseNode != null)
                {
                    for (int i = 0; i <= level; i++)
                    {
                        Console.Write("\t");
                    }
                    Console.WriteLine(".false");
                    Print(temp.falseNode, level + 2);
                }
            }
            else
            if (node is EachNode)
            {
                var temp = node as EachNode;

                Print(temp.inner, level + 1);
            }
        }