// 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);
        }
 internal InfoStore()
 {
     DefinitionAdmin.Init(); // initialise the common-lib's description of functions and parametes (once for the life-time of the lib)
     operandAdmin = new OperandAdmin(this);
 }