lib/lrama/state.rb in lrama-0.6.5 vs lib/lrama/state.rb in lrama-0.6.6

- old
+ new

@@ -68,41 +68,19 @@ end reduce.look_ahead = look_ahead end - # Returns array of [Shift, next_state] def nterm_transitions - return @nterm_transitions if @nterm_transitions - - @nterm_transitions = [] - - shifts.each do |shift| - next if shift.next_sym.term? - - @nterm_transitions << [shift, @items_to_state[shift.next_items]] - end - - @nterm_transitions + @nterm_transitions ||= transitions.select {|shift, _| shift.next_sym.nterm? } end - # Returns array of [Shift, next_state] def term_transitions - return @term_transitions if @term_transitions - - @term_transitions = [] - - shifts.each do |shift| - next if shift.next_sym.nterm? - - @term_transitions << [shift, @items_to_state[shift.next_items]] - end - - @term_transitions + @term_transitions ||= transitions.select {|shift, _| shift.next_sym.term? } end def transitions - term_transitions + nterm_transitions + @transitions ||= shifts.map {|shift| [shift, @items_to_state[shift.next_items]] } end def selected_term_transitions term_transitions.reject do |shift, next_state| shift.not_selected