Изменения

Перейти к: навигация, поиск

Устранение левой рекурсии

481 байт добавлено, 00:00, 17 января 2016
Алгоритм устранения произвольной левой рекурсии: Улучшил псевдокод
Пусть <tex>N = \lbrace A_1, A_2, \ldots , A_n \rbrace</tex> {{---}} упорядоченное множество всех нетерминалов.
 
стало:
<div>
for <tex>A_i \in N</tex>
for <tex>A_j \in \{ N \mid 1 \leqslant j < i \}</tex>
for <tex>production \in \{A_i \to A_j\gamma \}</tex>
удалить <tex>production</tex>
for <tex>P \to x_i \in \{A_j \to \delta_1 | \ldots | \delta_k\}</tex>
добавить правило <tex>A_i \to x_i\gamma</tex>
устранить непосредственную левую рекурсию для <tex>A_i</tex>.
</div>
было:
<div>
for все нетерминалы <tex>A_i</tex>
54
правки

Навигация