public ParseDelegate CompileImplementation(Runtime runtime, StateForCompiler state) { ParserBlock block = new ParserBlock(); block.Emit(CompileNew(runtime, state)); block.Return(); DynamicMethod implementation = new DynamicMethod( "parse" + type.Name, typeof(ParseTree), new Type[] { typeof(Lexer), typeof(ParserState) }, runtime.CompilerModule.ModuleBuilder); block.Build(new DynamicMethodProxy(implementation)); return((ParseDelegate)implementation.CreateDelegate(typeof(ParseDelegate))); }