コード例 #1
0
        public IMethodCompilerContext Compile(IMethodCompilerContext context)
        {
            OnBeforeCompile(context);
            context = this.Stages.Aggregate(context, (current, stage) => stage.Run(current));
            OnAfterCompile(context);

            return(context);
        }
コード例 #2
0
        public IMethodCompilerContext Compile(IMethodCompilerContext context)
        {
            OnBeforeCompile(context);
            context = this.Stages.Aggregate(context, (current, stage) => stage.Run(current));
            OnAfterCompile(context);

            return context;
        }
コード例 #3
0
        public override IMethodCompilerContext Run(IMethodCompilerContext context)
        {
            context = base.Run(context);
            var acc = context.AssemblyCompilerContext as AssemblyCompilerContext;
            if (acc == null)
                return context;

            using (var writer = acc.GetOutputFileWriter(GetFilename(context)))
            {
                new Emitter(writer).VisitMethodDefinition(context.Method);
            }

            return context;
        }
コード例 #4
0
        public override IMethodCompilerContext Run(IMethodCompilerContext context)
        {
            context = base.Run(context);
            var acc = context.AssemblyCompilerContext as AssemblyCompilerContext;

            if (acc == null)
            {
                return(context);
            }

            using (var writer = acc.GetOutputFileWriter(GetFilename(context)))
            {
                new Emitter(writer).VisitMethodDefinition(context.Method);
            }

            return(context);
        }
コード例 #5
0
 protected virtual void OnAfterCompile(IMethodCompilerContext context)
 {
 }
コード例 #6
0
 protected virtual void OnBeforeCompile(IMethodCompilerContext context)
 {
 }
コード例 #7
0
 private static string GetFilename(IMethodCompilerContext context)
 {
     return Helper.GetRandomString(context.Method.Name + "-", 40, ".s");
 }
コード例 #8
0
 public virtual IMethodCompilerContext Run(IMethodCompilerContext context)
 {
     return context;
 }
コード例 #9
0
 public virtual IMethodCompilerContext Run(IMethodCompilerContext context)
 {
     return(context);
 }
コード例 #10
0
 private static string GetFilename(IMethodCompilerContext context)
 {
     return(Helper.GetRandomString(context.Method.Name + "-", 40, ".s"));
 }
コード例 #11
0
 protected virtual void OnBeforeCompile(IMethodCompilerContext context)
 {
 }
コード例 #12
0
 protected virtual void OnAfterCompile(IMethodCompilerContext context)
 {
 }