Class: Musa::GenerativeGrammar::Implementation::RepeatNode Private
- Defined in:
- lib/musa-dsl/generative/generative-grammar.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Node representing repetition of a node.
Generates options with different repetition counts. Created by Node#repeat.
Instance Method Summary collapse
- #_options(parent: nil, depth: nil, &condition) ⇒ Object private
- #initialize(node, max = nil) ⇒ void constructor private
Constructor Details
#initialize(node, max = nil) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
668 669 670 671 672 673 |
# File 'lib/musa-dsl/generative/generative-grammar.rb', line 668 def initialize(node, max = nil) @node = node @max = max super() end |
Instance Method Details
#_options(parent: nil, depth: nil, &condition) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 |
# File 'lib/musa-dsl/generative/generative-grammar.rb', line 676 def (parent: nil, depth: nil, &condition) parent ||= [] depth ||= 0 r = [] if @max.nil? || depth < @max = @node.(parent: parent, &condition) .each do |node_option| r << node_option = (parent: parent + node_option, depth: depth + 1, &condition) .each do |node_suboption| r << node_option + node_suboption end end end r end |