Esempio n. 1
0
 /// <summary>
 /// Push a function scope
 /// </summary>
 /// <param name="type"></param>
 public void PushFuncScope(string name, TFunc type, IEnumerable <Tuple <string, T> > parameters, Position pos)
 {
     // Clear the dynamic id.
     dynamicId = 0;
     scopes.Push(new FuncScope(name, string.Format("__{0}_return", name), type));
     ASTEnv = new AST.Env();
     /// Add all the parameter to the environment.
     foreach (var p in parameters)
     {
         scopes.Peek().AddSymbol(new EObj(dynamicId.ToString(), p.Item1, p.Item2, pos, SymbolEntry.Link.NONE, EObj.Storage.AUTO));
         ASTEnv.AddParam(dynamicId.ToString(), p.Item1, p.Item2);
         dynamicId++;
     }
 }