예제 #1
0
 public ContextModel(ContextModel parent)
 {
     // Guarda el contexto padre y el índice
     Parent = parent;
     if (Parent == null)
     {
         ScopeIndex = 0;
     }
     else
     {
         ScopeIndex = Parent.ScopeIndex + 1;
     }
     // Crea las tablas de variables y funciones
     VariablesTable = new Variables.TableVariableModel(this);
     FunctionsTable = new Functions.TableFunctionsModel(this);
 }
예제 #2
0
        /// <summary>
        ///		Obtiene recursivamente la tabla de variables del contexto
        /// </summary>
        public Variables.TableVariableModel GetVariablesRecursive()
        {
            Variables.TableVariableModel table = new Variables.TableVariableModel(this);

            // Añade las variables del padre
            if (Parent != null)
            {
                table = Parent.GetVariablesRecursive();
            }
            // Añade / sustituye las variables propias
            foreach (System.Collections.Generic.KeyValuePair <string, Variables.VariableModel> item in VariablesTable.GetAll())
            {
                table.Add(item.Value);
            }
            // Devuelve la colección de tablas
            return(table);
        }