Я работаю над созданием своего собственного "языка / шаблона", который "компилируется" в другой "язык", называемый mcfunction. Основная причина этого в том, что mcfunction не содержит циклов или лямбд, поэтому я просто хочу добавить к ним эти две функции. Я делаю это, создавая свое собственное расширение файла и имея программу, которую я запускаю, преобразую свой собственный синтаксис в синтаксис, который имеет смысл для "языка" mcfunction.
В основном я добился успеха, но добавляю систему цикловЯ хочу, чтобы это было сложно, и я хотел знать, есть ли лучший способ сделать это, чем я в настоящее время. Мой папа предложил мне использовать шаблон, но я понятия не имею, как это работает, и, глядя на то, как это сделать, я не смог найти ничего, что могло бы помочь.
По сути, синтаксис, который я хочу реализовать, похож на
[('foo','bar'),('baz','qux'),('quux','quz')](
say {1}
tellraw @a "{2}, {1}"
)
в
say foo
tellraw @a "bar, foo"
say baz
tellraw @a "qux, baz"
say quux
tellraw @a "quz, quux"
Мне нужно заменить каждый экземпляр этого синтаксиса в гигантской строке с выводом туда и, в идеале, иметь возможность экранировать одинарные кавычки и поместить ввод внесколько строк. поэтому
[
('foo','bar'),
('baz','qux'),
('quux','quz')
](
say {1}
tellraw @a "{2}, {1}"
)
должен вывести то же самое.
Я начал работать над беспорядком регулярных выражений, чтобы справиться с этим для меня, или разбить его, чтобы помочь мне, но мой папа сказал мнешаблонный движок мог бы помочь, и я не мог понять, как заставить это работать, поэтому я пришел сюда за помощью. Спасибо, что прочитали это.