Esempio n. 1
0
 public MangoObject[] Parse(string rawText)
 {
     Temps = TempParse(rawText);
     MangoObject[] objects = new MangoObject[Temps.Length];
     for (int i = 0; i < objects.Length; i++)
     {
         objects[i] = Temps[i].ToMangoObject();
     }
     Sort(objects);
     return(BaseParent.Children);
 }
Esempio n. 2
0
 private void Sort(MangoObject[] objects)
 {
     for (int i = 0; i < objects.Length; i++)
     {
         MangoObject current = objects[i];
         MangoObject parent_ = null;
         int         pRange; //parent range
         int         rRange; //rival parent range
         for (int c = 0; c < objects.Length; c++)
         {
             if (!(current == objects[c]))
             {
                 try
                 {
                     pRange = parent_.ObjectEnd - parent_.ObjectStart;
                     rRange = objects[c].ObjectEnd - objects[c].ObjectStart;
                     if (!(parent_ == null))
                     {
                         if (parent_.ObjectStart > objects[c].ObjectStart && parent_.ObjectEnd < objects[c].ObjectEnd && rRange < pRange)
                         {
                             parent_ = objects[c];
                         }
                     }
                     else
                     {
                         throw new NullReferenceException();
                     }
                 }
                 catch (NullReferenceException)
                 {
                     //parent is null
                     if (parent_.ObjectStart > objects[c].ObjectStart && parent_.ObjectEnd < objects[c].ObjectEnd)
                     {
                         parent_ = objects[c];
                     }
                 }
             }
             if (current.Parent == null)
             {
                 current.SetParent(BaseParent);
             }
             else
             {
                 current.SetParent(parent_);
             }
         }
     }
 }
Esempio n. 3
0
 public void SetTaskInitiator(MangoObject mango)
 {
     this.mango = mango;
 }