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;
    }
Exemple #2
0
 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;
 }