1) Analyse LL(1) :
Pour construire une table d'analyse, on a besoin des ensembles DEBUT et SUIVANT
Ensemble début :
Debut(α)={a T \ α →aγ , γ (N T)+ } { t {Ɛ} T \ α →t } α (N T)*
Exemple:
S → ABc / aSc debut
A→aAB / Ɛ S b,a,c
B →bB / Ɛ A a, Ɛ
C→Bc / aC / Ɛ B b, Ɛ
C b,a,c, Ɛ
Ensemble suivant :
suivant(A)={a T {#} \ Z →WAα #} avec a debut(α#) et w, α (N T)*, A N .
S → ABc / aSc
A→aAB / Ɛ debut suivant
B →bB / Ɛ S b,a,c #,c
C→Bc / aC / Ɛ A a, Ɛ b,c
B b, Ɛ c,b
C b,a,c, Ɛ
Fsi
Fait
Fait
Fin.
Définition 1 :
Une condition nécessaire et suffisante pour qu’une grammaire soit LL(1) est
qu’elle soit :
Définition 2 :
Exemple :
S → aAb / bS
A→bB / Ɛ
B →b
G est-elle LL(1) ?