public static void CreateAssembly(this ICompilationResult result) { if (result.Success) { TheGeneratedAssembly = Assembly.Load(result.TheResult); } }
public static void AddModuleCompilation(this ICompilationResult moduleResult) { if (!moduleResult.Success) { return; } TheGeneratedAssembly.LoadModule ( moduleResult.TheOutputName, moduleResult.TheResult ); }
public void ProcessAfterInterior(ITreeNode element) { ICompilationResult result = null; try { if (myCurrentNodeCompiler == null) { return; } result = myCurrentNodeCompiler.GetResult(); if (result is ClassFieldCompilationResult compiledClassField) { @params.CheckAndAddIfTainted(compiledClassField); } } catch (Exception e) { //throw; System.IO.File.AppendAllText("C:\\work\\exceptions.txt", $"\n\n{e}\n\n"); } finally { myCurrentNodeCompiler = myCurrentNodeCompiler.Parent; var res = result ?? new ExpressionCompilationResult(); myCurrentNodeCompiler?.AddChildResult(element, res); // //todo:rework // if (element.Parent is IClassDeclaration classDeclaration && // classDeclaration.ExtendsList != null && // classDeclaration.ExtendsList == element && // res is ExpressionCompilationResult parent) // { // var parentReference = parent.GetReference(); // if (parentReference is ClassReference classReference) // { // @params.GetCurrentClass().BaseClass = classReference.ClassId; // } // // } } }
public virtual void AddChildResult(ITreeNode element, ICompilationResult result) { MyChildToResult.Add(element, result); MyResults.Add(result); }