示例#1
0
    public override GameObject Build()
    {
        PackageNode node = (PackageNode)Node;

        Vector2           size         = Vector2.zero;
        List <CityLayout> childLayouts = new List <CityLayout>();

        GameObj = MonoBehaviour.Instantiate(prefabs[ObjectType.Package], Vector3.zero, Quaternion.identity);
        GameObj.GetComponent <Details>().Node = Node;

        // Build All Child Packages
        foreach (PackageNode childPkg in node.Packages)
        {
            PackageObject po      = new PackageObject(childPkg, prefabs);
            GameObject    childGo = po.Build();
            childLayouts.Add(po);

            size += new Vector2(po.LayoutSize.x, po.LayoutSize.z);
        }

        // Build All Child Classes
        foreach (ClassNode childCls in node.Classes)
        {
            ClassObject co      = new ClassObject(childCls, prefabs);
            GameObject  childGo = co.Build();
            childLayouts.Add(co);

            size += new Vector2(co.LayoutSize.x, co.LayoutSize.z);
        }

        LayoutChildren(GameObj, childLayouts, size);

        return(GameObj);
    }
示例#2
0
 public override bool Visit(PackageNode node)
 {
     Visit((TranslationUnit)node);
     TraversePrint(node.requires);
     TraversePrint(node.contains);
     return(true);
 }
        public static async Task <PackageNode> GetPackageDependenciesAsync(string name, string version)
        {
            PackageNode package = await GetNPMPackageAsync(name, version);

            PackageNode root = package;

            await GetPackageDependenciesAsync(package, root);

            return(root);
        }
示例#4
0
 public virtual void VisitPackageNode(PackageNode node)
 {
     Visit(node.PackageKeywordNode);
     Visit(node.NameNode);
     Visit(node.SemicolonNode);
     Visit(node.RequiresClauseNode);
     Visit(node.ContainsClauseNode);
     Visit(node.AttributeListNode);
     Visit(node.EndKeywordNode);
     Visit(node.DotNode);
 }
示例#5
0
 private void CreateMetaBasic()
 {
     PackageNode.CreateChildNode(METADATA_NODE)
     .CreateChildNode(ID_ATTRIBUTE, nuspecMetaData.Id).ParentNode
     .CreateChildNode(VERSION_NODE, nuspecMetaData.Version).ParentNode
     .CreateChildNode(TITLE_NODE, nuspecMetaData.Title).ParentNode
     .CreateChildNode(AUTHORS_NODE, nuspecMetaData.Author).ParentNode
     .CreateChildNode(OWNERS_NODE, nuspecMetaData.Owner).ParentNode
     .CreateChildNode(DESCRIPTION_NODE, nuspecMetaData.Desciption).ParentNode
     .CreateChildNode(RELEASE_NOTES_NODE, nuspecMetaData.ReleaseNotes).ParentNode
     .CreateChildNode(COPYRIGHT_NODE, nuspecMetaData.Copyright).ParentNode
     .CreateChildNode(TAGS_NODE, nuspecMetaData.Tags);
 }
示例#6
0
    public void XmlLoadPasses()
    {
        ProjectXMLReader reader  = new ProjectXMLReader();
        ProjectNode      project = reader.LoadProject("C:/Users/david/Documents/projects/ScrumCity/project.xml");

        Assert.AreEqual(project.Name, "Cassandra TestCase");
        Assert.AreEqual(project.Children[0].Name, "org");

        PackageNode cassandra = project.Packages[0].Packages[0].Packages[0];

        Assert.AreEqual("org.apache.cassandra", cassandra.Name);
        Assert.AreEqual(29, cassandra.Packages.Count);
        Assert.AreEqual(0, cassandra.Classes.Count);
        Assert.AreEqual(29, cassandra.Children.Count);


        Assert.AreEqual("org.apache.cassandra.auth", cassandra.Packages[0].Name);
        PackageNode auth = cassandra.Packages[0];

        Assert.AreEqual(0, auth.Packages.Count);
        Assert.AreEqual(43, auth.Classes.Count);

        string      dbName = "org.apache.cassandra.db";
        PackageNode db     = (PackageNode)cassandra.Children.First(s => s.Name == dbName);

        Assert.AreEqual(dbName, db.Name);
        Assert.AreEqual(9, db.Packages.Count);
        Assert.AreEqual(186, db.Classes.Count);
        Assert.AreEqual(9 + 186, db.Children.Count);

        string    cellName = "Cell";
        ClassNode cell     = (ClassNode)db.Children.First(s => s.Name == cellName);

        Assert.AreEqual(cellName, cell.Name);
        Assert.AreEqual(cell.LOC, 1);
        Assert.AreEqual(cell.NOM, 13);
        Assert.AreEqual(cell.NOA, 1);
        Assert.IsTrue(cell.IsInterface);
        Assert.IsFalse(cell.IsAbstract);
        Assert.IsFalse(cell.IsEnum);
        Assert.AreEqual(13, cell.Methods.Count);
        Assert.AreEqual(13, cell.Children.Count);

        string     methodName = "reconcile";
        MethodNode rec        = (MethodNode)cell.Children.First(s => s.Name == methodName);

        Assert.AreEqual(methodName, rec.Name);
    }
