Le langage
YScript est un langage inspiré de Lua : mêmes grandes lignes syntaxiques (if/then/end,
local, function...end, for...do...end, goto/labels, métatables...), avec quelques
différences de comportement propres au moteur. Cette section documente le langage tel qu'un
auteur de script le manipule, dans l'esprit du manuel de référence Lua : une page par grand
thème, avec la syntaxe exacte et des exemples courts.
- Types et valeurs —
nil, booléen, nombre (entier/flottant), chaîne, table, fonction, userdata, thread ; conversions et « vérité » d'une valeur. - Variables et portée — variables globales, locales, portée de bloc,
affectations multiples, varargs (
...). - Expressions et opérateurs — littéraux, opérateurs arithmétiques, relationnels, logiques, concaténation, précédence, constructeurs de table.
- Structures de contrôle —
if,while,repeat, les deux formes defor,break/continue,return. - Fonctions — définition, appels, méthodes (
:), fermetures (upvalues), arguments variables, valeurs de retour multiples. - Modules — écrire un module YScript (
.yes) chargé viarequire: patron standard, arguments reçus par le chunk, emplacement du fichier,package.preload. gotoet labels — syntaxe et règles de visibilité.- Métatables et métaméthodes —
getmetatable/setmetatable, liste des événements supportés (__index,__add,__eq,__close...). - Différences avec Lua — récapitulatif des points où le comportement de
YScript diverge de Lua standard (vérité des valeurs, division entière, attributs
<const>, échappements de chaînes...). - Grammaire complète — référence syntaxique condensée (notation EBNF) de tout le langage.