public BooMethodBuilder AddMethod(string name, IType returnType, TypeMemberModifiers modifiers) { BooMethodBuilder builder = new BooMethodBuilder(_codeBuilder, name, returnType, modifiers); _cd.Members.Add(builder.Method); return(builder); }
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); }