public ModuleContext(TotemModule module, TotemContext creatingContext)
        {
            ContractUtils.RequiresNotNull(module, "module");
            ContractUtils.RequiresNotNull(creatingContext, "creatingContext");

            _globals = module.Dictionary;
        }
        public ModuleContext(TotemDictionary globals, TotemContext creatingContext)
        {
            ContractUtils.RequiresNotNull(globals, "globals");
            ContractUtils.RequiresNotNull(creatingContext, "creatingContext");

            _globals = globals;
            _totemContext = creatingContext;
            _globalContext = new CodeContext(globals, this);
            _module = new TotemModule(globals);
            _module.Scope.SetExtension(_totemContext.ContextId, new TotemScopeExtension(_totemContext, _module, this));
        }
 public TotemScopeExtension(TotemContext context, TotemModule module, ModuleContext moduleContext)
     : base(module.Scope)
 {
     _module = module;
     _moduleContext = moduleContext;
 }
 public TotemScopeExtension(TotemContext context, Scope scope)
     : base(scope)
 {
     _module = new TotemModule(context, scope);
     _moduleContext = new ModuleContext(_module, context);
 }