Esempio n. 1
0
            public Expr(ICFMangleContext ctx)
                : base(ctx)
            {
                _invCompiled = new CilFragment();
                _stateVar    = new Local(ctx.Method.Module.CorLibTypes.Int32);
                var body = ctx.Method.Body;

                body.Variables.Add(_stateVar);
                body.InitLocals = true;
                var nm    = new IntGenerator(ctx.Mangler.Rng, ctx.Mangler.Options.MaxMangleIterations);
                var codec = nm.Generate();

                codec.ParameterResolver = p => p == nm.Argument ? _stateVar : null;
                _codec = codec;
                var emitter = DnextFactory.NewILEmitter(ctx.Method.Module, ctx.Importer, _invCompiled);

                codec.EmitDemangler(emitter);
            }