class Racc::Grammar

def compute_useless

FIXME: what means "useless"?
Sym#useless?, Rule#useless?
def compute_useless
  @symboltable.each_terminal {|sym| sym.useless = false }
  @symboltable.each_nonterminal {|sym| sym.useless = true }
  @rules.each {|rule| rule.useless = true }
  r = @rules.dup
  s = @symboltable.nonterminals
  begin
    rs = r.size
    ss = s.size
    check_rules_useless r
    check_symbols_useless s
  end until r.size == rs and s.size == ss
end