Отношения между Валой и Джини очень похожи на отношения между js и CoffeeScript. js и cs могут скомпилировать друг друга $ coffee -bc
и $ js2coffee
. Как насчет Джини и Валы здесь?Есть ли способ скомпилировать между Валой и Джини?
3
A
ответ
4
Вы можете использовать valac --dump-tree для преобразования из Genie в Vala. Преобразование из Vala в Genie немного сложнее, так как класс Vala.CodeWriter в libvala выводит только Vala, а не Genie. Возможно, было бы возможно создать что-то, что выводит Genie путем подклассификации Vala.CodeVisitor (как это делает Vala.CodeWriter), но пока никто этого не сделал.
Тем не менее, я понятия не имею, зачем вам это нужно. Вы можете свободно смешивать файлы Genie и Vala в одном и том же вызове valac.
Изменение пример из 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 кажется достаточно мощной для меня. Я попытался узнать Джин (дегустация о фигурных скобках и слишком много слов), задумавшись о том, чтобы прочитать документы Валы, чтобы узнать больше. Поэтому, если инструмент может перевести между ними, это поможет. – jiyinyiyong
В настоящее время я работаю над проектом, который составляет около 90% питона и 10% валы. Было бы здорово, если бы я смог преобразовать Vala в Genie только ради того, чтобы больше походить на код python, который составляет большую часть проекта. – robru