2016-02-15 27 views
0

我試圖將Nape物理引擎(用Haxe編寫)轉換爲Haxe(Xojo)不支持的語言。現在我不明白Haxe,但我很喜歡Python。我試圖將大量的.hx文件轉換爲python源文件,然後我可以將它們翻譯成Xojo。如何將這些Haxe源文件轉換爲Python?

我有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的重點是能夠輕鬆地轉換成不同的語言?

+0

您還需要指定'-main dot_path',其中'dot_path'是主類(即程序的起點)。 –

+0

......這將是困難的,因爲Nape似乎是一個圖書館而不是一個程序,因此它不具備*主類。也許其中一個測試套件?您可能需要一些可以鍛鍊大部分或全部代碼路徑的東西。 –

回答

0

休是正確的,你通常需要指定一個-main參數。但是,你可以省略和編譯一個模塊,以及如果(在你的情況下編譯庫就像當例如),你不需要有一個入口點:

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

它認爲並沒有真正你在這裏選擇哪個模塊很重要。我去了nape.Config。重要的部分是使用--macro include來確保編譯後的每個文件(否則只包含引用的文件)。

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

此命令生成一個文件nape.py周圍121000線,根據需要多少工作Python代碼轉換爲這個Xojo語言,可能會有點望而卻步。即使這是一個簡單的過程,生成的代碼通常不是最具可讀性的。實際上,Nape的Haxe版本已經不是很可讀了,因爲它是由一個名爲caxe.cx)的預處理器生成的。 Nape的caxe來源可以在here找到。


有一些編譯器選項,你可以嘗試這裏來減少代碼大小了一下,使其更具可讀性:

  • --no-inline:防止被內聯代碼的形式,降低輸出到〜60000線
  • -D NAPE_RELEASE_BUILD:Nape定義了刪除錯誤處理 - 可能不值得,只刪除〜2000多行。