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); }
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); }
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); }
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); }
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); }
// 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); } }
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); } }
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); }); }
public static async Task <PackageNode> GetNPMPackageAsync(PackageNode package) { return(await GetNPMPackageAsync(package.Name, package.Version)); }
/// <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 }
public PackageObject(PackageNode node, Dictionary <ObjectType, GameObject> prefabs) : base(node, prefabs) { }
public override void Print(PackageNode node, StringBuilder sb, PrintOption opt, params object[] values) { sb.AppendFormat("package {0};\n", node.Name); }
public ProcedureNode(SchemaNode schemaNode, PackageNode packageNode, string name) { _schemaNode = schemaNode; _packageNode = packageNode; _name = name; }
public FunctionNode(SchemaNode schemaNode, PackageNode packageNode, string name) { _schemaNode = schemaNode; _packageNode = packageNode; _name = name; }