Object
A table of LALR states.
# File racc/state.rb, line 25 def initialize(grammar, debug_flags = DebugFlags.new) @grammar = grammar @symboltable = grammar.symboltable @d_state = debug_flags.state @d_la = debug_flags.la @d_prec = debug_flags.prec @states = [] @statecache = {} @actions = ActionTable.new(@grammar, self) @nfa_computed = false @dfa_computed = false end
DFA (Deterministic Finite Automaton) Generation
# File racc/state.rb, line 196 def dfa return self if @dfa_computed nfa compute_dfa @dfa_computed = true self end
# File racc/state.rb, line 61 def each_index(&block) @states.each_index(&block) end
# File racc/state.rb, line 55 def each_state(&block) @states.each(&block) end
# File racc/state.rb, line 45 def inspect '#<state table>' end
# File racc/state.rb, line 88 def n_rrconflicts @n_rrconflicts ||= inject(0) {|sum, st| sum + st.n_rrconflicts } end
# File racc/state.rb, line 80 def n_srconflicts @n_srconflicts ||= inject(0) {|sum, st| sum + st.n_srconflicts } end
NFA (Non-deterministic Finite Automaton) Computation
# File racc/state.rb, line 102 def nfa return self if @nfa_computed compute_nfa @nfa_computed = true self end
# File racc/state.rb, line 84 def rrconflict_exist? n_rrconflicts() != 0 end
# File racc/state.rb, line 71 def should_report_srconflict? srconflict_exist? and (n_srconflicts() != @grammar.n_expected_srconflicts) end
# File racc/state.rb, line 76 def srconflict_exist? n_srconflicts() != 0 end