CH05 Analyse Ascendante
CH05 Analyse Ascendante
suivantes :
S → aABe
A → Abc| b
B→d
On veut analyser la chaîne abbcde de manière
ascendante.
SLR(k)
Pile Sn
Xn Programme
d’analyse LR Flot de sortie
Sn-1
S0
ACTION SUCCESSEUR
5) F ( E )
6) F i
30 Chapitre 05 - Analyse syntaxique ascendante
Construction de la table d’analyse SLR (1)
Exemple (suite)
+ * ( ) i # E T F
0 D4 D5 1 2 3
1 D6 Accepter
2 R (2) D 7 R (2) R (2)
3 R (4) R (4) R (4) R (4)
4 D4 D5 8 2 3
5 R (6) R (6) R (6) R (6)
6 D4 D5 9 3
7 D4 D5 10
8 D6 D 11
9 R (1) D 7 R (1) R (1)
10 R (3) R (3) R (3) R (3)
11 R (5) R (5) R (5) R (5)
La table est mono-définie donc la grammaire précédente est SLR(1);
31 Chapitre 05 - Analyse syntaxique ascendante
Exemple d’analyse Pile Restant à Action
SLR(1) analyser
Analyse de la chaine 0 i+i*i# D5
"i+i*i": 0i5 +i*i# R (6)
0F3 +i*i# R (4)
0) E' E 0T2 +i*i# R (2)
1) E E + T 0E1 +i*i# D6
2) E T 0E1+6 i*i# D5
3) T T * F 0E1+6i5 *i# R (6)
4) T F 0E1+6F3 *i# R (4)
5) F ( E ) 0E1+6T9 *i# D7
0E1+6T9*7 i# D5
6) F i 0E1+6T9*7i5 # R (6)
0 E 1 + 6 T 9 * 7 F 10 # R (3)
0E1+6T9 # R (1)
32 Chapitre 05 - Analyse syntaxique ascendante 0E1 # "Accepter"
Conflits dans l’analyse SLR(1)
Deux types de conflits existent dans l‟analyse SLR(1):
Conflit Décaler - Réduire
Certains états peuvent contenir un item de la forme
[A →α.aβ] et un item de la forme [A →α.].
Conflit Réduire - Réduire
Certains états peuvent contenir un item de la forme
[A →α.] et un item de la forme [B→β.]. Avec
suivant (A) ∩ suivant (B) ≠Ф .
Ils représentent deux situations de réduction par deux
productions différentes.
I. .
Analyse LALR(1)
Exemple
Exemple:
Considérer la grammaire augmentée G‟ pour la grammaire de
l‟exemple précédent :
S' S
S AA
A aA
Ab
La collection canonique d‟items LR(1) est la suivante:
a b # S A
0 D 36 D 47 1 2
1 Accepter
2 D 36 D 47 5
36 D 36 D 47 89
47 R(3) R(3) R(3)
5 R(1)
89 R(2) R(2) R(2)