Example #1
0
 private void RemoveDisjunctions(Action a, List <List <Formula> > lOptions, int iOption, CompoundFormula cfAnd, List <Action> lNoDisjunctions, ref int iIndex)
 {
     if (iOption == lOptions.Count)
     {
         Action aNew = a.Clone();
         aNew.Name += "." + iIndex;
         iIndex++;
         aNew.Preconditions = cfAnd;
         lNoDisjunctions.Add(aNew);
     }
     else
     {
         foreach (Formula fOption in lOptions[iOption])
         {
             CompoundFormula cfNew = (CompoundFormula)cfAnd.Clone();
             cfNew.AddOperand(fOption);
             RemoveDisjunctions(a, lOptions, iOption + 1, cfNew, lNoDisjunctions, ref iIndex);
         }
     }
 }