Design: Syntaxe WAT en tant que sous-ensemble JavaScript valide

Créé le 16 mars 2019  ·  4Commentaires  ·  Source: WebAssembly/design

Autoriser les expressions S séparées par des virgules dans le format texte pour permettre à la syntaxe WAT d'être une syntaxe de sous-ensemble JavaScript valide au moment de l'analyse, comme JSON l'est pour JavaScript.

Cela vous permettrait d'écrire l'exemple suivant :

(func $swap (param i32 i32) (result i32 i32) (get_local 1) (get_local 0))

Comme suit:

(func, $swap, (param, i32, i32), (result, i32, i32), (get_local, 1) (get_local, 0))

Une application de ceci est de pouvoir écrire une syntaxe WAT valide dans des fonctions JavaScript

function add (a, b) {
   (i32.const, a)
   (i32.const, b)
   (i32.const, add)
}

Que vous pouvez add.toString() pour extraire du code source WAT valide, ce qui peut faciliter l'entrelacement du code source WAT dans JavaScript sans avoir besoin de littéraux de modèle lors du prototypage.

Commentaire le plus utile

Je ne suis vraiment pas sûr que nous voulions avoir WAST compatible JS. Principalement parce que du point de vue d'un analyseur, il serait vraiment difficile de dire si vous écrivez WAST ou JS.

Je préfère utiliser les modèles littéraux de JS :

function add (a, b) {
   wast`
     (i32.const, a)
     (i32.const, b)
     (i32.const, add)
   `
}

Tous les 4 commentaires

Les expressions S me font penser à Lisp et à cause de cela, je m'attendrais ' ce que , signifie non guillemet.

C'est une idée intéressante, mais je ne suis pas sûr que nous voudrons modifier le format du texte pour le prendre en charge.

Je ne suis vraiment pas sûr que nous voulions avoir WAST compatible JS. Principalement parce que du point de vue d'un analyseur, il serait vraiment difficile de dire si vous écrivez WAST ou JS.

Je préfère utiliser les modèles littéraux de JS :

function add (a, b) {
   wast`
     (i32.const, a)
     (i32.const, b)
     (i32.const, add)
   `
}

Vous pouvez très facilement créer un WAT DSL dans CoffeeScript. Juste pour offrir une autre option.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Artur-A picture Artur-A  ·  3Commentaires

beriberikix picture beriberikix  ·  7Commentaires

spidoche picture spidoche  ·  4Commentaires

frehberg picture frehberg  ·  6Commentaires

chicoxyzzy picture chicoxyzzy  ·  5Commentaires