public static Assembly assembly(this CSharp_FastCompiler csharpCompiler) { if (csharpCompiler != null) { if (csharpCompiler.compiledAssembly().notNull()) { return(csharpCompiler.compiledAssembly()); } if (csharpCompiler.compilerResults() != null) { if (csharpCompiler.compilerResults().Errors.HasErrors == false) { if (csharpCompiler.compilerResults().CompiledAssembly != null) { return(csharpCompiler.compilerResults().CompiledAssembly); } } else { "CompilationErrors:".line().add(csharpCompiler.compilationErrors()).error(); } } } return(null); }
public void loadH2Script(string scriptToLoad) { O2Thread.mtaThread(() => { if (scriptToLoad.fileName().starts(this.typeName())) { PublicDI.log.error("We can execute the current type of we will get a recursive load :)"); return; } currentScript = scriptToLoad; statusLabel.set_Text("loading script: {0}".format(scriptToLoad.fileName())); csharpCompiler = new CSharp_FastCompiler(); csharpCompiler.set_OnAstFail(() => { showError("Ast creation failed", csharpCompiler.astErrors()); csharpCompiler_OnAstFail.invoke(); }); csharpCompiler.set_OnAstOK(() => { showInfo("Ast creation Ok"); csharpCompiler_OnAstOk.invoke(); }); csharpCompiler.set_OnCompileFail(() => { showError("Compilation failed", csharpCompiler.compilationErrors()); csharpCompiler_OnCompileFail.invoke(); }); csharpCompiler.set_OnCompileOK(() => { showInfo("Compilation Ok: Executing 1st method"); csharpCompiler_OnCompileOk.invoke(); executeCompiledCode(); }); var sourceCode = ""; PublicDI.CurrentScript = scriptToLoad; csharpCompiler.CompilerOptions.SourceCodeFile = scriptToLoad; if (scriptToLoad.extension(".h2")) { sourceCode = H2.load(scriptToLoad).SourceCode; } if (scriptToLoad.extension(".o2") || scriptToLoad.extension(".cs")) { sourceCode = scriptToLoad.contents(); } if (sourceCode.valid()) { csharpCompiler.compileSnippet(sourceCode); } else { statusLabel.set_Text("Non supported file").textColor(this, Color.Red); } }); }