示例#7
0
    // Use this for initialization
    void Start()
    {
        ProjectXMLReader reader  = new ProjectXMLReader();
        ProjectNode      project = reader.LoadProject(projectXmlFile);
        PackageNode      main    = project.Packages[0];

        Dictionary <ObjectType, GameObject> prefabs = new Dictionary <ObjectType, GameObject>()
        {
            { ObjectType.Package, packagePrefab },
            { ObjectType.Class, classPrefab },
            { ObjectType.Interface, interfacePrefab },
            { ObjectType.Method, methodPrefab },
        };
        PackageObject authObject = new PackageObject(main, prefabs);

        GameObject city = authObject.Build();

        city.transform.localScale = city.transform.localScale * .5f;
    }
        private void buildTree()
        {
            //reset
            treeView1.Nodes.Clear();

            System.Windows.Forms.TreeNode packageRoot = new TreeNode("Packages");
            treeView1.Nodes.Add(packageRoot);

            //retrieve all objects from DB
            List <DatabaseObject> list = new List <DatabaseObject>();

            Editor.LoadObjects(ref list, 0);

            //get all packages...
            List <PackageInfo> packs = new List <PackageInfo>();

            Editor.GetPackages(ref packs);

            foreach (PackageInfo p in packs)
            {
                AddPackage(p);
            }


            foreach (DatabaseObject data in list)
            {
                ClassBase godzClass = ClassBase.findClass(data.classhash);
                if (godzClass != null && godzClass.IsA("ObjectTemplate"))
                {
                    //see if we already added the package
                    Object temp = mPackageMap[data.packageHash];

                    if (temp != null)
                    {
                        PackageNode pnode       = (PackageNode)temp;
                        TreeNode    parent_node = pnode.node;
                        AddTemplateToTree(parent_node, data);
                    }
                }
            }

            treeView1.ExpandAll();
        }
        private static async Task <PackageNode> GetNPMPackageAsync(string name, string version)
        {
            PackageNode    npmPackage = null;
            string         response   = "";
            var            path       = $"{ URL}/{ name}/{ version}";
            HttpWebRequest request    = (HttpWebRequest)WebRequest.Create(path);

            using (HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse())
            {
                using (Stream dataStream = webResponse.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(dataStream))
                    {
                        response = await reader.ReadToEndAsync();
                    }
                }
            }

            npmPackage = PackageNode.FromJson(response);
            return(npmPackage);
        }
        public static async Task GetPackageDependenciesAsync(PackageNode package, PackageNode root)
        {
            foreach (var depedency in package.Dependencies)
            {
                var name = depedency.Key;
                //Regex taken from the Semantic Versioning Specification (https://semver.org/)
                //ran into some unexpected versions, fount this very helpful
                //for example "> 1.1.15 <= 2"

                var version      = Regex.Match(depedency.Value, @"(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?").Value;
                var childPackage = root.TryGetNode(name, version);
                if (childPackage == null)
                {
                    childPackage = await Task.Run(() => GetNPMPackageAsync(name, version));

                    if (childPackage.Dependencies != null)
                    {
                        await GetPackageDependenciesAsync(childPackage, root);
                    }
                }
                package.AddChild(package, childPackage);
            }
        }
示例#11
0
        void ParsePackage(FileNode filenode)
        {
            var node = new PackageNode();

            if (TryConsume(TokenType.Package))
            {
                if (!string.IsNullOrEmpty(filenode.Package))
                {
                    Reporter.Error(ErrorType.Parse, _lexer.Loc, "package already specified");
                }

                node.Name = FetchToken(TokenType.Identifier, "require package name").Value;

                if (filenode.Package == node.Name)
                {
                    Reporter.Error(ErrorType.Parse, _lexer.Loc, "package name duplicated");
                }

                Consume(TokenType.EOL);

                filenode.Package = node.Name;
                filenode.Add(node);
            }
        }
