M1

Analyse LL(1)

Table d'analyse

pour chaque notion faire
  pour chaque terminal faire
    déterminer le numéro de la règle à utiliser
  fin
fin


On remplit les tables d'analyse SAUT et ACTION

Il y a erreur dans le reste des cases non remplies

Analyse lexicale

Il s'agit de la première phase d'analyse avant d'analyser la syntaxe. Elle permet entre autre l'élimination des informations inutiles dans le texte (supression des espaces, tabulations, etc.).

Dans cette forme plus condensée, on trouvera les unités syntaxiques (token, i.e. la catégorie du mot). L'analyseur n'a pas besoin de connaître la valeur des mots ou les noms. La lecture de la chaîne d'entrée se fait caractère par caractère.

Un code est attribué aux différentes unités syntaxiques. Les symboles de base = identificateurs & nombres

Entier -> Chiffre | Entier Chiffre
Identificateur -> Lettre | Lettre Suite_ident
Suite_ident -> Chiffre Suite_ident | Lettre Suite_ident | Vide (ou bien Lettre | Chiffre pour éviter une règle Epsilon)
Lettre -> a | b | ... | A | ... | Z
Chiffre -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Pour limiter la longueur d'un identificateur :

identificateur -> Lettre[Lettre | Chiffre]0-5

Synthèse des constantes : Nombre sans signes

Nbsansigne -> nbdec | exposant | nbdev exposant
nbdec      -> entierss | fraction | entierSS fraction
exposant   -> E entier
entierSS   -> C | EntierSS C
faction    -> . entierSS
Entier     -> entierSS | + entierSS | - entierSS

Transformer la grammaire suivante en grammaire régulière équivalent :

nbss                  -> C reste_nbss | E exposant | . fraction
reste_nbss            -> C reste_nbss | E exposant | .fraction | vide
fraction              -> C reste_fraction
reste_fraction        -> C reste_fraction | E exposant | vide
Exposant              -> S exposant_entier | C reste_exposant_entier
exposant_entier       -> C reste_exposant_entier
reste_exposant_entier -> C reste_exposant_entier | vide

La valeur d'un nombre est représentée par un quadruplet (M, s, x, n).

Actions sémantiques :