public Assembly BatchCompilation(string outputAssembly, IList <SparkViewDescriptor> descriptors) { List <CompiledViewEntry> list = new List <CompiledViewEntry>(); List <string> list2 = new List <string>(); foreach (SparkViewDescriptor descriptor in descriptors) { CompiledViewEntry item = new CompiledViewEntry { Descriptor = descriptor, Loader = this.CreateViewLoader(), Compiler = this.LanguageFactory.CreateViewCompiler(this, descriptor) }; List <IList <Chunk> > chunksLoaded = new List <IList <Chunk> >(); List <string> templatesLoaded = new List <string>(); this.LoadTemplates(item.Loader, descriptor.Templates, chunksLoaded, templatesLoaded); item.Compiler.GenerateSourceCode(chunksLoaded, item.Loader.GetEverythingLoaded()); list2.Add(item.Compiler.SourceCode); list.Add(item); } BatchCompiler compiler2 = new BatchCompiler { OutputAssembly = outputAssembly }; Assembly assembly = compiler2.Compile(this.Settings.Debug, "csharp", list2.ToArray()); foreach (CompiledViewEntry entry3 in list) { entry3.Compiler.CompiledType = assembly.GetType(entry3.Compiler.ViewClassFullName); entry3.Activator = this.ViewActivatorFactory.Register(entry3.Compiler.CompiledType); this.CompiledViewHolder.Store(entry3); } return(assembly); }
public override void CompileView(IEnumerable<IList<Chunk>> viewTemplates, IEnumerable<IList<Chunk>> allResources) { GenerateSourceCode(viewTemplates, allResources); var batchCompiler = new BatchCompiler(); var assembly = batchCompiler.Compile(Debug, "csharp", SourceCode); CompiledType = assembly.GetType(ViewClassFullName); }
public override void CompileView(IEnumerable <IList <Chunk> > viewTemplates, IEnumerable <IList <Chunk> > allResources) { GenerateSourceCode(viewTemplates, allResources); var batchCompiler = new BatchCompiler(); var assembly = batchCompiler.Compile(Debug, "visualbasic", SourceCode); CompiledType = assembly.GetType(ViewClassFullName); }
public void ScriptExamples_BatchCompileFields_GeneratesBatchOutput() { IBatchCompiler batchCompiler = new BatchCompiler(); batchCompiler.Compile(TxtFile.ReadText("Batch.tpl")); // this must take place afterwards, otherwise it will be cleared by the compile. batchCompiler.CreateFieldInput("@Column1", "Title", "Description"); batchCompiler.CreateFieldInput("@Column2", "Title", "Description"); batchCompiler.Input("@Column1", "COL 1"); batchCompiler.Input("@Column2", "COL 2"); ISymbolInfo[] symbolInfo = batchCompiler.GetSymbolInfoSet(new string[] { "@Column1", "@Column2" }); Generator generator = new Generator(); string output = generator.Generate(batchCompiler, "@{combination}"); Assert.AreEqual("COL 1 - COL 2", output); Assert.AreEqual(2, symbolInfo.Length); }
public Assembly BatchCompilation(string outputAssembly, IList <SparkViewDescriptor> descriptors) { var batch = new List <CompiledViewEntry>(); var sourceCode = new List <string>(); foreach (var descriptor in descriptors) { var entry = new CompiledViewEntry { Descriptor = descriptor, Loader = CreateViewLoader(), Compiler = LanguageFactory.CreateViewCompiler(this, descriptor) }; var chunksLoaded = new List <IList <Chunk> >(); var templatesLoaded = new List <string>(); LoadTemplates(entry.Loader, descriptor.Templates, chunksLoaded, templatesLoaded); entry.Compiler.GenerateSourceCode(chunksLoaded, entry.Loader.GetEverythingLoaded()); sourceCode.Add(entry.Compiler.SourceCode); batch.Add(entry); } var batchCompiler = new BatchCompiler { OutputAssembly = outputAssembly }; var assembly = batchCompiler.Compile(Settings.Debug, "csharp", sourceCode.ToArray()); foreach (var entry in batch) { entry.Compiler.CompiledType = assembly.GetType(entry.Compiler.ViewClassFullName); entry.Activator = ViewActivatorFactory.Register(entry.Compiler.CompiledType); CompiledViewHolder.Store(entry); } return(assembly); }