Относитесь к правилам формы A -> ... x ... | ... у ....
как два правила A -> ... x ... и B -> ... y ...
Форма множества S, изначально содержащая правила формы E-> ....
тогда
Set a set P to empty.
Set a set F to empty.
Repeat until S is empty
Choose element of S, and call it R
If R is in P, remove R from S
Elsif R is of the form A -> b ...
then { add b to F,
add R to P,
remove R from S}
Else (R is the form A -> B ...)
then { place all rules of form B -> ... into S
remove R from S}
End
Когда цикл завершается, F содержит токены, которые
Первый (F).
Это не учитывает пустые производства.