예제 #1
0
 public AbstractClass(AbstractNamespace ns, T root, AbstractCompiler compiler)
     : this()
 {
     RootNode  = root;
     Name      = root.Name;
     Namespace = ns;
     Compiler  = compiler;
 }
예제 #2
0
 protected List <C> GetClassesByType <N, C>(AbstractNamespace ns, AbstractCompiler compiler)
     where N : MainObjectNode
     where C : AbstractClass <N>, new()
 {
     return(ProjectNode
            .SearchByType <N>()
            .Select(n => new C().Build <C>(ns, n, compiler)).ToList());
 }
예제 #3
0
        public U Build <U>(AbstractNamespace ns, T root, AbstractCompiler compiler)
            where U : AbstractClass <T>, new()
        {
            var cls = new U()
            {
                RootNode  = root,
                Name      = root.Name,
                Namespace = ns,
                Compiler  = compiler
            };

            cls.Init();
            return(cls);
        }