module Lrama class Counterexamples @states: States @transitions: Hash[[StateItem, Grammar::Symbol], StateItem] @reverse_transitions: Hash[[StateItem, Grammar::Symbol], Set[StateItem]] @productions: Hash[StateItem, Set[States::Item]] @reverse_productions: Hash[[State, Grammar::Symbol], Set[States::Item]] attr_reader transitions: Hash[[StateItem, Grammar::Symbol], StateItem] attr_reader productions: Hash[StateItem, Set[States::Item]] def initialize: (States states) -> void def to_s: () -> "#" alias inspect to_s def compute: (State conflict_state) -> Array[Example] private def setup_transitions: () -> void def setup_productions: () -> void def shift_reduce_example: (State conflict_state, State::ShiftReduceConflict conflict) -> Example def reduce_reduce_examples: (State conflict_state, State::ReduceReduceConflict conflict) -> Example def find_shift_conflict_shortest_path: (::Array[StartPath|TransitionPath|ProductionPath]? reduce_path, State conflict_state, States::Item conflict_item) -> ::Array[StartPath|TransitionPath|ProductionPath] def find_shift_conflict_shortest_state_items: (::Array[StartPath|TransitionPath|ProductionPath]? reduce_path, State conflict_state, States::Item conflict_item) -> Array[StateItem] def build_paths_from_state_items: (Array[StateItem] state_items) -> ::Array[StartPath|TransitionPath|ProductionPath] def shortest_path: (State conflict_state, States::Item conflict_reduce_item, Grammar::Symbol conflict_term) -> ::Array[StartPath|TransitionPath|ProductionPath]? def follow_l: (States::Item item, Set[Grammar::Symbol] current_l) -> Set[Grammar::Symbol] end end