“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 325 — #335
i
i
i
i
i
i
i
i
B.6 La syntaxe lexicale
325
variableChar : := (tout caractère sauf `, \ et NUL)
atomChar
: := (tout caractère sauf ´, \ et NUL)
stringChar : := (tout caractère sauf ", \ et NUL)
charChar
: := (tout caractère sauf \ et NUL)
pseudoChar : := ´\´ octdigit octdigit octdigit
| (´\x´ | ´\X´) hexdigit hexdigit
| ´\a´ | ´\b´ | ´\f´ | ´\n´ | ´\r´ | ´\t´
| ´\v´ | ´\\´ | ´\´´ | ´\"´ | ´\`´ | ´\&´
Tableau B.10 Les non terminaux nécessaires pour la syntaxe lexicale.
Les entiers et les nombres à virgule flottante
Le tableau B.11 définit la syntaxe lexicale des entiers et des nombres à virgule flottante.
Remarquez que le signe moins est écrit avec un tilde ´˜´.
int
: := [ ´˜´ ] nzdigit { digit }
| [ ´˜´ ] 0 { octdigit }+
| [ ´˜´ ] (´0x´ | ´0X´) { hexdigit }+
| [ ´˜´ ] (´0b´ | ´0B´) { bindigit }+
float
: := [ ´˜´ ] { digit }+ ´.´ { digit }
[ (´e´ | ´E´) [ ´˜´ ] { digit }+ ]
digit
: := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
nzdigit : := 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
octdigit : := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
hexdigit : := digit | ´a´ | ´b´ | ´c´ | ´d´ | ´e´ | ´f´
| ´A´ | ´B´ | ´C´ | ´D´ | ´E´ | ´F´
bindigit : := 0 | 1
Tableau B.11 La syntaxe lexicale des entiers et nombres à virgule flottante.
B.6.2 L’espace blanc et les commentaires
Les jetons peuvent être séparés par de l’espace blanc (« white space ») et des commentaires. L’espace blanc est un des caractères suivants : tabulation horizontale (code
de caractère 9), saut de ligne (« newline ») (code 10), tabulation verticale (code 11),
saut de page (« form feed ») (code 12), retour de chariot (« carriage return ») (code
13) et l’espace (code 32). Un commentaire est une des trois possibilités suivantes :
– Une séquence de caractères qui commence avec le caractère % (pourcentage)
jusqu’à la fin de la ligne ou la fin du fichier (celle qui arrive en premier).
© Dunod – La photocopie non autorisée est un délit
Précédent

- 340/370

Suivant