Ответ 1
Нет, компилятор Haxe преобразуется только в одном направлении:
Код Haxe → (выбранная цель)
Для другого направления вам понадобится внешний инструмент, независимый от компилятора Haxe:
Во-первых, я супер новичок в Haxe, поэтому я задаю вопрос super noob здесь, и у меня их 2.
1) Мой первый вопрос: я знаю, что компилятор Haxe может конвертировать из Haxe на любой другой язык (поддерживается), но может ли он конвертировать исходный код на другие языки (поддерживается) в Haxe?
2) Если он может это сделать, то насколько его возможно, как только он может конвертировать несколько файлов, скажем, в С# в Haxe, или если я дам огромное репо, например, скажем, это https://github.com/dotnet/corefx или https://github.com/tensorflow/tensorflow будет преобразовывать все в нем (я знаю, что это тоже много спросить, но в любом случае)
Нет, компилятор Haxe преобразуется только в одном направлении:
Код Haxe → (выбранная цель)
Для другого направления вам понадобится внешний инструмент, независимый от компилятора Haxe:
Ответ Gama11 правильный, но -net-lib и externs должны быть добавлены, поскольку они позволяют использовать код С#/mono в вашем проекте haxe С#/mono.
Haxe может потреблять скомпилированный код для всех целей с использованием externs (определения компилятора) для использования в вашем проекте Haxe для этой же цели, для большинства целей вам необходимо создать подходящие externs вручную. Однако для некоторых целей (Java, С#, Flash) Haxe может автоматически генерировать требуемые externs, хотя и не всегда удачные, это может сделать довольно безболезненным использование существующих библиотек. Я нашел это очень успешным со вспышкой и имел разнообразный успех с целью Java, но он всегда улучшается и, возможно, один или два раза пробовал его с помощью mono (С# target). В коде hxml-complier вы можете написать.
-swf-lib my.swf
-java-lib my.jar
-net-lib my.dll
Вы не можете использовать файл aa swf или jar с проектом aС# или DLL с проектом flash или java, по крайней мере, не таким образом, хотя вы можете использовать swf с openfl и nme при настройке С++ с помощью специальных расширений parsing.
Технически для С# это будет описано в будущем руководстве Haxe более формально, чем у меня, см. ссылку на страницу уценки github для получения полной информации:
"Haxe может напрямую загружать сборные файлы .NET(.DLL) и преобразовывать его определения типов для использования в качестве типов Haxe. Для загрузки сборки .NET используйте опцию компилятора -net-lib library.dll. Затем Haxe автоматически анализирует типы, определенные в этом файле сборки, и сделать их доступными для импорта в виде типов Haxe." - Цитировать https://github.com/HaxeFoundation/HaxeManual/wiki/Haxe-C%23
Каковы ваши намерения? Вы:
Для 1 вы можете использовать -net-lib
, чтобы вы могли использовать библиотеку С# непосредственно в Haxe, поэтому вам не нужно вообще конвертировать код С# в Haxe.
Для 2 вам необходимо вручную перенести код С# на код Haxe или с помощью некоторых инструментов, упомянутых Gama11. Сам Хэкс не поддерживает такое преобразование.