Information Technology Reference
In-Depth Information
Lexèmes
P
r
o
g
r
a
m
m
e
Suite
de caractères
Suite
de symboles
Analyseur lexical
Erreurs : symboles non reconnus
Figure 3.2
Analyseur lexical.
Ainsi, les lexèmes du langage L_exemple peuvent être codés sur l'ensemble Z des
nombres entiers positifs, négatifs ou nuls en appliquant les règles suivantes :
cas (type_lexème reconnu) :
entier : codage_lexème = valeur de l'entier;
symbole + : codage_lexème = - 1;
symbole - : codage_lexème
- 2;
symbole * : codage_lexème = - 3;
symbole / : codage_lexème = - 4;
symbole = : codage_lexème = - 5;
symbole ; : codage_lexème = - 6;
symbole PROGRAM : codage_lexème
=
- 7;
symbole DEBUT : codage_lexème = - 8;
symbole FIN : codage_lexème
=
- 9;
symbole INT : codage_lexème = - 10;
identificateur lettre seule : - (position_lettre_alphabet + 10);
identificateur lettre chiffre : - ((position_lettre_alphabet + 10) +
26 (chiffre + 1));
fin cas;
Avec ce codage qui est totalement bijectif :
- un lexème entier reçoit une valeur positive ou nulle;
- un lexème symbole du langage reçoit une valeur dans l'ensemble [- 10, - 1];
- un identificateur reçoit une valeur dans l'ensemble [- 296, - 11] : en effet, l'iden-
tificateur A est codé par la valeur - 11 tandis que l'identificateur Z9 est codé par
la valeur - (36
=
260).
Le programme Z correspondra à l'issue de l'analyse lexicale à la suite d'entiers :
- 7 (PROGRAM), - 36 (Z), - 10 (INT), - 11 (A), - 6 (;), - 10 (INT), - 12 (B), - 6 (;),
- 10 (INT), - 91 (C2), - 6 (;), - 8 (DEBUT), - 11 (A), - 5 (
+
=
), 4 (4), - 6 (;), - 12 (B),
-5 (
=
), - 11 (A), - 4 (/), 2 (2), - 6 (;), - 91 (C2), - 5 (
=
), - 12 (B), - 1 (
+
), - 11 (A),
- 6 (;), - 9 (FIN).
Search WWH ::




Custom Search