コード例 #1
0
 protected virtual void PopulateSkipList()
 {
     for (int i = 0; i < TargetGrammar.Count; i++)
     {
         Rule            r   = TargetGrammar[i];
         AdvanceableRule rul = new AdvanceableRule(r.Name);
         for (int j = 0; j < r.Count; j++)
         {
             if (!r[j][0].Equals(r.Name))
             {
                 rul.Add(advProds[r[j]]);
             }
         }
         skipList.Add(r.Name, rul);
     }
 }
コード例 #2
0
 protected virtual void PopulateInitialListings()
 {
     for (int i = 0; i < TargetGrammar.Count; i++)
     {
         Rule r = TargetGrammar[i];
         if (!initialListing.ContainsKey(r))
         {
             var tmp = new AdvanceableRule(r.Name);
             for (int j = 0; j < r.Count; j++)
             {
                 tmp.Add(advProds[r[j]]);
             }
             initialListing.Add(r, tmp);
         }
     }
 }