2011-12-28 8 views

答えて

4

valie -dump-treeを使用してGenieからValaに変換できます。 libval​​aのVala.CodeWriterクラスはGenieではなくValaのみを出力するため、ValaからGenieへの変換は少し複雑です。 Vala.CodeVisitorを(Vala.CodeWriterのように)サブクラス化することでGenieを出力するものを作成することはおそらく可能ですが、まだ誰もそれを行っていません。

しかし、私はあなたがなぜ望むのか全く分かりません。 GenieファイルとValaファイルを同じvalac呼び出し内で自由に混在させることができます。

のようなもので

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

    return 0; 
} 

そしてコンパイル:

[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:

http://live.gnome.org/Genieから例の変更、mix-genie.gsでこれを置きます

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

Genieからのコンパイルは、私にとっては十分強力です。私はGenieを学ぼうとしました(中括弧とあまりにも多くの言葉を消してしまいました)、もっと学ぶためにValaの文書を読むことを考えました。したがって、両方の間でツールが翻訳できる場合は、それが役に立ちます。 – jiyinyiyong

+1

私は現在、約90%のPythonと10%のValaのプロジェクトに取り組んでいます。プロジェクトの大半を占めるpythonコードのように見えるように、私がValaをGenieに変換することができたらうれしいです。 – robru

関連する問題