Si quelqu'un pouvait m'aider avec les règles des ensembles FIRST et FOLLOW, ce serait génial.Création des ensembles FIRST et FOLLOW pour tous les non-terminaux
La question est de calculer les ensembles de suivre pour tous les non-terminaux dans la grammaire suivante
S ::= S b T a E ¦ a T b ¦ c T a c R ::= E T ¦ a E
T ::= a c E ¦ epsilon E ::= R ¦ T a d ¦ epsilon
J'ai lu les règles de création d'ensembles de suivi et compris les exemples de base, mais je suis confus à ce que je devrait être fait quand j'écris FIRST (S) pour ce
toute aide serait grandement appréciée.
Je ne les ai jamais vu s'appeler les ensembles FIRST1, mais c'est exactement la définition des ensembles PREMIERS que j'ai été enseigné. –
PREMIER (R) = PREMIER (E) union {a} = PREMIER (E) union FIRST (T) union {epsilon} = {epsilon, a} et aussi le FIRST (E) = {epsilon, a} ? – user279841
Kaleb Pederson: Ce qu'on m'a enseigné, c'est qu'il y a des ensembles FIRSTk pour chaque k, donc quand vous écrivez un analyseur avec k lookahead, vous calculez les ensembles FIRSTk, de cette façon vous pouvez résoudre les ambiguïtés sans refactoriser votre grammaire. stagnetti: Je ne suis pas tout à fait sûr de l'epsilon car ce n'est pas un terminal au sens strict, donc je dirais FIRST1 (R) = {a}. Mais peut-être que quelqu'un d'autre peut aider ici. –