Sha256: 9eab7ffd2a1c6ed7470baa4dc8566c456ca8649af2ab1faa435dfab950ab76ca

Contents?: true

Size: 396 Bytes

Versions: 2

Compression:

Stored size: 396 Bytes

Contents

# frozen_string_literal: true

module Farseer
  class Any
    include MapFactory

    def initialize(parser)
      @parser = parser
      freeze
    end

    def parse(input)
      helper(input, '')
    end

    def helper(input, tokens)
      @parser.parse(input)
             .bind { |r| helper(r.rest, tokens + r.token) }
             .map_none { Result.new(tokens, input) }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
farseer-0.9.0 lib/farseer/any.rb
farseer-0.8.0 lib/farseer/any.rb