private TypeGen GenerateModuleGlobalsType(AssemblyGen ag) { TypeGen tg = ag.DefinePublicType(ModuleName == "ironscheme.boot.new" ? "#" : ModuleName, typeof(CustomSymbolDictionary)); tg.AddCodeContextField(); tg.DefaultConstructor = tg.TypeBuilder.DefineDefaultConstructor(MethodAttributes.Public); return(tg); }
internal static CodeGen CreateDebuggableDynamicCodeGenerator(CompilerContext context, string name, Type retType, IList <Type> paramTypes, IList <string> paramNames, ConstantPool constantPool) { TypeGen tg = ScriptDomainManager.CurrentManager.Snippets.DefineDebuggableType(name, context.SourceUnit); CodeGen cg = tg.DefineMethod("Initialize", retType, paramTypes, paramNames, constantPool); tg.AddCodeContextField(); cg.DynamicMethod = true; return(cg); }
public TypeGen DefineNestedType(string name, Type parent) { TypeBuilder tb = _myType.DefineNestedType(name, TypeAttributes.NestedPublic); tb.SetParent(parent); TypeGen ret = new TypeGen(_myAssembly, tb); _nestedTypeGens.Add(ret); ret.AddCodeContextField(); return(ret); }
private TypeGen GenerateModuleGlobalsType(AssemblyGen ag, ScriptCode sc) { var n = sc.CodeBlock.Name; switch (n) { case "visit-code": case "invoke-code": case "guard-code": TypeGen tg = ag.DefinePublicType("syntax-" + sc.CodeBlock.Name, typeof(CustomSymbolDictionary)); tg.AddCodeContextField(); tg.DefaultConstructor = tg.TypeBuilder.DefineDefaultConstructor(MethodAttributes.Public); return(tg); default: return(GenerateModuleGlobalsType(ag)); } }
public TypeGen DefineNestedType(string name, Type parent) { TypeBuilder tb = _myType.DefineNestedType(name, TypeAttributes.NestedPublic); tb.SetParent(parent); TypeGen ret = new TypeGen(_myAssembly, tb); _nestedTypeGens.Add(ret); ret.AddCodeContextField(); return ret; }