Haskell: преобразование таблицы .lua в работающие типы Haskell - PullRequest
0 голосов
/ 24 ноября 2018

Я новичок, пытающийся попрактиковаться в кодировании haskell, переводя несколько простых репозиториев с разных языков на Haskell.

Многие простые игры используют .lua для хранения данных о персонажах / способностях.

Мне нужно взять эту таблицу .lua и преобразовать ее в работоспособные типы haskell.

Вот как выглядит файл .lua

local Data =
{
["Weapons"] = {
    ["AB"] = {
        Name = "AB",
        Cost = {
            Spells = 65000,
            BCost = 15000,
            MCost = 150,
            sh = 35,
            Time = 24,
            Parts = {
                { Name = "Top",Type = "Item",Count = 1,},},
        },
        Resist = 0.85,
        Class = "Shield",
        Attack = {
            Damage = {
                ["First"] = 5,
                ["Second"] = 5,
                ["Third"] = 40,},
            Chance = 0.2,
            X = 2,
        },
    },
    ["PG"] = {
    ...
    ...
    ...
}

return Data

При пробуждениив Aeson есть эта простая функция decode, которую вы можете использовать как decode someJSON :: Maybe Object и получить все содержимое файла JSON, помещенное в типы данных Aeson по умолчанию, с которыми вы можете работать с библиотечными функциями.Мне не удалось найти что-то подобное для .lua.

...