Lua:
Trabalhando com YAML

Como fazer:

Lua não possui suporte embutido para YAML, mas você pode trabalhar com arquivos YAML usando bibliotecas de terceiros, como lyaml. Esta biblioteca permite a codificação e decodificação de dados YAML com Lua. Primeiro, você precisará instalar o lyaml via LuaRocks, o gerenciador de pacotes do Lua:

luarocks install lyaml

Decodificando YAML:

Suponha que você tenha o seguinte conteúdo YAML em um arquivo chamado config.yaml:

database:
  host: localhost
  port: 3306
  username: usuário
  password: senha

Você pode decodificar este arquivo YAML em uma tabela Lua com o seguinte código:

local yaml = require('lyaml')
local file = io.open("config.yaml", "r")
local content = file:read("*all")
file:close()

local data = yaml.load(content)
for k,v in pairs(data.database) do
  print(k .. ": " .. v)
end

Quando você executar este script, ele deverá produzir a saída:

host: localhost
port: 3306
username: usuário
password: senha

Codificando YAML:

Para codificar tabelas Lua no formato YAML, você utiliza a função dump fornecida pela lyaml. Considerando que você queira criar uma representação YAML da seguinte tabela Lua:

local data = {
  website = {
    name = "Exemplo",
    owner = "Jane Doe",
    metadata = {
      creation_date = "2023-01-01",
      tags = {"blog", "pessoal", "lua"}
    }
  }
}

local yaml = require('lyaml')
local yaml_data = yaml.dump({data})
print(yaml_data)

O YAML resultante será:

- website:
    metadata:
      creation_date: '2023-01-01'
      tags: [blog, pessoal, lua]
    name: Exemplo
    owner: Jane Doe

Seguindo esses padrões, programadores Lua podem gerenciar efetivamente dados YAML para uma variedade de aplicações. Essas operações com YAML são cruciais para o desenvolvimento de aplicações Lua versáteis que interagem suavemente com outras partes de um sistema ou diretamente com outros sistemas.