public override void EmitConsumeValue(IParserILBuilder builder, ILBuilderContext ilBuilderContext)
                {
                    _parserBuilder.Enter(builder, ilBuilderContext);

                    base.EmitConsumeValue(_parserBuilder, ilBuilderContext);

                    _parserBuilder.Leave();
                }
                    public void Enter(IParserILBuilder builder, ILBuilderContext ilBuilderContext)
                    {
                        _lexemeLocal   = ilBuilderContext.IL.DeclareLocal(typeof(Lexeme <TExternalToken>));
                        _actualBuilder = builder;

                        ilBuilderContext.IL.Emit(OpCodes.Stloc, _lexemeLocal);

                        //ilBuilderContext.IL.Emit(OpCodes.Ldloc, _lexemeLocal);
                        //ilBuilderContext.IL.Emit(OpCodes.Call, DebugMethodInfo);
                    }
 public override void EmitConsumeValue(IParserILBuilder builder, ILBuilderContext ilBuilderContext)
 {
     if (ArgumentBuilder.StaticLexemeText != null)
     {
         ilBuilderContext.IL.Emit(OpCodes.Pop);
     }
     else
     {
         builder.EmitGetInstructionText(ilBuilderContext);
         ilBuilderContext.IL.Emit(OpCodes.Stfld, LexemeTextArgumentTextFieldInfo);
     }
 }
 public void Leave()
 {
     _lexemeLocal   = null;
     _actualBuilder = null;
 }
 public abstract void EmitConsumeValue(IParserILBuilder builder, ILBuilderContext ilBuilderContext);
 public override void EmitConsumeValue(IParserILBuilder builder, ILBuilderContext ilBuilderContext)
 {
     builder.EmitGetInstructionToken(ilBuilderContext);
     ilBuilderContext.IL.Emit(OpCodes.Stfld, LexemeTokenArgumentTokenFieldInfo);
 }
 public override void EmitConsumeValue(IParserILBuilder builder, ILBuilderContext ilBuilderContext)
 {
     builder.EmitGetInstruction(ilBuilderContext);
     ilBuilderContext.IL.Emit(OpCodes.Call, ListTResultAddMethodInfo);
 }