Пример #1
0
 internal void TransformList <T>(ref StructList <T> list) where T : AstNode
 {
     for (var i = 0; i < list.Count; i++)
     {
         var originalNode = list[i];
         var item         = Transform(originalNode, true);
         if (item == Remove)
         {
             list.RemoveAt(i);
             Modified = true;
             i--;
         }
         else if (item is AstSpreadStructList <T> spreadList)
         {
             list.ReplaceItemAt(i, spreadList.NodeList);
             Modified = true;
         }
         else
         {
             if (originalNode != item)
             {
                 Modified = true;
             }
             list[i] = (T)item;
         }
     }
 }