gpt4 book ai didi

compiler-construction - Haxe 中的 Haxe 后端?

转载 作者:行者123 更新时间:2023-12-01 09:55:52 24 4
gpt4 key购买 nike

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

最佳答案

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

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

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

  • Haxe 标准库中的示例 JS 生成器:https://github.com/HaxeFoundation/haxe/blob/development/std/haxe/macro/ExampleJSGenerator.hx
  • 来自 Luaxe 的 Lua 生成器:https://github.com/PeyTy/LuaXe/blob/master/luaxe/LuaGenerator.hx
  • Python 代码生成器:https://github.com/frabbit/hx2python/blob/development/src/python/gen/PythonGenerator.hx
  • Dart 代码生成器:https://bitbucket.org/AndrewVernon/hx2dart/src/203d61b299c88ca3a2b043335d92b71546ce1239/src/haxe/macro/DartGenerator.hx?at=development

  • 您可以查看每个 API 以了解 API 的工作原理,从外观上看,它们都具有非常相似的结构。

    在限制方面,您必须询问使用过此功能的人。我知道 Python 生成器最终被移到了标准的 Haxe 编译器中,所以现在大概是在 OCaml 中——也许他们发现它太局限了?我不确定。

    如果您想了解更多关于这种方法的具体限制,我会在 Haxe 邮件列表上询问,或者联系上述目标的开发人员并要求他们分享他们的智慧。

    关于compiler-construction - Haxe 中的 Haxe 后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27766079/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com