A --> Bc
B --> d
B --> (vuota)
|
Il first è l'insieme dei terminali che puoi trovare all'inizio di un non-terminale.
Ad esempio, se prendi A:
- A può andare a B.
- B va a d. d è quindi un terminale che sta all'inizio di A e va inserito nel first.
- B va a (vuota). (vuota) va quindi anche inserito nel first.
- Siccome B può essere (vuota), "c" è un terminale che è all'inizio di A. Quindi anche c va inserito nel first.
First(A) = {c, d, (vuota) }
Il follow in maniera simile, è l'insieme dei terminali che seguono un non-terminale (che sono alla fine):
Ad esempio se prendi A:
- c è alla fine di A, quindi c è nell'insieme.
Follow(a) = {c}
Per B:
- b è alla fine di B. Quindi b è nell'insieme.
- (vuota) è alla fine di B. Quindi (vuota) è nell'insieme.
- Dopo B può esserci c. Quindi c è nell'insieme.
Follow(b) = {b, (vuota), c}
In parole semplici... l'insieme first è dato da tutti i terminali che si possono trovare all'inizio di un non-terminale.
L'insieme follow è dato da tutti i terminali che si possono trovare alla fine di un non-terminale.
Ultima modifica effettuata da pierotofy il 13/07/2011 alle 21:34