User:Hexasoft/bck

Cette section détaille le lexique, la syntaxe et la sémantique de Lua. Elle décrit donc quels mot-clés sont valides, comment les combiner et ce que leurs combinaisons signifie.

La construction du langage sera expliquée en utilisant la notation extended Backus–Naur Form (EBNF), dans laquelle : { a } signifie 0 ou plus a, et [ a ] signifie un a optionnel. Les éléments non terminaux sont affichés comme non terminaux, les mot-clés sont affichés en gras, les autres symboles terminaux sont affichés sous la forme `=&acute;. La syntaxe complête se trouve à la fin de ce manuel.

Conventions lexicales
-

Les chaînes constantes (ou textes ) peuvent être délimitées par une paire de guillemets (version anglaise : ") ou une paire d'apostrophe (version anglaise : '), et peuvent contenir les séquences d'échappement (similaires à celles utilisées en C) suivantes : ' ' (bell), ' ' (backspace), ' ' (form feed), ' ' (nouvelle ligne), ' ' (retour en début de ligne), ' ' (tabulation horizontale), ' ' (tabulation verticale), ' ' (barre oblique inversée (backslash)), ' ' (guillement), et ' ' (apostrophe). De plus un backslash suivi par un vrai retour à la ligne correspond à un retour à la ligne dans la chaîne. Un caractère dans une chaîne peut aussi est spécifié par sa valeur numérique en utilisant la séquence d'échappement, avec ddd une séquence comprenant jusqu'à trois chiffres (note : si cette séquence est utilisée directement suivie d'un chiffre il faut obligatoirement fournir trois chiffres). Les chaînes dans Lua peuvent contenir n'importe quelle valeur codée sur un octet, y compris la valeur 0 qui peut être insérée avec ' '.

Les chaînes littérales peuvent aussi être définies en utilisant un format long entouré par des crochets longs. Ouvrir un crochet long de niveau n consiste à ouvrir un crochet suivi de n signes égal suivi d'un autre crochet ouvrant. Un crochet long de niveau 0 correspond donc à  et un crochet long de niveau 1 à  … Un crochet long fermant se définit symétriquement :  est ainsi un crochet long fermant de niveau 4.

Une chaîne longue débute avec un crochet long ouvrant − peu importe le niveau − et se termine par un crochet long fermant de même niveau. Entre cette ouverture et fermeture la chaîne peut être sur plusieurs lignes et Lua n'effectue aucune interprétation des caractères comme les séquences d'échappement. De plus Lua ignore les crochets longs de niveau différent.

Pour aider le programmeur quand un crochet long ouvrant est immédiatement suivi d'un retour à la ligne celui-ci n'est pas intégré à la chaîne. Dans l'exemple qui suit et qui utilise le système ASCII (' ' vaut 97, le retour à la ligne vaut 10 et le caractère ' ' vaut 49) les cinq chaînes littérales suivantes correspondent au même contenu :

Une constante numérique peut s'écrire avec une partie décimale optionnelle ainsi qu'un exposant décimal optionnel. Lua accepte aussi les entiers hexadécimaux en les préfixant par. Quelques exemples de constantes numériques correctes :


 * 3
 * 3.0
 * 3.1416
 * 314.16e-2
 * 0.31416E1
 * 0xff
 * 0x56

Un commentaire commence par un double tiret (ou « moins ») où que ce soit sauf à l'intérieur d'une chaîne. Si juste après les  il y a un crochet ouvrant long il s'agit d'un commentaire long, qui se continue (éventuellement sur plusieurs lignes) jusqu'au crochet long fermant correspondant. Sinon il s'agit d'un commentaire court qui se termine implicitement à la fin de la ligne.

--