【发布时间】:2016-10-13 07:38:00
【问题描述】:
我正在重新构建一个 Lua 到 ES3 的转换器(一个将 Lua 转换为跨浏览器 JavaScript 的工具)。在我开始将我的想法花在这个转译器上之前,我想问一下是否可以将 Lua 标签转换为 ECMAScript 3。例如:
goto label;
:: label ::
print "skipped";
我的第一个想法是将每个语句体分成几部分,例如,当有一个标签时,它的下一个语句必须作为一个完整的下一部分存储:
some body
label (& statements)
other label (& statements)
等等。每个具有主体(或程序块)的语句都会获得这样的部分列表。标签的每个部分都应将其名称存储在某处(例如,在其自己的部分对象中、属性内)。
每个部分都是一个函数,或者会在自身上存储一个函数,以便相对于其他部分按顺序执行。
goto 语句将查找其特定标签以运行其语句并调用 ES return 语句以停止当前语句的执行。
以这种方式分离主体语句的局限性在于访问不同部分中定义的变量和函数......那么,有什么想法或答案吗?转ECMAScript就不可能有稳定的标签吗?
【问题讨论】:
标签: lua ecmascript-3