// This returns the formula one must run in the Calculator to get the IL value internal static List <Entry> ResolveILContent(string ilName, OperandAdmin operandAdmin) { List <Entry> newContent = new List <Entry>(); foreach (var c in operandAdmin.GetILContent(ilName)) { if (operandAdmin.Exists(c.Key) && operandAdmin.GetParType(c.Key) == DefPar.PAR_TYPE.IL) { newContent.Add(new Entry() { isIL = true, ilName = c.Key, ilEntries = ResolveILContent(c.Key, operandAdmin), addFactor = c.Value }); // IL: go recursive } else { newContent.Add(new Entry() { isIL = false, varSpec = new VarSpec() { name = c.Key }, addFactor = c.Value }); // variable: just add to list } } return(newContent); }
// note: this is "internal static", in order to make it useable by e.g. DefOuput, which needs it for parameter DefIL // it returns a list of components internal static List <string> GetILComponents(string ilName, OperandAdmin operandAdmin) { List <string> entries = new List <string>(); foreach (var c in operandAdmin.GetILContent(ilName)) { if (operandAdmin.Exists(c.Key) && operandAdmin.GetParType(c.Key) == DefPar.PAR_TYPE.IL) { entries.AddRange(GetILComponents(c.Key, operandAdmin)); } else { entries.Add(c.Key); } } return(entries); }