|
Для граматики G={N, S, P, S} з схемою Р:
S ® a A B | e
A ® EA b | a
B ® b B | e
E ® B | e
де N={S, A, B, E}, S = {a, b}, знайти FOLLOW1(Ai), AiÎ N.
Решение задачи.
FIRST1(a)
S | A | B | E | |
F0 | {e} | {a} | {e} | {e} |
F1 | {e, a} | {a} | {e, b} | {e} |
F2 | {e, a} | {a} | {e, b} | {e, b} |
F3 | {e, a} | {a, b} | {e, b} | {e, b} |
F4 | {e, a} | {a, b} | {e, b} | {e, b} |
S | A | B | E | |
s0(S,Ai) | {e} | – | – | – |
s1(S,Ai) | {e} | {e, b} | {e} | – |
s2(S,Ai) | {e} | {e, b} | {e} | {a, b} |
s3(S,Ai) | {e} | {e, b} | {e,a, b} | {a, b} |
s4(S,Ai) | {e} | {e, b} | {e,a, b} | {a, b} |
FOLLOW1(a)=s4(S, a) " a Î {S, A, B, E}
СП 17. Сформулюйте алгоритм побудови таблиці М(a,b) управління для LL(1)-синтаксичного аналізатора.
Для граматики G={N, S, P, S} з схемою Р:
S ® a A B c | e
A ® EA b | b
B ® b B | e
E ® a E | с
де N={S, A, B, E}, S = {a, b, c}, побудуйте таблицю управління для LL(1)-синтаксичного аналізатора.
Матрица управления представляет собой таблицу M(a,b) где a Î NÈSÈ{e}, b Î SÈ{e}
M(a,b) =
Решение задачи.
FIRST1(a)
S | A | B | E | |
F0 | {e} | {b} | {e} | {c} |
F1 | {e, a} | {b, c} | {e, b} | {a, c} |
F2 | {e, a} | {a, b, c} | {e, b} | {a, c} |
F3 | {e, a} | {a, b, c} | {e, b} | {a, c} |
FOLLOW1(a)
S | A | B | E | |
s0(S,Ai) | {e} | – | – | – |
s1(S,Ai) | {e} | {b, c} | {c} | – |
s2(S,Ai) | {e} | {b, c} | {e, c} | {a, b, c} |
s3(S,Ai) | {e} | {b, c} | {e, c} | {e, a, b, c} |
s4(S,Ai) | {e} | {b, c} | {e, c} | {e, a, b, c} |
1. S ® a A B c
2. S ® e
3. A ® EA b
4. A ® b
5. B ® b B
6. B ® e
7. E ® a E
8. E ® с
A | b | c | e | |
S | ||||
A | ||||
B | ||||
E | ||||
a | ”вытолкнуть” | |||
b | ”вытолкнуть” | |||
c | ”вытолкнуть” | |||
e | “допустить” |
Задача ТО-1
Дата добавления: 2015-09-12; просмотров: 20 | Поможем написать вашу работу | Нарушение авторских прав |