class TOML::Keyvalue

def accept_visitor(parser)

def accept_visitor(parser)
  parser.visit_keyvalue self
end

def assign(hash, symbolize_keys = false)

def assign(hash, symbolize_keys = false)
  @symbolize_keys = symbolize_keys
  fail ValueOverwriteError.new(key) if hash.key?(key)
  hash[key] = visit_value @value
end

def initialize(key, value)

def initialize(key, value)
  @key = key
  @value = value
  @symbolize_keys = false
end

def key(a_key = @key)

def key(a_key = @key)
  symbolize_keys ? a_key.to_sym : a_key
end

def visit_inline_table(inline_table)

def visit_inline_table(inline_table)
  result = {}
  inline_table.value(@symbolize_keys).each do |k, v|
    result[key k] = visit_value v
  end
  result
end

def visit_value(a_value)

def visit_value(a_value)
  return a_value unless a_value.respond_to? :accept_visitor
  a_value.accept_visitor self
end