Sha256: e70e4e12f28956cdab794d3125a3e5c558168ac19361d08927e9356ee667d489

Contents?: true

Size: 712 Bytes

Versions: 23

Compression:

Stored size: 712 Bytes

Contents

require_relative 'dotted_item'

module Rley # This module is used as a namespace
  module Parser # This module is used as a namespace
    # Mix-in module. Builds the dotted items for a given grammar
    module GrmItemsBuilder
      # Build an array of dotted items from the productions in passed grammar.
      def build_dotted_items(aGrammar)
        items = []
        aGrammar.rules.each do |prod|
          rhs_size = prod.rhs.size
          if rhs_size.zero?
            items << DottedItem.new(prod, 0)
          else
            items += (0..rhs_size).map { |i| DottedItem.new(prod, i) }
          end
        end

        return items
      end
    end # module
  end # module
end # module
# End of file

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
rley-0.5.05 lib/rley/parser/grm_items_builder.rb
rley-0.5.04 lib/rley/parser/grm_items_builder.rb
rley-0.5.03 lib/rley/parser/grm_items_builder.rb
rley-0.5.02 lib/rley/parser/grm_items_builder.rb
rley-0.5.01 lib/rley/parser/grm_items_builder.rb
rley-0.5.00 lib/rley/parser/grm_items_builder.rb
rley-0.4.08 lib/rley/parser/grm_items_builder.rb
rley-0.4.07 lib/rley/parser/grm_items_builder.rb
rley-0.4.06 lib/rley/parser/grm_items_builder.rb
rley-0.4.05 lib/rley/parser/grm_items_builder.rb
rley-0.4.04 lib/rley/parser/grm_items_builder.rb
rley-0.4.03 lib/rley/parser/grm_items_builder.rb
rley-0.4.02 lib/rley/parser/grm_items_builder.rb
rley-0.4.01 lib/rley/parser/grm_items_builder.rb
rley-0.4.00 lib/rley/parser/grm_items_builder.rb
rley-0.3.12 lib/rley/parser/grm_items_builder.rb
rley-0.3.11 lib/rley/parser/grm_items_builder.rb
rley-0.3.10 lib/rley/parser/grm_items_builder.rb
rley-0.3.09 lib/rley/parser/grm_items_builder.rb
rley-0.3.08 lib/rley/parser/grm_items_builder.rb