コード例 #1
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;
            }
コード例 #2
0
ファイル: Command.cs プロジェクト: tom-vd/dmake
            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;
            }