Esempio n. 1
0
        public BooMethodBuilder AddMethod(string name, IType returnType, TypeMemberModifiers modifiers)
        {
            BooMethodBuilder builder = new BooMethodBuilder(_codeBuilder, name, returnType, modifiers);

            _cd.Members.Add(builder.Method);
            return(builder);
        }
Esempio n. 2
0
        public ClassDefinition GetCompilerGeneratedExtensionsClass()
        {
            if (null == _compilerGeneratedExtensionsClass)
            {
                BooClassBuilder builder = CodeBuilder.CreateClass("CompilerGeneratedExtensions");
                builder.Modifiers = TypeMemberModifiers.Final | TypeMemberModifiers.Transient | TypeMemberModifiers.Public;
                builder.AddBaseType(ObjectType);

                BooMethodBuilder ctor = builder.AddConstructor();
                ctor.Modifiers = TypeMemberModifiers.Private;
                ctor.Body.Add(
                    CodeBuilder.CreateSuperConstructorInvocation(ObjectType));

                ClassDefinition cd     = builder.ClassDefinition;
                Module          module = GetCompilerGeneratedExtensionsModule();
                module.Members.Add(cd);
                ((ModuleEntity)module.Entity).InitializeModuleClass(cd);

                _compilerGeneratedExtensionsClass = cd;
            }
            return(_compilerGeneratedExtensionsClass);
        }