Vala和Genie之间的关系非常类似于js和CoffeeScript之间的关系。
js和cs可以使用$ coffee -bc
和$ js2coffee
相互编译。 Genie和Vala怎么样?
答案 0 :(得分:4)
您可以使用valac --dump-tree将Genie转换为Vala。从Vala转换为Genie有点复杂,因为libvala中的Vala.CodeWriter类只输出Vala,而不是Genie。可能有可能通过继承Vala.CodeVisitor来创建输出Genie的东西(就像Vala.CodeWriter那样),但是还没有人这样做。
那就是说,我完全不知道为什么你会这么想。您可以在同一个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
这就是mix-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