Sha256: a37cd618acd674a2159fd51dd3a053a9c60182f17d8c831c5905ff261743dbb9

Contents?: true

Size: 914 Bytes

Versions: 7

Compression:

Stored size: 914 Bytes

Contents

module Treetop
  module Runtime
    class ParseResult
      attr_reader :input, :nested_failures
    
      def initialize(input, nested_results = [])
        @input = input
        @nested_failures = collect_nested_failures_at_maximum_index(nested_results)
      end
    
      def collect_nested_failures_at_maximum_index(results)
        maximum_index = 0
        nested_failures = []
    
        results.each do |result|
          next if result.nested_failures.empty?
          index_of_nested_failures = result.nested_failures.first.index
          if index_of_nested_failures > maximum_index
            maximum_index = index_of_nested_failures
            nested_failures = result.nested_failures
          elsif index_of_nested_failures == maximum_index
            nested_failures += result.nested_failures
          end
        end
      
        return nested_failures.uniq
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
treetop-1.1.0 lib/treetop/runtime/parse_result.rb
treetop-1.0.0 lib/treetop/runtime/parse_result.rb
treetop-1.0.2 lib/treetop/runtime/parse_result.rb
treetop-1.1.2 lib/treetop/runtime/parse_result.rb
treetop-1.0.1 lib/treetop/runtime/parse_result.rb
treetop-1.1.1 lib/treetop/runtime/parse_result.rb
treetop-1.1.4 lib/treetop/runtime/parse_result.rb