Example #1
0
 public void CopyVariablesFrom(TES5LocalScope otherScope)
 {
     TES5LocalVariable[] scopeVariables      = GetScopeVariables().ToArray();
     TES5LocalVariable[] otherScopeVariables = otherScope.localVariables.Where(v => !scopeVariables.Contains(v)).ToArray();
     foreach (var variable in otherScopeVariables)
     {
         localVariables.Add(variable);
     }
 }
Example #2
0
        private IEnumerable <TES5LocalVariable> GetAllVariables()
        {
            TES5LocalScope scope = this;

            do
            {
                foreach (TES5LocalVariable variable in scope.LocalVariables)
                {
                    yield return(variable);
                }
                scope = scope.ParentScope;
            }while (scope != null);
            foreach (TES5LocalVariable variable in this.FunctionScope.Variables.Values)
            {
                yield return(variable);
            }
        }
Example #3
0
 /*
  * TES5LocalScope constructor.
  */
 public TES5LocalScope(TES5FunctionScope functionScope, TES5LocalScope parentScope = null)
 {
     this.FunctionScope = functionScope;
     this.ParentScope   = parentScope;
 }