允许在文本格式中使用逗号分隔的 S 表达式以允许 WAT 语法成为有效的解析时 JavaScript 子集语法,就像 JSON 之于 JavaScript。
这将允许您编写以下示例:
(func $swap (param i32 i32) (result i32 i32) (get_local 1) (get_local 0))
如下:
(func, $swap, (param, i32, i32), (result, i32, i32), (get_local, 1) (get_local, 0))
一种应用是能够在 JavaScript 函数中编写有效的 WAT 语法
function add (a, b) {
(i32.const, a)
(i32.const, b)
(i32.const, add)
}
您可以add.toString()
提取有效的 WAT 源代码,这样可以更轻松地在 JavaScript 中插入 WAT 源代码,而无需在原型设计时使用模板文字。
S 表达式让我想到 Lisp,因此我希望'
表示引用,而,
表示取消引用。
这是一个有趣的想法,但我不确定我们是否要修改文本格式以支持它。
我真的不确定我们是否想要与 JS 兼容的 WAST。 主要是因为从解析器的角度来看,很难判断您是在编写 WAST 还是 JS。
我宁愿使用 JS 的模板文字:
function add (a, b) {
wast`
(i32.const, a)
(i32.const, b)
(i32.const, add)
`
}
你可以很容易地在 CoffeeScript 中敲出 WAT DSL。 只是为了提供另一种选择。
最有用的评论
我真的不确定我们是否想要与 JS 兼容的 WAST。 主要是因为从解析器的角度来看,很难判断您是在编写 WAST 还是 JS。
我宁愿使用 JS 的模板文字: