class Racc::ParserFileGenerator

def state_transition_table

def state_transition_table
  table = @states.state_transition_table
  table.use_result_var = @params.result_var?
  table.debug_parser = @params.debug_parser?
  line "##### State transition tables begin ###"
  line
  integer_list 'racc_action_table', table.action_table
  line
  integer_list 'racc_action_check', table.action_check
  line
  integer_list 'racc_action_pointer', table.action_pointer
  line
  integer_list 'racc_action_default', table.action_default
  line
  integer_list 'racc_goto_table', table.goto_table
  line
  integer_list 'racc_goto_check', table.goto_check
  line
  integer_list 'racc_goto_pointer', table.goto_pointer
  line
  integer_list 'racc_goto_default', table.goto_default
  line
  i_i_sym_list 'racc_reduce_table', table.reduce_table
  line
  line "racc_reduce_n = #{table.reduce_n}"
  line
  line "racc_shift_n = #{table.shift_n}"
  line
  sym_int_hash 'racc_token_table', table.token_table
  line
  line "racc_nt_base = #{table.nt_base}"
  line
  line "racc_use_result_var = #{table.use_result_var}"
  line
  @f.print(unindent_auto(<<-End))
    Racc_arg = [
      racc_action_table,
      racc_action_check,
      racc_action_default,
      racc_action_pointer,
      racc_goto_table,
      racc_goto_check,
      racc_goto_default,
      racc_goto_pointer,
      racc_nt_base,
      racc_reduce_table,
      racc_token_table,
      racc_shift_n,
      racc_reduce_n,
      racc_use_result_var ]
  End
  line "Ractor.make_shareable(Racc_arg) if defined?(Ractor)"
  line
  string_list 'Racc_token_to_s_table', table.token_to_s_table
  line "Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)"
  line
  line "Racc_debug_parser = #{table.debug_parser}"
  line
  line '##### State transition tables end #####'
  actions
end