示例#12
0
    public void GenerateProjectModelPasses()
    {
        // Use the Assert class to test conditions.

        //Create a couple methods
        MethodNode meth1 = new MethodNode("Method1", 10, 1);
        MethodNode meth2 = new MethodNode("Method2", 35, 2);
        MethodNode meth3 = new MethodNode("Method3", 10, 1);
        MethodNode meth4 = new MethodNode("Method4", 35, 2);

        //Create a couple classes
        ClassNode class1 = new ClassNode("Class1", 65, 5);
        ClassNode class2 = new ClassNode("Class2", 250, 3);

        //Add some methods to the classes
        class1.addChild(meth1);
        class1.addChild(meth2);
        class1.addChild(meth3);
        class2.addChild(meth4);

        //Create a couple packages
        PackageNode package1 = new PackageNode("org");
        PackageNode package2 = new PackageNode("org.package");
        PackageNode package3 = new PackageNode("org.package.tests");
        PackageNode package4 = new PackageNode("org.audit");

        //Add packages to packages
        package1.addChild(package2);
        package1.addChild(package4);
        package2.addChild(package3);

        //Add classes to packages
        package2.addChild(class1);
        package4.addChild(class2);

        //Create Root Project
        ProjectNode project = new ProjectNode("Example Source");

        project.addChild(package1);

        Assert.AreEqual(project.Children.Count, 1);
        Assert.AreEqual(project.Children[0], package1);
        Assert.AreEqual(project.Children[0].Children[0], package2);
        Assert.AreEqual(project.Children[0].Children[1], package4);
        Assert.AreEqual(project.Children[0].Children[0].Children[0], package3);

        Assert.AreEqual(package1.Children.Count, 2);
        Assert.AreEqual(package2.Children.Count, 2);
        Assert.AreEqual(package3.Children.Count, 0);
        Assert.AreEqual(package4.Children.Count, 1);

        Assert.AreEqual(package1.Classes.Count, 0);
        Assert.AreEqual(package1.Packages.Count, 2);
        Assert.AreEqual(package2.Classes.Count, 1);
        Assert.AreEqual(package2.Packages.Count, 1);

        Assert.AreEqual(package1.Children[0], package2);
        Assert.AreEqual(package1.Children[1], package4);
        Assert.AreEqual(package2.Children[0], package3);
        Assert.AreEqual(package2.Children[1], class1);
        Assert.AreEqual(package4.Children[0], class2);

        Assert.AreEqual(class1.Children.Count, 3);
        Assert.AreEqual(class2.Children.Count, 1);
        Assert.AreEqual(class1.Methods.Count, 3);
        Assert.AreEqual(class2.Methods.Count, 1);

        Assert.AreEqual(class1.Children[0], meth1);
        Assert.AreEqual(class1.Children[1], meth2);
        Assert.AreEqual(class1.Children[2], meth3);
        Assert.AreEqual(class2.Children[0], meth4);

        Assert.AreEqual(class1.NOA, 5);
        Assert.AreEqual(class1.NOM, 3);
        Assert.AreEqual(class1.LOC, 65);

        Assert.Throws <System.NotImplementedException>(delegate { meth1.addChild(meth2); });
    }
示例#13
0
 public virtual void VisitPackageNode(PackageNode node)
 {
     Visit(node.PackageKeywordNode);
     Visit(node.NameNode);
     Visit(node.SemicolonNode);
     Visit(node.RequiresClauseNode);
     Visit(node.ContainsClauseNode);
     Visit(node.AttributeListNode);
     Visit(node.EndKeywordNode);
     Visit(node.DotNode);
 }
 public static async Task <PackageNode> GetNPMPackageAsync(PackageNode package)
 {
     return(await GetNPMPackageAsync(package.Name, package.Version));
 }
