private void ReadParameters(CompoundExpression exp, ParametrizedAction pa)
        {
            //unfortunately, expressions have a weird non standard structure with no type - (?i - pos ?j - pos )
            //so we must have a special case
            List <string> lTokens  = exp.ToTokenList();
            List <string> lNames   = new List <string>();
            string        sType    = "";
            int           iCurrent = 0;

            while (iCurrent < lTokens.Count)
            {
                if (lTokens[iCurrent] == "-")
                {
                    sType = lTokens[iCurrent + 1];
                    foreach (string sName in lNames)
                    {
                        pa.AddParameter(new Parameter(sType, sName));
                    }
                    lNames    = new List <string>();
                    sType     = "";
                    iCurrent += 2;
                }
                else
                {
                    lNames.Add(lTokens[iCurrent]);
                    iCurrent++;
                }
            }
            if (lNames.Count != 0) //allowing no types specified
            {
                foreach (string sName in lNames)
                {
                    pa.AddParameter(new Parameter("OBJ", sName));
                }
            }
        }
 private void ReadParameters(CompoundExpression exp, ParametrizedAction pa)
 {
     //unfortunately, expressions have a weird non standard structure with no type - (?i - pos ?j - pos )
     //so we must have a special case
     List<string> lTokens = exp.ToTokenList();
     List<string> lNames = new List<string>();
     string sType = "";
     int iCurrent = 0;
     while (iCurrent < lTokens.Count)
     {
         if (lTokens[iCurrent] == "-")
         {
             sType = lTokens[iCurrent + 1];
             foreach (string sName in lNames)
                 pa.AddParameter(new Parameter(sType, sName));
             lNames = new List<string>();
             sType = "";
             iCurrent += 2;
         }
         else
         {
             lNames.Add(lTokens[iCurrent]);
             iCurrent++;
         }
     }
     if (lNames.Count != 0) //allowing no types specified
     {
         foreach (string sName in lNames)
             pa.AddParameter(new Parameter("OBJ", sName));
     }
 }