2011-12-28 54 views

回答

4

您可以使用valac --dump-tree將Genie轉換爲Vala。由於Vala.CodeWriter類在libval​​a中只輸出Vala,而不是Genie,所以從Vala轉換到Genie會有點複雜。通過繼承Vala.CodeVisitor(就像Vala.CodeWriter所做的那樣),可能創建一個輸出Genie的東西,但是沒有人這樣做。

這就是說,我完全不知道你爲什麼想要。您可以在同一個valac調用中自由混合Genie和Vala文件。修改

一個例子來自http://live.gnome.org/Genie,把這個mix-genie.gs:

[indent=4] 

class Foo : Object 
    prop a : int 

    init  
     print "foo is intitialized" 

    final 
     print "foo is being destroyed" 

    /* only class properties may be set in creation methods */  
    construct (b : int) 
     a = b 

    /* only class properties may be set in creation methods */   
    construct with_bar (bar : int) 
     a = bar 

而這在混合 - vala.vala:

private static int main (string[] args) { 
    var foobar = new Foo (10); 
    var foobar2 = new Foo.with_bar (10); 

    return 0; 
} 

和編譯的東西,如

valac -o mix mix-genie.gs mix-vala.vala 
+0

從Genie編譯看來對我來說足夠強大。我試圖學習精靈(關於大括號和太多的單詞),想要閱讀Vala的文檔以瞭解更多信息。所以如果有一個工具可以在兩者之間進行轉換,這將有所幫助。 – jiyinyiyong 2011-12-29 02:54:00

+1

我目前正在研究一個大約90%python和10%vala的項目。如果我可以將Vala轉換成Genie,那只是爲了更像構成大部分項目的Python代碼。 – robru 2013-02-10 19:14:05

相關問題