Haxe在Haxe的后端?

时间:2015-01-04 13:38:09

标签: compiler-construction haxe

我知道Haxe编译器是用OCaml编程语言编写的,对于编译器开发人员来说这是一个非常好的选择。然而最近我发现了Luaxe项目,它似乎是Haxe的全功能Lua后端,并且被开发为纯Haxe库。我查看了项目的代码,它正在使用某种宏魔法在编译时生成Lua源代码。所以我想问一下,是否可以在纯Haxe中实现功能齐全的后端,而无需深入研究OCaml并重建编译器?如果是这样有任何限制?有没有关于如何在纯Haxe中实现后端的好文章?

2 个答案:

答案 0 :(得分:4)

看起来Luaxe项目正在使用setCustomJSGenerator API。

基本上,它使用--macro "setCustomJSGenerator(luaxe.LuaGenerator.use)"或类似的东西作为宏运行。

我自己从未构建过自定义后端,但您可以使用它来执行自定义Javascript,或者生成不同语言的源代码,这可以在以下每种语言中完成:

您可以查看其中的每一个,以了解API的工作原理,它们的外观都具有相似的结构。

就限制而言,你必须问一个使用过它的人。我知道Python生成器最终被转移到标准的Haxe编译器中,所以现在可能是在OCaml中 - 也许他们发现它太有限了?我不确定。

如果您想了解更多有关此方法的具体限制,我可以询问Haxe邮件列表,或联系上述目标的开发人员,并请他们分享他们的智慧。

答案 1 :(得分:3)

Haxelang讨论组中有几个主题可能会为您提供有关此主题的一些信息。一些例子:

Why is the Haxe compiler still in OCAML?

What is missing from Haxe to replace Ocaml as a compiler language?

希望这有帮助!