Object
A table of LALR states.
 
               # File racc/state.rb, line 22
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 193
def dfa
  return self if @dfa_computed
  nfa
  compute_dfa
  @dfa_computed = true
  self
end
             
             
               # File racc/state.rb, line 58
def each_index(&block)
  @states.each_index(&block)
end
             
             
               # File racc/state.rb, line 52
def each_state(&block)
  @states.each(&block)
end
             
             
               # File racc/state.rb, line 42
def inspect
  '#<state table>'
end
             
             
               # File racc/state.rb, line 85
def n_rrconflicts
  @n_rrconflicts ||= inject(0) {|sum, st| sum + st.n_rrconflicts }
end
             
             
               # File racc/state.rb, line 77
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 99
def nfa
  return self if @nfa_computed
  compute_nfa
  @nfa_computed = true
  self
end
             
             
               # File racc/state.rb, line 81
def rrconflict_exist?
  n_rrconflicts() != 0
end
             
             
               # File racc/state.rb, line 68
def should_report_srconflict?
  srconflict_exist? and
      (n_srconflicts() != @grammar.n_expected_srconflicts)
end
             
             
               # File racc/state.rb, line 73
def srconflict_exist?
  n_srconflicts() != 0
end