Example #1
0
 public void Visit <T>(T entry) where T : StackEntry
 {
     // Contained nodes are part of their parents from a code generation perspective
     if (!entry.Contained)
     {
         _codeGeneratorFactory.GetCodeGenerator <T>().GenerateCode(entry, _context);
     }
 }
        public void GenerateCode(CodeObject codeObject, ICodeGeneratorFactory factory)
        {
            var ns     = (NamespaceDeclaration)codeObject;
            var writer = factory.Writer;

            writer.Indention().Write(CSharpKeyword.Namespace).Space().Write(ns.Name)
            .BlockStart().IncreaseIndention();

            ns.Types.ForEach(t => factory.GetCodeGenerator(t).GenerateCode(t, factory));

            writer.DecreaseIndention().BlockEnd();
        }
        public void GenerateCode(CodeObject codeObject, ICodeGeneratorFactory factory)
        {
            var compileUnit = (CompileUnit)codeObject;

            compileUnit.Namespaces?.ForEach(ns => factory.GetCodeGenerator(ns).GenerateCode(ns, factory));
        }