我正在尝试学习 kframework,作为练习,我想尝试创建一种高级语言,该语言可以编译为视频游戏的脚本语言。这种高级语言没有真正的执行,只是编译成带有重写规则的脚本语言。
下面的原始脚本语言语法示例
variables {
0: 'message'
}
init {
SetVariable("message", "Test message");
}
rule("press button") {
conditions {
IsButtonPressed(EventPlayer, INTERACT_KEY);
}
actions {
SendMessage(EventPlayer, GetVariable("message"))
}
}
我希望我的高级语言允许正确的变量声明,所以我可以写这样的东西,它会编译成上面的脚本。
init {
var message = "Test message";
}
rule("press button") {
conditions {
IsButtonPressed(EventPlayer, INTERACT_KEY);
}
actions {
SendMessage(EventPlayer, message)
}
}
我知道如何制定一个简单的重写规则来用 替换变量声明var x = y
,SetVariable("x", y)
但我怎么还能附加到顶部的变量声明块?
我很可能误解了 K 的能力,或者我应该如何去做这件事。任何帮助,将不胜感激。