我需要找到一个好的Lua到JavaScript转换器; luaforj.org上的lua2js已经过时(大约3年左右,看起来它不适用于Lua 5.1),我还没有在Google上找到任何东西.
有没有人有任何其他转换器的经验?它应该适用于Lua 5.1,最好是基于.NET的,但.NET不是必需的.一个javascript lua解释器也可以工作.
一个新的挑战者出现了:Lua.js https://github.com/mherkender/lua.js
对于一些证明其成熟度的精彩演示,请参阅https://github.com/ghoulsblade/love-webplayer
Lua.js的工作原理是将Lua代码直接转换为ECMAscript(包括JavaScript,ActionScript),这使得它比尝试在JavaScript中实现Lua VM的解决方案具有重要的速度优势.
这是一个关于Lua列表的反复出现的问题,我猜是因为两种语言的表面相似性.
不幸的是,有许多重要的差异并不那么明显.使其工作需要一个针对JS而不是Lua的字节码的完整编译器,或者需要在JavaScript中重写Lua VM.
我不知道Lua2js的最初目标; 但如果它只是一个有限的"翻译者",那么编写想要翻译的Lua代码就会否定Lua的大部分(全部?)好处.例如,我不认为你可以使用函数作为表键,因为在JavaScript中键只是字符串(和数字?我不确定).
.NET选择更合理,可以更改现有编译器以发出CLR字节码而不是标准Lua字节码.即使CLR是针对其他类型的语言设计和优化的,它也非常通用,可以很好地运行.主要障碍是图书馆的可用性.
我刚刚发现的另一个选项是Roberto Ierusalmschy和Fabio Mascarenhas撰写的这篇论文,他们探索将LuaVM字节码转换为CLR字节码.
正如学术论文中通常的那样,没有迹象表明它的编写日期,所以我不知道它是否是新的,革命的或旧的和遗忘的.