private void ReadConstants(CompoundExpression exp, Domain d) { string sType = "?", sExp = ""; List <string> lUndefined = new List <string>(); for (int iExpression = 0; iExpression < exp.SubExpressions.Count; iExpression++) { sExp = exp.SubExpressions[iExpression].ToString().Trim(); if (sExp == "-") { sType = exp.SubExpressions[iExpression + 1].ToString(); iExpression++; foreach (string sName in lUndefined) { d.AddPublicConstant(new Constant(sType, sName)); } lUndefined.Clear(); } else if (exp.SubExpressions[iExpression] is CompoundExpression) { CompoundExpression eSub = (CompoundExpression)exp.SubExpressions[iExpression]; if (eSub.Type == ":private") { ReadPrivateConstants(eSub, d); } } else if (!sExp.StartsWith(":")) { lUndefined.Add(sExp); } } if (lUndefined.Count > 0) { //supporting objects with undefined types as type "OBJ" foreach (string sName in lUndefined) { d.AddPublicConstant(new Constant("OBJ", sName)); } //throw new NotImplementedException(); } }