Vala 和 Genie 的关系很像 js 和 CoffeeScript 的关系。$ coffee -bc
js 和 cs 可以使用和相互编译$ js2coffee
。这里的精灵和瓦拉怎么样?
问问题
410 次
1 回答
4
您可以使用 valac --dump-tree 从 Genie 转换为 Vala。从 Vala 转换到 Genie 有点复杂,因为 libvala 中的 Vala.CodeWriter 类只输出 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
这在 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
于 2011-12-28T17:49:33.643 回答