Method: FuPeg::Parser#backtrack

Defined in:
lib/fupeg/parser.rb

#backtrackObject



204
205
206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/fupeg/parser.rb', line 204

def backtrack
  pos = @scan.pos
  res = yield
  if res
    @failed = nil if @failed && @failed.bytepos <= @scan.pos
    res
  else
    @scan.pos = pos
    nil
  end
rescue
  @scan.pos = pos
  raise
end