ВУЗ:
Составители:
47
разбираются слева направо (Left), используются самые правые выводы
(Right), а варианты порождающих правил выбираются с помощью одного
предварительно просмотренного символа. Более подробно LR-грамматики
будут рассмотрены в параграфе, посвященном методам восходящего разбора.
Даже если правая часть порождающего правила и не начинается с
терминала, каждый вариант какого-либо нетерминального символа может
дать начало только
тем строкам, которые начинаются с одного из
конкретного множества терминалов. Например, на основании порождающих
правил
S
→
RY
S
→
TZ
R
→
paXb
T
→
qaYd
можно вывести, что если для R и T нет других порождающих правил,
порождающее правило S
→
RY желательно применять в разборе сверху вниз
(нисходящий разбор – от начального символа – к строке) только когда
предварительно просматриваемым символом является p. Аналогично
порождающее правило S
→
TZ рекомендуется в тех случаях, когда таким
символом окажется q.
Это приводит к идее множеств символов-предшественников,
определяемых как
a
∈
S(A)
⇔
A
⇒
aα,
где A – нетерминальный символ, α – строка терминалов и/или
нетерминалов, возможно пустая, а S(A) обозначает множество символов-
предшественников A. В грамматике с порождающими правилами
P
→
Aс
P
→
Bd
A
→
a
A
→
aA
B
→
b
B
→
bB
a и b – символы-предшественники для P. Определим также множество
символов-предшественников для строки терминалов и/или нетерминалов:
a
∈
S(α)
⇔
α
⇒
aβ,
47
разбираются слева направо (Left), используются самые правые выводы
(Right), а варианты порождающих правил выбираются с помощью одного
предварительно просмотренного символа. Более подробно LR-грамматики
будут рассмотрены в параграфе, посвященном методам восходящего разбора.
Даже если правая часть порождающего правила и не начинается с
терминала, каждый вариант какого-либо нетерминального символа может
дать начало только тем строкам, которые начинаются с одного из
конкретного множества терминалов. Например, на основании порождающих
правил
S → RY R → paXb
S → TZ T → qaYd
можно вывести, что если для R и T нет других порождающих правил,
порождающее правило S → RY желательно применять в разборе сверху вниз
(нисходящий разбор – от начального символа – к строке) только когда
предварительно просматриваемым символом является p. Аналогично
порождающее правило S → TZ рекомендуется в тех случаях, когда таким
символом окажется q.
Это приводит к идее множеств символов-предшественников,
определяемых как
a ∈ S(A) ⇔ A ⇒ aα,
где A – нетерминальный символ, α – строка терминалов и/или
нетерминалов, возможно пустая, а S(A) обозначает множество символов-
предшественников A. В грамматике с порождающими правилами
P → Aс A → aA
P → Bd B→b
A→a B → bB
a и b – символы-предшественники для P. Определим также множество
символов-предшественников для строки терминалов и/или нетерминалов:
a∈ S(α) ⇔ α ⇒ aβ,
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
