public void AddNode(TemplateNode node) { if (Root == null) { this.Root = node; } _nodes.Add(node); }
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); } }