3
Vala和Genie之間的關係非常像js和CoffeeScript之間的關係。 js和cs可以用$ coffee -bc
和$ js2coffee
相互編譯。精靈和瓦拉在這裏呢?Vala和Genie之間有什麼方法可以編譯?
Vala和Genie之間的關係非常像js和CoffeeScript之間的關係。 js和cs可以用$ coffee -bc
和$ js2coffee
相互編譯。精靈和瓦拉在這裏呢?Vala和Genie之間有什麼方法可以編譯?
您可以使用valac --dump-tree將Genie轉換爲Vala。由於Vala.CodeWriter類在libvala中只輸出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
從Genie編譯看來對我來說足夠強大。我試圖學習精靈(關於大括號和太多的單詞),想要閱讀Vala的文檔以瞭解更多信息。所以如果有一個工具可以在兩者之間進行轉換,這將有所幫助。 – jiyinyiyong 2011-12-29 02:54:00
我目前正在研究一個大約90%python和10%vala的項目。如果我可以將Vala轉換成Genie,那只是爲了更像構成大部分項目的Python代碼。 – robru 2013-02-10 19:14:05