【发布时间】:2019-06-11 18:40:37
【问题描述】:
寻找生成惯用代码的交叉编译器的建议。用例是开源项目的代码示例,但目前这些需要用许多不同的语言编写,重复工作。这个想法是图书馆的用户应该能够查看生成的代码并“感到宾至如归”。
我为此检查了 Haxe,但没有得到我需要的结果。例如这段代码:
class HelloWorld {
static public function main() {
trace("Hello World");
}
}
为最终用户带来非常糟糕的 IDE 体验:
@SuppressWarnings(value={"rawtypes", "unchecked"})
public class HelloWorld extends haxe.lang.HxObject
{
public HelloWorld(haxe.lang.EmptyObject empty)
{
}
public HelloWorld()
{
//line 1 "/usr/local/google/home/nbirnie/git/test/HelloWorld.hx"
haxe.root.HelloWorld.__hx_ctor__HelloWorld(this);
}
public static void __hx_ctor__HelloWorld(haxe.root.HelloWorld __hx_this)
{
}
public static void main()
{
//line 3 "/usr/local/google/home/nbirnie/git/test/HelloWorld.hx"
haxe.Log.trace.__hx_invoke2_o(0.0, "Hello World", 0.0, new haxe.lang.DynamicObject(new java.lang.String[]{"className", "fileName", "methodName"}, new java.lang.Object[]{"HelloWorld", "HelloWorld.hx", "main"}, new java.lang.String[]{"lineNumber"}, new double[]{((double) (((double) (3) )) )}));
}
}
始终可以选择为此编写域特定语言 - 生成的代码的实际量会非常小,每个类可能只有 100 行,并且类之间没有耦合。但我想我会先寻找现成的解决方案。
【问题讨论】:
标签: cross-compiling code-generation haxe