如何将这些 Haxe 源文件转换为 Python?

How do I convert these Haxe source files to Python?

我正在尝试将 Nape 物理引擎(用 Haxe 编写)移植到 Haxe (Xojo) 不支持的语言。现在我不了解 Haxe,但我对 Python 很满意。我正在尝试将大量 .hx 文件转换为 python 源文件,以便我可以将它们翻译成 Xojo。

我有 Nape .hx 源文件(来自 haxelib)并安装了 haxe 命令行工具。

我尝试了多种排列方式来尝试将 .hx 文件转换为 Python 文件,但没有成功。我尝试了以下方法:

haxe -cp <directory containing some .hx files> -python <output directory>

这只是从 haxe 工具输出帮助。

haxe <directory containing .hx files> -python <output directory>

抛出:

Error: Could not process argument [directory] Class name must start with uppercase character

我试过只处理一个 .hx 文件:

haxe <.hx file> -python <output directory>

Error: Could not process argument [myfile.hx] empty part

知道我做错了什么吗?我以为 Haxe 的全部意义在于能够轻松转换为不同的语言?

Hugh 是对的,您通常需要指定一个 -main 参数。但是,如果您不需要入口点(例如在编译您的情况下的库时),您也可以省略它并编译单个模块:

<dot-path> : compile the module specified by dot-path

我认为您在这里选择哪个模块并不重要。我选择了 nape.Config。重要的部分是使用 --macro include 确保 nape 库中的每个文件都被编译(否则只包含引用的文件)。

haxe nape.Config -lib nape -python nape.py --macro include('nape') --macro include('zpp_nape')

此命令生成一个包含大约 121000 行的 nape.py 文件,这可能有点令人望而却步,具体取决于将 Python 代码转换为该 Xojo 语言所需的工作量。即使这是一个简单的过程,生成的代码通常也不是最易读的。

事实上,Nape 的 Haxe 版本已经不是很可读了,因为它是由一个名为 caxe (.cx). The caxe source of Nape can be found here.

的预处理器生成的

您可以在此处尝试一些编译器选项,以稍微减少代码大小并使其更具可读性:

  • --no-inline:防止代码形式被内联,将输出减少到 ~60000 行
  • -D NAPE_RELEASE_BUILD:Nape 定义删除了错误处理 - 可能不值得,只删除了大约 2000 行。