Le playground dans le navigateur

Pas envie d'installer quoi que ce soit juste pour essayer un extrait ? Ouvre exemples/playground.html dans n'importe quel navigateur (aucun serveur requis) pour un éditeur de code en direct avec un bouton "Run" et des extraits d'exemple à charger.

Le playground exécute ton618-lite.js, une réimplémentation JavaScript du langage, entièrement côté client — rien n'est envoyé nulle part, aucune installation requise. Il reproduit fidèlement l'interpréteur réel : la grammaire complète (y compris switch/case), et les modules intégrés ton.random, ton.time, ton.json, ton.mathutils et ton.strings, puisqu'aucun d'eux n'a besoin de quoi que ce soit qu'un navigateur ne puisse déjà faire.

Depuis beta-2.0.0 il prend en charge tout le langage 2.0 (classes, syntaxe méthode, fonctions fléchées, f-strings, intervalles, tranches, déstructuration, |>, ?....) et les nouvelles fonctions standard — la CI fait tourner la suite tests/ à la fois dans le vrai interpréteur et dans ton618-lite.js et vérifie qu'ils affichent exactement la même chose. Sur le site de documentation, le bouton Exécuter d'un exemple de code l'ouvre dans le playground.

Ce qu'il ne peut pas faire, parce qu'un bac à sable de navigateur n'a ni système de fichiers, ni sockets, ni arguments de ligne de commande pour les alimenter :

  • ton.sys, ton.os, ton.requests — accès réel au processus/système de fichiers/réseau ; importer l'un d'eux donne une erreur claire expliquant pourquoi, plutôt que de se comporter silencieusement différemment de l'interpréteur réel
  • ton.encoding, ton.regex, ton.path — pas encore réimplémentés en JavaScript (ils existent dans l'interpréteur réel)
  • IMPORT://<fichier> pour tes propres fichiers de module (pas de système de fichiers pour les lire)
  • get/post/serve (pas de serveur HTTP), readfile/writefile (pas d'accès disque)

Une différence cosmétique : afficher un flottant peut montrer plus de décimales dans le playground que dans l'interpréteur réel (les conversions nombre-vers-texte par défaut de JavaScript et de C++ arrondissent différemment) — la valeur est identique dans les deux cas, seule sa forme affichée diffère.

Pour tout ce qui dépasse de rapides expérimentations — et pour la bibliothèque standard complète — installe l'interpréteur réel (voir Installer & compiler plus haut).

Modifier cette page sur GitHub