示例#15
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="path"></param>
    /// <param name="ResResult">为空,则加载到自身的表里</param>
    /// <param name="OtherResult">为空,则加载到自身的表里</param>
    public static void LoadPackageList(string path, Dictionary <string, PackageNode> ResResult = null,
                                       Dictionary <string, PackageNode> OtherResult            = null)
    {
        if (!File.Exists(path))
        {
            return;
        }
        string stSchemeAllText = DeCodeAssetFile(path);

        if (stSchemeAllText.Equals(string.Empty))
        {
            return;
        }
        if (null == ResResult)
        {
            ResResult = m_RespackageTable;
        }
        if (null == OtherResult)
        {
            OtherResult = m_OtherpackageTable;
        }

        //去掉\n,因为ScpReader以"\r"分割
        stSchemeAllText = stSchemeAllText.Replace("\n", "");
        //再干掉最后的"\r"
        stSchemeAllText = stSchemeAllText.Remove(stSchemeAllText.Length - 1, 0);
        AssetBundleConfigReader packageReader = new AssetBundleConfigReader(stSchemeAllText, "packageList", 0);

        int currentIndex = 0;

        string lowerArtistCommonPatch = ArtistCommonPatch.ToLower();

        #region Res
        //先读取资源的
        for (int i = currentIndex; i < packageReader.GetRecordCount(); ++i)
        {
            string SplitKey = packageReader.GetString(i, 0, string.Empty);
            if (SplitKey.Contains(SplitCSVKey))
            {
                currentIndex = i + 1;
                break;
            }
            PackageNode data = new PackageNode();
            data.md5 = packageReader.GetString(i, (int)PackageNodeCol.COL_MD5, string.Empty);
            data.assetBundlePatch = packageReader.GetString(i, (int)PackageNodeCol.COL_AB_NAME, string.Empty);
            data.fileSize         = packageReader.GetFloat(i, (int)PackageNodeCol.COL_FILESIZE, 0);
            string fullpath = FullAssetPackagePathRoot + data.assetBundlePatch;
            if (!File.Exists(fullpath))
            {
                continue;
            }
            if (!ResResult.ContainsKey(data.assetBundlePatch))
            {
                ResResult.Add(data.assetBundlePatch, data);
                InsertUnionDependenicesAssetBundle(data.assetBundlePatch);
                if (data.assetBundlePatch.Contains(lowerArtistCommonPatch))
                {
                    ArtistCommonAssetBundleNames.Add(data.assetBundlePatch);
                }
                else if (data.assetBundlePatch.Contains(FontAssetBundlePatch))
                {
                    FontAssetBundleNames.Add(data.assetBundlePatch);
                }

                if (data.assetBundlePatch.EndsWith(UIVariant))
                {
                    m_UIAssetBundleTable.Add(data.assetBundlePatch);
                }

                if (data.assetBundlePatch.EndsWith(ShaderAssetVariant))
                {
                    if (data.assetBundlePatch.Contains(FirstLoadPatchKey))
                    {
                        m_FirstLoadAssetBundlePath.Add(data.assetBundlePatch);
                    }
                    else
                    {
                        m_NormalShaderAssetBundlePath.Add(data.assetBundlePatch);
                    }
                }
            }
            else
            {
                Debug.LogWarning("资源列表里有重复的文件:" + data.assetBundlePatch);
            }
        }
        #endregion

        #region Other

        //先读取资源的
        for (int i = currentIndex; i < packageReader.GetRecordCount(); ++i)
        {
            string SplitKey = packageReader.GetString(i, 0, string.Empty);
            if (SplitKey.Contains(SplitCSVKey))
            {
                currentIndex = i + 1;
                break;
            }
            PackageNode data = new PackageNode();
            data.md5 = packageReader.GetString(i, (int)PackageNodeCol.COL_MD5, string.Empty);
            data.assetBundlePatch = packageReader.GetString(i, (int)PackageNodeCol.COL_AB_NAME, string.Empty);
            data.fileSize         = packageReader.GetFloat(i, (int)PackageNodeCol.COL_FILESIZE, 0);
            if (!OtherResult.ContainsKey(data.assetBundlePatch))
            {
                OtherResult.Add(data.assetBundlePatch, data);
            }
            else
            {
                Debug.LogWarning("资源列表里有重复的文件:" + data.assetBundlePatch);
            }
        }

        #endregion
    }
示例#16
0
 public PackageObject(PackageNode node, Dictionary <ObjectType, GameObject> prefabs) : base(node, prefabs)
 {
 }
示例#17
0
文件: PBPrinter.cs 项目: ycllz/ProtoF
 public override void Print(PackageNode node, StringBuilder sb, PrintOption opt, params object[] values)
 {
     sb.AppendFormat("package {0};\n", node.Name);
 }
示例#18
0
 public ProcedureNode(SchemaNode schemaNode, PackageNode packageNode, string name)
 {
     _schemaNode  = schemaNode;
     _packageNode = packageNode;
     _name        = name;
 }
示例#19
0
 public FunctionNode(SchemaNode schemaNode, PackageNode packageNode, string name)
 {
     _schemaNode  = schemaNode;
     _packageNode = packageNode;
     _name        = name;
 }