public override Parser <TInput> VisitProduce <TOutput>(ProduceParser <TInput, TOutput> parser) { if (state.State == 0) { state.State = 1; state.NextOutputStart = state.OutputStart; return(parser.Parser); } else { if (state.LastResult >= 0) { var value = parser.Producer(output, state.OutputStart); output.SetCount(state.OutputStart); output.Add(value); } else { output.SetCount(state.OriginalOutputCount); } state.InputLength = state.LastResult; return(null); } }
public override Parser <TInput> VisitProduce <TOutput>(ProduceParser <TInput, TOutput> parser) { if (state.State == 0) { state.State = 1; return(parser.Parser); } else { state.InputLength = state.LastResult; return(null); } }
public override void VisitProduce <TOutput>(ProduceParser <TInput, TOutput> parser) { this.Visit(parser.Parser); }
public override int VisitProduce <TOutput>(ProduceParser <TInput, TOutput> parser, int start) { return(Search(parser.Parser, start)); }