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); }