La parte nel for consiste nell'espandere le produzioni che non sono immediatamente ricorsive a sinistra, ma contengono dei non-terminali che potrebbero renderle indirettamente ricorsive. In sostanza, da regole del tipo:
A -> By
B -> x | z | w
In questo esempio, A e B sono non-terminali, mentre x, y, z e w sono stringhe di terminali e non-terminali. A questo punto, effettuando la sostituzione, si ottiene:
A -> xy | zy | wy
Ora se x, z o w contengono A come prefisso, si ha una situazione di ricorsività sinistra immediata, che è facilmente eliminabile. In caso contrario, si continua ad espandere.
Ultima modifica effettuata da Il Totem il 05/11/2012 alle 11:55 |