/// <summary> /// Generate templates for output /// </summary> private void GenerateTemplates(List <GeneratorOutput> outputs, IEnumerable <TranslationUnit> units) { foreach (TranslationUnit unit in units) { List <CodeGenerator> templates = GenerateCode(new[] { unit }); if (templates.Count == 0) { return; } foreach (CodeGenerator template in templates) { template.Process(); } GeneratorOutput output = new GeneratorOutput { TranslationUnit = unit, Outputs = templates }; outputs.Add(output); OnUnitGenerated(output); } }
/// <summary> /// Generate single template for output /// </summary> private void GenerateSingleTemplate(List <GeneratorOutput> outputs, IEnumerable <TranslationUnit> units) { foreach (TranslationUnit unit in units) { GeneratorOutput output = new GeneratorOutput { TranslationUnit = unit, Outputs = GenerateCode(new[] { unit }) }; output.Outputs.FirstOrDefault().Process(); outputs.Add(output); OnUnitGenerated(output); } }