Beispiel #1
0
            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;
            }
Beispiel #2
0
            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;
            }
Beispiel #3
0
            public static void RegisterType()
            {
                Command.RegisterType();
                if (Makefile.TypeRegistered)
                {
                    return;
                }

                TreeBuilder.RegisterType(typeof(Makefile), Makefile.PublicTypeName, (XElement el, Node_base Parent, Document owner) => {
                    IEnumerable <XElement> Children = el.Elements();
                    var ret = new Makefile(el.Name.ToString(), Parent, owner);
                    foreach (XElement c in Children)
                    {
                        String Name = c.Name.ToString();
                        if (Name.Equals("variables"))
                        {
                            ret.m_Variables = (NamedCollection)TreeBuilder.InvokeParser(c, Parent, owner);
                        }
                        else if (Name.Equals("commands"))
                        {
                            ret.Commands = (NamedCollection)TreeBuilder.InvokeParser(c, Parent, owner);
                        }
                    }                     // foreach

                    IEnumerable <XAttribute> Attributes = el.Attributes();
                    foreach (XAttribute a in Attributes)
                    {
                        String Name = a.Name.ToString();
                        if (Name.Equals("DefaultTarget"))
                        {
                            ret.DefaultTarget = a.Value;
                        }
                    }                     // foreach

                    return(ret);
                }, (Node_base N, i32 lvl, StringBuilderEx sb) => {
                    TreeBuilder.CheckChildCount(N, 0, 0);
                    ((Makefile)N).ToXML(lvl, sb);
                });

                Makefile.TypeRegistered = true;
            }