예제 #1
0
 private Pile <Reach> splitBraces(Reach formula)
 {
     while (formula.at(1, utl.dmyBool("al(occur, token) is planned"), "(").len > 0)
     {
         Reach part     = braces.upon(formula);
         Reach lastPart = formula;
         while (part.startsWith("("))
         {
             lastPart = part;
             part     = braces.upon(part.from(2));
         }
         if (lastPart.startsWith("("))
         {
             terms.Add(braces.on(lastPart).Trim());
         }
         else
         {
             terms.Add(lastPart.Trim());
         }
         formula = formula.RPW("«" + terms.Len + "»").at(lastPart);
     }
     if (formula.startsWith("("))
     {
         terms.Add(braces.on(formula).Trim());
     }
     else
     {
         terms.Add(formula.Trim());
     }
     return(terms);
 }