Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <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);
            }
        }