Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 public Parser(InputSource source)
 {
     inputSource           = source;
     inputSource.ElementID = 2;
     _defaultNamespace     = new FNamespace()
     {
         NId      = inputSource.ElementID++,
         NName    = "UnknownNamespace",
         NClasses = new List <FClass>(),
     };
 }
Beispiel #4
0
 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;
     }
 }