public void ParseNamespace() { FNamespace fmNamespace = new FNamespace(); lastIndex = parseLine.ToString().IndexOf("{"); fmNamespace.NId = inputSource.ElementID; fmNamespace.NName = parseLine.ToString().Substring(startIndex + 10, lastIndex - (startIndex + 10)).Trim(); String[] namespaces = parseLine.ToString().Substring(startIndex + 10, lastIndex - (startIndex + 10)).Trim().Split('.'); if (namespaces.Length > 1) { fmNamespace.ParnetNamespace = namespaces[namespaces.Length - 2]; } if (statusOfNamespace.Count > 0) { fmNamespace.ParnetNamespace = inputSource.ListOfNamespaces[statusOfNamespace[statusOfNamespace.Count - 1]].NName; fmNamespace.NName = inputSource.ListOfNamespaces[statusOfNamespace[statusOfNamespace.Count - 1]].NName + "." + parseLine.ToString().Substring(startIndex + 10, lastIndex - (startIndex + 10)).Trim(); } int index = fmNamespace.IndexOf(inputSource.ListOfNamespaces, fmNamespace); if (index == -1) { inputSource.ListOfNamespaces.Add(fmNamespace); statusOfNamespace.Add(inputSource.ListOfNamespaces.Count - 1); inputSource.ElementID++; } else { statusOfNamespace.Add(index); } parseLine.Remove(0, lastIndex + 1); }
public int IndexOf(List <FNamespace> listOfNamespace, FNamespace fNamespace) { for (int i = 0; i < listOfNamespace.Count; i++) { if (listOfNamespace[i].nName == fNamespace.NName) { return(i); } } return(-1); }
public Parser(InputSource source) { inputSource = source; inputSource.ElementID = 2; _defaultNamespace = new FNamespace() { NId = inputSource.ElementID++, NName = "UnknownNamespace", NClasses = new List <FClass>(), }; }
public void ProcessNamespaceHierarchy() { for (int nIdx = 0; nIdx < listOfNamespaces.Count; nIdx++) { FNamespace n = listOfNamespaces[nIdx]; string[] parts = n.NName.Split('.'); if (parts.Length == 1) { continue; } var pparts = new List <string>(parts).GetRange(0, parts.Length - 1); var parentName = String.Join(".", pparts.ToArray()); var parent = GetNamespace(parentName); if (parent == null) { parent = new FNamespace { NName = parentName, NId = elementID++ }; listOfNamespaces.Add(parent); } n.ParnetNamespace = parentName; n.NPackagedIn = parent.NId; } }