Templates 在模板中创建控制流的最佳方法是什么?
我正在制作自己的“语言/模板”,将其“编译”为另一种称为mcfunction的“语言”。其主要原因是mcfunction不包含循环或lambda,因此我本质上只想将这两个特性添加到它中。为此,我创建了自己的文件扩展名,并运行了一个程序,将自己的自定义语法转换为对mcfunction“language”有意义的语法 我已经取得了很大的成功,但是添加我想要的循环系统是很困难的,我想知道是否有比我现在更好的方法。我爸爸建议我使用一个模板,但我不知道它是如何工作的,并且在查找如何做时,我真的找不到任何有帮助的东西 基本上,我想要实现的语法是Templates 在模板中创建控制流的最佳方法是什么?,templates,Templates,我正在制作自己的“语言/模板”,将其“编译”为另一种称为mcfunction的“语言”。其主要原因是mcfunction不包含循环或lambda,因此我本质上只想将这两个特性添加到它中。为此,我创建了自己的文件扩展名,并运行了一个程序,将自己的自定义语法转换为对mcfunction“language”有意义的语法 我已经取得了很大的成功,但是添加我想要的循环系统是很困难的,我想知道是否有比我现在更好的方法。我爸爸建议我使用一个模板,但我不知道它是如何工作的,并且在查找如何做时,我真的找不到任何有
[('foo','bar'),('baz','qux'),('quux','quz')](
say {1}
tellraw @a "{2}, {1}"
)
进入
我需要用一个巨大的字符串替换这个语法的每个实例,并在理想情况下能够转义单引号,并将输入放在多行上。
所以
应该输出相同的东西
我开始在一个乱七八糟的正则表达式上工作,来帮我处理这个问题,或者分解它来帮助我,但是我爸爸告诉我一个模板引擎可能会有帮助,我不知道如何使它工作,所以我来这里寻求帮助。感谢阅读。java与任何东西都有什么关系,即为什么要用java标记?@depperm噢,我忘了提一下。对于有点难以解释的约束,我必须用java编写。
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}"
)