internal static void RegisterType() { if (PsiHelperNode.TypeRegistered) { return; } TreeBuilder.RegisterType <PsiHelperNode>(PsiHelperNode.PublicTypeName, (XElement el, Node_base Parent, Document owner) => { IEnumerable <XElement> Children = el.Elements(); var ret = new PsiHelperNode(el.Name.ToString(), Parent, owner); foreach (XElement c in Children) { String Name = c.Name.ToString(); if (Name.Equals("ExeName")) { ret.ExeName_stub = c.Value; } else if (Name.Equals("args")) { ret.Arguments_stub = c.Value; } else if (Name.Equals("CancelOnError")) { ret.CancelOnError = c.Value.ToLower().Equals("true"); } } // foreach return(ret); }, (Node_base N, i32 lvl, StringBuilderEx sb) => { TreeBuilder.CheckChildCount(N, 0, 0); ((PsiHelperNode)N).ToXML(lvl, sb); }); PsiHelperNode.TypeRegistered = true; }
internal static void RegisterType() { PsiHelperNode.RegisterType(); XBOSS.Types.Array <PsiHelperNode> .RegisterType(); if (Command.TypeRegistered) { return; } TreeBuilder.RegisterType <Command>(Command.PublicTypeName, (XElement el, Node_base Parent, Document owner) => { IEnumerable <XElement> Children = el.Elements(); var ret = new Command(el.Name.ToString(), Parent, owner); foreach (XElement c in Children) { String Name = c.Name.ToString(); if (Name.Equals("dependencies")) { ret.DepIdx = ret.Children.Count; ret.Children.Add(TreeBuilder.InvokeParser(c, Parent, owner)); } else if (Name.Equals("run")) { ret.RunIdx = ret.Children.Count; ret.Children.Add(TreeBuilder.InvokeParser(c, Parent, owner)); } // if } // foreach return(ret); }, (Node_base N, i32 lvl, StringBuilderEx sb) => { TreeBuilder.CheckChildCount(N, 0, 0); ((Command)N).ToXML(lvl, sb); }); Command.TypeRegistered = true; }