ВУЗ:
Составители:
48
где α и β – строки терминалов и/или нетерминалов (β может быть
пустой строкой).
Необходимым условием того, чтобы грамматика обладала признаком
LL(1), является непересекаемость множеств символов-предшественников для
альтернативных правых сторон порождающих правил.
Следует проявлять осторожность в тех случаях, когда нетерминал в
начале правой части может генерировать пустую строку. Например, в
грамматике
P
→
AB
P
→
BG
A
→
aA
A
→
ε
B
→
bB
B
→
c
имеем S (AB) = {a, b ,c}, причем b и c входят в множество, т.к. А может
генерировать пустую строку; S (BG) = {b, c} – множества пересекаются,
следовательно грамматика не будет LL(1).
Рассмотрим также грамматику с порождающими правилами
T
→
AB
A
→
PQ
A
→
BC
P
→
pP
P
→
ε
Q
→
qQ
Q
→
ε
B
→
bB
B
→
е
C
→
cC
C
→
f
для которой S(PQ) = {p, q} и S(BC) = {b, e}
Однако так как PQ может генерировать пустую строку, следующим
просматриваемым символом при применении порождающего правила A
→
PQ может быть b или e (вероятные символы, следующие за A), и одного
следующего просматриваемого символа недостаточно, чтобы различить две
альтернативные правые части для A (b и e являются также символами
предшественниками для BC).
Поэтому вводится понятие направляющих символов
, которые
определяются так:
48
где α и β – строки терминалов и/или нетерминалов (β может быть
пустой строкой).
Необходимым условием того, чтобы грамматика обладала признаком
LL(1), является непересекаемость множеств символов-предшественников для
альтернативных правых сторон порождающих правил.
Следует проявлять осторожность в тех случаях, когда нетерминал в
начале правой части может генерировать пустую строку. Например, в
грамматике
P → AB A→ε
P → BG B → bB
A → aA B→c
имеем S (AB) = {a, b ,c}, причем b и c входят в множество, т.к. А может
генерировать пустую строку; S (BG) = {b, c} – множества пересекаются,
следовательно грамматика не будет LL(1).
Рассмотрим также грамматику с порождающими правилами
T → AB Q→ε
A → PQ B → bB
A → BC B→е
P → pP C → cC
P→ε C→f
Q → qQ
для которой S(PQ) = {p, q} и S(BC) = {b, e}
Однако так как PQ может генерировать пустую строку, следующим
просматриваемым символом при применении порождающего правила A →
PQ может быть b или e (вероятные символы, следующие за A), и одного
следующего просматриваемого символа недостаточно, чтобы различить две
альтернативные правые части для A (b и e являются также символами
предшественниками для BC).
Поэтому вводится понятие направляющих символов, которые
определяются так:
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »
