/// <summary> /// This class automatically creates a dsl code file on disk, adds it to a project file, /// and compiles the project returning a GMacProjectCompiler object holding all this information. /// </summary> /// <param name="dslCode"></param> /// <param name="mainFolder"></param> /// <param name="baseFileName"></param> /// <returns></returns> public static GMacProjectCompiler CompileDslCode(string dslCode, string mainFolder, string baseFileName) { var compiler = new GMacProjectCompiler(); if (compiler.SetProgressRunning() == false) { return(compiler); } try { var projectFilePath = Path.Combine(mainFolder, baseFileName + ".gmacproj"); var codeFilePath = Path.Combine(mainFolder, baseFileName + ".gmac"); File.WriteAllText(codeFilePath, dslCode, Encoding.Unicode); var project = GMacProject.CreateNew(projectFilePath); project.AddSourceFile(codeFilePath, Encoding.Unicode); project.SaveProjectToXmlFile(); compiler.Compile(project); } catch (Exception e) { compiler.ReportError(e); } finally { compiler.SetProgressNotRunning(); } return(compiler); }
internal GMacProjectCodeUnitCompiler(GMacProjectCompiler parentCompiler, ISourceCodeUnit codeUnit, ParseTreeNode rootParseNode) : base(parentCompiler, codeUnit, rootParseNode) { }