Производственные правила применяются в следующем порядке:
A ->
-> βA' (apply A -> βA')
-> βαA' (apply A' -> αA')
-> βααA' (apply A' -> αA')
-> βαα (apply A' -> ε)
Дерево разбора будет выглядеть так:
A
/ \
β A'
/ \
α A'
/ \
α A'
|
ε
Удаление прямой левой рекурсии
каждое правило с прямой левой рекурсией:
A -> Aa | Ab | Ac | ... | x | y | z
заменяется на:
A -> xA' | yA' | zA' | ...
A' -> aA' | bA' | cA' | ε
, где a
, b
, c
, ..., x
, y
, z
- последовательности, которые не начинаются с A
.
Повторяйте этот процесс, пока не останется прямой рекурсии слева.