public StmtNodeVisitor_CodeEmitor(CodeEmitor emitor, FuncMeta meta) { Emitor = emitor; FuncMeta = meta; var methodBuilder = emitor.TypeBuilder.DefineMethod(meta.Name, MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, meta.Name == "Main" ? typeof(int) : typeof(object), Enumerable.Repeat(typeof(object), meta.ArgCount).ToArray()); ILGenerator = methodBuilder.GetILGenerator(); emitor.FuncName2MethodInfo[meta.Name] = methodBuilder; }
public StmtNodeVisitor_CodeEmitor(CodeEmitor emitor, FuncMeta meta) { Emitor = emitor; FuncMeta = meta; var methodBuilder = emitor.TypeBuilder.DefineMethod(meta.Name, MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, meta.Name == "Main" ? typeof(int) : typeof(object), Enumerable.Repeat(typeof(object), meta.ArgCount).ToArray()); ILGenerator = methodBuilder.GetILGenerator(); emitor.FuncName2MethodInfo[meta.Name] = methodBuilder; }