KOSHMARIK
А вот выход
KOSHMARIK
fgntfg
Боюсь придётся изобретать
KOSHMARIK
Т.е. нужен генератор исходников луа
KOSHMARIK
Вот возьмём редактор Старкрафт. Там есть игровые триггеры. Игрок в менюшках пишет сценарий карты. Потом редактор все это как то преобразует в скрипт
KOSHMARIK
Вот мне надо тоже самое сделать
KOSHMARIK
Только на выходе получить луа,а не камтомный язык близов
KOSHMARIK
Мой редактор экспортирует в хмл
KOSHMARIK
Как ее пробросить в луа я хз
Александр
Хорошо,абстрагируемся от впф и от того,откуда берется xml файл с данными. Допустим, у меня есть хмл файл.
Я ищу утилиту/либу/движок, которой можно скормить этот файл,и чтоб на выходе утилита сгенерировала исходник луа.
Я знаю,что можно самому сесть и написать кастомный парсер хмл ,потом окунуться с головой в синтаксические анализаторы,теорию компиляторов и потеряться там на полгода))) потому то и ищу решение из коробки,чтоб не изобретать велосипед. Привожу пример хмл файла и готового скрипта который я хочу получить на выходе. Конечно пример упрощён,по факту утилита должна уметь генерировать любые языковые конструкции луа из исходного хмл файла (таблицы, циклы, и прочее)
Зачем синтаксические анализаторы и теорию компиляторов-то? Нужно просто распарсить xml и сгенерить текст
Snusmumriken
local data = parsed_xml
for i, v in ipairs(data) do
if v.tag == "function" then
_G[v.props.name] = function()
for i, v in ipairs(v.content) do
if v.tag == "SetVariable" then
_G[v.props.var] = v.props.val
end
if v.tag == "Call" then
_G[v.props.func](v.props.arg)
end
end
end
end
end
Это для результата парсинга аналогичного моему примеру преобразований xml => lua. И оно не полное, разумеется, циклов и вычислений, например не поддерживает.
Нужен похожий на это велосипед, который делает функции, выполняющие действия по списку. Должны быть учтены все возможные команды.
Snusmumriken
Snusmumriken
Ещё можно более грубо, тупо преобразовывать теги в строчки кода, а потом loadstring'нуть. Очень дёшево и сердито, но подвержено багам и хакам.
KOSHMARIK
Короче малой кровью не обойтись
KOSHMARIK
И все таки придется брать молоток и изобретать
Snusmumriken
"Малая кровь" это примерно так.
Snusmumriken
Но во-первых, это крайне говёный подход (регулярки по XML), во-вторых будет адово глючить и регулярки нужно усложнять для худо-бедной гибкости, и это всё равно будет приводить к глюкам. По хорошему нужен парсер XML в таблички и работа с табличками.
KOSHMARIK
Luсky
Snusmumriken
Ну типа раз тут в XML сразу действия генерятся — теоретически можно и сразу в код.
Godruma-vihari Dasa
Можно посмотреть библиотеки XSLT для C, C++. Тогда можно сделать DLL или SO и подключать.
Alex
Приветствую всех, есть кто может помочь за деньги. Есть софт по windows общается с внешним миром через lua. Есть даже примеры скриптов. И инструкция производителя софта. Есть скрипт который написан но не хватает пары библиотек.
Alex
Я нифига не программист. Пытаюсь изучить, но это будет совсем не быстро. Или хотябы кто поможет разобраться, тоже не бесплатно.
Alex
Софт winols, редактор бинарных файлов
mva
Хорошо,абстрагируемся от впф и от того,откуда берется xml файл с данными. Допустим, у меня есть хмл файл.
Я ищу утилиту/либу/движок, которой можно скормить этот файл,и чтоб на выходе утилита сгенерировала исходник луа.
Я знаю,что можно самому сесть и написать кастомный парсер хмл ,потом окунуться с головой в синтаксические анализаторы,теорию компиляторов и потеряться там на полгода))) потому то и ищу решение из коробки,чтоб не изобретать велосипед. Привожу пример хмл файла и готового скрипта который я хочу получить на выходе. Конечно пример упрощён,по факту утилита должна уметь генерировать любые языковые конструкции луа из исходного хмл файла (таблицы, циклы, и прочее)
я тебе первым же предложением сказал, что XML это язык РАЗМЕТКИ ДАННЫХ
Lua - язык программирования.
НЕВОЗМОЖНО (жалко, красного цвета нет) просто взять и какой-то волшебной палочкой превращать случайно взятый XML-файл превратить в "исходник Lua".
Это сущности разного порядка.
Для начала нужно чтобы содержимое XML-файла имело чёткий формат.
Далее - чтобы данные, содержащиеся в нём, вообще, хотя бы потенциально были чем-то что вообще ПРИНЦИПИАЛЬНО возможно превратить в код.
В-третьих, должна быть спецификация какое содержимое в какой код превращается.
Тогда "волшебная палочка" будет называться "транслятор". И её будет ПРИНЦИПИАЛЬНО ВОЗМОЖНО написать.
И возрастёт шанс того что она уже существует.
mva
Как ее пробросить в луа я хз
написать транслятор.
Судя по коду на скриншотах (вообще, убивать за такое надо), это будет не сильно сложно.
KOSHMARIK
Окей. Нужен транслятор из хмл в луа. Есть такой?))
KOSHMARIK
Сегодня была беседа
KOSHMARIK
Судя по всему не
mva
mva
XML - это язык разметки
mva
ОЧЕНЬ расширяемый
mva
он сам по себе не транслируется в Lua
mva
транслироваться могут тольуо данные обёрнутые в него
mva
при наличии спецификации на эти данный
mva
транслятор будет не из xml, а вот этого конкретного формата данных УПАКОВАННОГО в XML
KOSHMARIK
Вот такой мне и нужен. Я для этого сюда и пришелн
KOSHMARIK
Найти коробочное решение
KOSHMARIK
Чтоб не изобретать велосипед
mva
его нет
mva
твоя задача сама по себе велосипед
mva
для развития требует изобретения следующего велосипеда
mva
всё в порядке
mva
коробочных решений тут быть не может
KOSHMARIK
его нет
Я об этом и написал в начале
mva
(правильным решением было бы изначально делать транслятор результата труда мартышки с мышкой не в XML, а сразу в Lua)
Aydar
Я об этом и написал в начале
Вам надо взять xml парсер готовый, распарсить xml в луевую табличку, написать код который из этой таблицы сгенерирует lua код.
KOSHMARIK
Я удивлен что так много применения луа, и нигде нет средств автоматизации для него. Чтобы блондинка с третьим размером груди, условно, могла набросать блоков с логикой, и под капотом движок бы преобразовал ее визуальные блоки в скрипты. Ну ведь так работают почти все игровые редакторы ,где игрок тычет кнопкой в необходимые команды, создавая сценарий карты, и потом данные с этих форм под капотом транслируются в скрипт,который игровой движок хавает.
mva
mva
mva
mva
в восьмой раз:
mva
грубо говоря, XML - это нотная тетратдка в которой ты записал ноты песни
KOSHMARIK
Да я знаю что такое хмл
KOSHMARIK
Вопрос был не про него жеж
mva
ты спрашиваешь "как тетрадку преобразовать в песню"
mva
без уточнения того что за тетрадка и что у неё внутри
mva
откуда бы в природе появиться коробочным трансляторам из вашего кастомного самопридуманного формата каким-то иным способом, кроме как если их напишете вы (те же люди, кто и сам формат из которого надо транслировать)?
mva
но, как бы, работает именно так и никак иначе
mva
а для облагчения работы тебе могут понадобиться парсер XML и... да, впринципе, у Lua не такой большой вокабуляр, можно и "руками" генерировать код прямо "в лоб"
mva
ну, можно ещё сериализаторы/десериализаторы посмотреть, может что вкусное найдёшь
KOSHMARIK
KOSHMARIK
И да, экспортить из wpf форм напрямую в луа , задача гораздо сложнее чем кажется на первый взгляд. Но визуальное программирование ведь как то это делают. В unreal редакторе ведь визуальные блоки (блюпринты,) как то парсят и генерят исходники на плюсах
KOSHMARIK
Я подозреваю что там тоже хмл как промежуточный формат,но утверждать не буду
Василий
/help@FailsBot
FailsBot
/help@FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.
Plugins
/battery
/cdecl
/dnsflag
/ebalo
/find_hobby
/findyourselfahobby
/getsmile
/qt_bugs
/reactos_bugs
/strelka
/strelkaraw
/suggest
/uptime - shows bot's uptime since last restart;
/waifu
/xkcd - shows random or numbered XKCD comix;
OptimusZero
KOSHMARIK
Я честно говоря так и думал
OptimusZero
для lua есть отличные генераторы кода из юлоков
OptimusZero
https://blockly-demo.appspot.com/static/demos/code/index.html?lang=uk
KOSHMARIK
После блоков
KOSHMARIK
Спасибо, покопаюсь