Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compilation 有没有办法在瓦拉和精灵之间编译?_Compilation_Vala_Genie - Fatal编程技术网

Compilation 有没有办法在瓦拉和精灵之间编译?

Compilation 有没有办法在瓦拉和精灵之间编译?,compilation,vala,genie,Compilation,Vala,Genie,Vala和Genie之间的关系很像js和CoffeeScript之间的关系。 js和cs可以使用$coffee-bc和$js2coffee相互编译。精灵和瓦拉在这里怎么样?您可以使用瓦拉-转储树将精灵转换为瓦拉。从Vala到Genie的转换有点复杂,因为libvala中的Vala.coderewriter类只输出Vala,而不是Genie。通过子类化Vala.CodeVisitor(就像Vala.CodeWriter那样),可能会创建输出精灵的东西,但还没有人这样做 也就是说,我完全不知道你为什

Vala和Genie之间的关系很像js和CoffeeScript之间的关系。 js和cs可以使用
$coffee-bc
$js2coffee
相互编译。精灵和瓦拉在这里怎么样?

您可以使用瓦拉-转储树将精灵转换为瓦拉。从Vala到Genie的转换有点复杂,因为libvala中的Vala.coderewriter类只输出Vala,而不是Genie。通过子类化Vala.CodeVisitor(就像Vala.CodeWriter那样),可能会创建输出精灵的东西,但还没有人这样做

也就是说,我完全不知道你为什么要这么做。您可以在同一个valac调用中自由混合精灵和Vala文件

修改中的示例,将其放入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

从精灵编译对我来说似乎足够强大。我试着学习精灵(对花括号和太多的单词不感兴趣),想读一下瓦拉的文档来了解更多。因此,如果有一个工具可以在两者之间进行转换,它会有所帮助。我目前正在进行一个项目,该项目大约90%是python,10%是vala。如果我能将Vala转换成Genie,只是为了看起来更像构成项目大部分的python代码,那就太好了。