class Racc::SymbolTable

def check_terminals

def check_terminals
  return unless @symbols.any? {|s| s.should_terminal? }
  @anchor.should_terminal
  @error.should_terminal
  each_terminal do |t|
    t.should_terminal if t.string_symbol?
  end
  each do |s|
    s.should_terminal if s.assoc
  end
  terminals().reject {|t| t.should_terminal? }.each do |t|
    raise CompileError, "terminal #{t} not declared as terminal"
  end
  nonterminals().select {|n| n.should_terminal? }.each do |n|
    raise CompileError, "symbol #{n} declared as terminal but is not terminal"
  end
end