Permitir expresiones S separadas por comas dentro del formato de texto para permitir que la sintaxis WAT sea una sintaxis válida de subconjunto de JavaScript en tiempo de análisis como JSON es para JavaScript.
Esto le permitiría escribir el siguiente ejemplo:
(func $swap (param i32 i32) (result i32 i32) (get_local 1) (get_local 0))
Como el seguiente:
(func, $swap, (param, i32, i32), (result, i32, i32), (get_local, 1) (get_local, 0))
Una aplicación de esto es poder escribir una sintaxis WAT válida en funciones de JavaScript
function add (a, b) {
(i32.const, a)
(i32.const, b)
(i32.const, add)
}
Que puede add.toString()
extraer código fuente WAT válido, que puede facilitar la intercalación del código fuente WAT dentro de JavaScript sin la necesidad de literales de plantilla al crear prototipos.
Las expresiones-S me hacen pensar en Lisp y por eso esperaría que '
signifique comillas y ,
signifiquen comillas.
Esta es una idea interesante, pero no estoy seguro de que queramos modificar el formato de texto para que sea compatible.
Realmente no estoy seguro de que queramos tener WAST compatible con JS. Principalmente porque desde la perspectiva del analizador sería muy difícil saber si está escribiendo WAST o JS.
Prefiero usar los literales de plantilla de JS:
function add (a, b) {
wast`
(i32.const, a)
(i32.const, b)
(i32.const, add)
`
}
Podrías crear un WAT DSL en CoffeeScript muy fácilmente. Solo para ofrecer otra opción.
Comentario más útil
Realmente no estoy seguro de que queramos tener WAST compatible con JS. Principalmente porque desde la perspectiva del analizador sería muy difícil saber si está escribiendo WAST o JS.
Prefiero usar los literales de plantilla de JS: