Professional Documents
Culture Documents
7 LLK
7 LLK
LL(к) методи
• LL(k) – входния низ се сканира Л > Д
• LL(k) – Провежда се ляв каноничен анализ
• LL(k) – СА е детерминиран, ако са известни k входни символа сочени от
сканиращия показалец.
• LL(1) – СА е детерминиран, ако е известен само 1 (текущият) входен
символ.
Задачата за СА представена като функция:
SA() = k1 k2 k3 … kn - Входния низ е аргумент на функцията.
• Функцията SA връща последователност от номера на продукции (т.е.
абстрактна форма на дървото на разбора).
LL(к) методи
Даденa KСГ: 1. E T 4. T T * F
2. E E + T 5. F a
3. T F 6. F ( E )
Низ: a+a*a
Ляв каноничен анализ
2 1 3 5 4 3
EE+TT+TF+Ta+Ta+T*F
5 5
a + F * F a + a * F a + a * a
ЛКА(a+a*a) = 2 1 3 5 4 3 5 5
SA (a+a*a) = 2 1 3 5 4 3 5 5
LL(1) метод
LL(1) парсер - Принципна схема/постановка:
Управляваща
Таблица Стек Стек
S
▽ ▽
q – граматики(s-граматики с - правила)
Пример – управл. таблица за следната q– граматика
1. S a A S SELECT(S a A S) = { a }
2. S b SELECT(S b ) ={b}
3. A c A SELECT(A c A) = { c }
4. A SELECT(A ) = FOLLOW(A) = {a, b}