public Process CreateProcess(IHostApplication host, ICodeSource src, CompilerService compilerSvc) { SetGlobalEnvironment(host, src); var module = _engine.LoadModuleImage(compilerSvc.CreateModule(src)); return(InitProcess(host, src, ref module)); }
private IRuntimeContextInstance LoadAndCreate(CompilerService compiler, Environment.ICodeSource code) { compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); var moduleHandle = compiler.CreateModule(code); var loadedHandle = _engine.LoadModuleImage(moduleHandle); return(_engine.NewObject(loadedHandle.Module)); }
public Process CreateProcess(IHostApplication host, ICodeSource src, CompilerService compilerSvc) { SetGlobalEnvironment(host, src); Initialize(); _engine.DebugController?.OnMachineReady(_engine.Machine); _engine.DebugController?.WaitForDebugEvent(DebugEventType.BeginExecution); var module = _engine.LoadModuleImage(compilerSvc.CreateModule(src)); return(InitProcess(host, ref module)); }
public ScriptModuleHandle CreateModuleFromSource(CompilerService compiler, Environment.ICodeSource code, ExternalContextData externalContext) { compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); if (externalContext != null) { foreach (var item in externalContext) { compiler.DefineVariable(item.Key, SymbolType.ContextProperty); } } return(compiler.CreateModule(code)); }
private ModuleHandle LoadAndRegister(Type type, CompilerService compiler, string typeName, Environment.ICodeSource code) { compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); var moduleHandle = compiler.CreateModule(code); var loadedHandle = _engine.LoadModuleImage(moduleHandle); _loadedModules.Add(typeName, loadedHandle.Module); TypeManager.RegisterType(typeName, type); return(moduleHandle); }
public static ScriptModuleHandle CompileModule(CompilerService compiler, ICodeSource src) { for (int i = 0; i < _ownProperties.Count; i++) { var currentProp = _ownProperties.GetProperty(i); compiler.DefineVariable(currentProp.Name, currentProp.Alias, SymbolType.ContextProperty); } for (int i = 0; i < _ownMethods.Count; i++) { compiler.DefineMethod(_ownMethods.GetMethodInfo(i)); } return(compiler.CreateModule(src)); }
private void LoadAndRegister(Type type, CompilerService compiler, string typeName, Environment.ICodeSource code) { if (_loadedModules.ContainsKey(typeName)) { return; } compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); var moduleHandle = compiler.CreateModule(code); var loadedHandle = _engine.LoadModuleImage(moduleHandle); _loadedModules.Add(typeName, loadedHandle.Module); using (var md5Hash = MD5.Create()) { var hash = GetMd5Hash(md5Hash, code.Code); _fileHashes.Add(typeName, hash); } TypeManager.RegisterType(typeName, type); }
public Process CreateProcess(IHostApplication host, ICodeSource src, CompilerService compilerSvc) { SetGlobalEnvironment(host, src); var module = _engine.LoadModuleImage(compilerSvc.CreateModule(src)); return InitProcess(host, src, ref module); }
public void Write(TextWriter output, ICodeSource source) { var module = _compiler.CreateModule(source).Module; WriteImage(output, module); }
private void LoadAndRegister(Type type, CompilerService compiler, string typeName, Environment.ICodeSource code) { if(_loadedModules.ContainsKey(typeName)) { return; } compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); var moduleHandle = compiler.CreateModule(code); var loadedHandle = _engine.LoadModuleImage(moduleHandle); _loadedModules.Add(typeName, loadedHandle.Module); using(var md5Hash = MD5.Create()) { var hash = GetMd5Hash(md5Hash, code.Code); _fileHashes.Add(typeName, hash); } TypeManager.RegisterType(typeName, type); }
private IRuntimeContextInstance LoadAndCreate(CompilerService compiler, Environment.ICodeSource code) { compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); var moduleHandle = compiler.CreateModule(code); var loadedHandle = _engine.LoadModuleImage(moduleHandle); return _engine.NewObject(loadedHandle.Module); }
private IRuntimeContextInstance LoadAndCreate(CompilerService compiler, Environment.ICodeSource code, ExternalContextData externalContext) { compiler.DefineVariable("ЭтотОбъект", SymbolType.ContextProperty); if(externalContext != null) { foreach (var item in externalContext) { compiler.DefineVariable(item.Key, SymbolType.ContextProperty); } } var moduleHandle = compiler.CreateModule(code); var loadedHandle = _engine.LoadModuleImage(moduleHandle); return _engine.NewObject(loadedHandle.Module, externalContext); }