1,2 {q,1,S,l} |¾(1) {q,1,T,S1} |
раскроем нетерминал T |
|||||
3 |¾(1) {q,1,E,S1T1} |
раскроем нетерминал E |
|||||
4|¾(1) {q,1,(S),S1T1E1} |
первый символ – не “(” |
|||||
5|¾(4) {b,1,(S),S1T1E1} |
выберем след. альтернативу для E |
|||||
6|¾(6,1) {q,1,a,S1T1E2} |
первый символ совпал, сдвиг головки |
|||||
7|¾(2) {q,2,l,S1T1E2a} |
в стеке пусто, но i¹n+1 – возврат |
|||||
8|¾(3) {b,2,l,S1T1E2a} |
возвращаем “a” из стека возврата в L1 |
|||||
9|¾(5) {b,1,a,S1T1E2} |
выберем след. альтернативу для E |
|||||
10|¾(6,1) {q,1,b,S1T1E3} |
первый символ – не “b” |
|||||
11|¾(4) {b,1,b,S1T1E3} |
вернем E из L2 в L1 |
|||||
12|¾(6,3) {b,1,E,S1T1} |
выберем след. альтернативу для T |
|||||
13|¾(6,1) {q,1,EF,S1T2} |
раскроем нетерминал E |
|||||
14|¾(1) {q,1,(S)F,S1T2E1} |
первый символ – не “(” |
|||||
15|¾(4) {b,1,(S)F,S1T2E1} |
выберем след. альтернативу для E |
|||||
16|¾(6,1) {q,1,aF,S1T2E2} |
первый символ совпал, сдвиг головки |
|||||
17|¾(2) {q,2,F,S1T2E2a} |
раскроем нетерминал F |
|||||
18|¾(1) {q,2,*E,S1T2E2aF1} |
второй символ – не “*” |
|||||
19|¾(4) {b,2,*E,S1T2E2aF1} |
выберем след. альтернативу для F |
|||||
20|¾(6,1) {q,2,/E,S1T2E2aF2} |
второй символ совпал, перепишем в L2 |
|||||
21|¾(2) {q,3,E,S1T2E2aF2/} |
раскроем нетерминал E |
|||||
22|¾(1) {q,3,(S),S1T2E2aF2/E1} |
третий символ совпал, перепишем в L2 |
|||||
23|¾(2) {q,4,S),S1T2E2aF2/E1(} |
раскроем нетерминал S |
|||||
24|¾(1) {q,4,T),S1T2E2aF2/E1(S1} |
раскроем нетерминал T |
|||||
25|¾(1) {q,4,E),S1T2E2aF2/E1(S1T1} |
раскроем нетерминал E |
|||||
26|¾(1) {q,4,(S)),S1T2E2aF2/E1(S1T1E1} |
4-й символ – не “(” |
|||||
27|¾(4) {b,4,(S)),S1T2E2aF2/E1(S1T1E1} |
выберем след. альтернативу для E |
|||||
28|¾(6,1) {q,4,a),S1T2E2aF2/E1(S1T1E2} |
4-й символ совпал, переносим в L2 |
|||||
29|¾(2) {q,5,),S1T2E2aF2/E1(S1T1E2a} |
5-й символ не совпал |
|||||
30|¾(4) {b,5,),S1T2E2aF2/E1(S1T1E2a} |
в стеке L2 – терминал, вернём его |
|||||
31|¾(5) {b,4,a),S1T2E2aF2/E1(S1T1E2} |
выберем след. альтернативу для E |
|||||
32|¾(6,1) {q,4,b),S1T2E2aF2/E1(S1T1E3} |
4-й символ не совпал |
|||||
33|¾(4) {b,4,b),S1T2E2aF2/E1(S1T1E3} |
нет альтернатив для E |
|||||
34|¾(6,3) {b,4,E),S1T2E2aF2/E1(S1T1} |
выберем след. альтернативу для T |
|||||
35|¾(6,1) {q,4,EF),S1T2E2aF2/E1(S1T2} |
раскроем нетерминал E |
|||||
36|¾(1) {q,4,(S)F),S1T2E2aF2/E1(S1T2E1} |
4-й символ не совпал |
|||||
37|¾(4) {b,4,(S)F),S1T2E2aF2/E1(S1T2E1} |
выберем след. альтернативу для E |
|||||
38|¾(6,1) {q,4,aF),S1T2E2aF2/E1(S1T2E2} |
4-й символ совпал |
|||||
39|¾(2) {q,5,F),S1T2E2aF2/E1(S1T2E2a} |
раскроем нетерминал F |
|||||
40|¾(1) {q,5,*E),S1T2E2aF2/E1(S1T2E2aF1} |
5-й символ не совпал |
|||||
41|¾(4) {b,5,*E),S1T2E2aF2/E1(S1T2E2aF1} |
выберем след. альтернативу для F |
|||||
42|¾(6,1) {q,5,/E),S1T2E2aF2/E1(S1T2E2aF2} |
5-й символ не совпал |
|||||
43|¾(4) {b,5,/E),S1T2E2aF2/E1(S1T2E2aF2} |
выберем след. альтерн. для F |
|||||
44|¾(6,1) {q,5,*EF),S1T2E2aF2/E1(S1T2E2aF3} |
5-й символ не совпал |
|||||
45|¾(4) {b,5,*EF),S1T2E2aF2/E1(S1T2E2aF3} |
выберем след. альтерн. для F |
|||||
46|¾(6,1) {q,5,/EF),S1T2E2aF2/E1(S1T2E2aF4} |
5-й символ не совпал |
|||||
47|¾(4) {b,5,/EF),S1T2E2aF2/E1(S1T2E2aF4} |
для F нет альтернативы |
|||||
48|¾(6,3) {b,5,F),S1T2E2aF2/E1(S1T2E2a} |
возврат по символу |
|||||
49|¾(5) {b,4,aF),S1T2E2aF2/E1(S1T2E2} |
выберем след. альтернативу для E |
|||||
50|¾(6,1) {q,4,bF),S1T2E2aF2/E1(S1T2E3} |
4-й символ не совпал |
|||||
51|¾(4) {b,4,bF),S1T2E2aF2/E1(S1T2E3} |
вернем E из L2 в L1 |
|||||
52|¾(6,3) {b,4,EF),S1T2E2aF2/E1(S1T2} |
вернем T из L2 в L1 |
|||||
53|¾(6,3) {b,4,T),S1T2E2aF2/E1(S1} |
выберем след. альтернативу для S |
|||||
54|¾(6,1) {q,4,TR),S1T2E2aF2/E1(S2} |
раскроем нетерминал T |
|||||
55|¾(1) {q,4,ER),S1T2E2aF2/E1(S2T1} |
раскроем нетерминал E |
|||||
56|¾(1) {q,4,(S)R),S1T2E2aF2/E1(S2T1E1} |
4-й символ не совпал |
|||||
57|¾(4) {b,4,(S)R),S1T2E2aF2/E1(S2T1E1} |
выберем след. альтернативу для E |
|||||
58|¾(6,1) {q,4,aR),S1T2E2aF2/E1(S2T1E2} |
4-й символ совпал, переносим в L2 |
|||||
59|¾(2) {q,5,R),S1T2E2aF2/E1(S2T1E2a} |
раскроем нетерминал R |
|||||
60|¾(1) {q,5,+T),S1T2E2aF2/E1(S2T1E2aR1} |
5-й символ не совпал |
|||||
61|¾(4) {b,5,+T),S1T2E2aF2/E1(S2T1E2aR1} |
выберем след. альтернативу для R |
|||||
62|¾(6,1) {q,5,–T),S1T2E2aF2/E1(S2T1E2aR2} |
5-й символ совпал, переносим в L2 |
|||||
63|¾(2) {q,6,T),S1T2E2aF2/E1(S2T1E2aR2–} |
раскроем нетерминал T |
|||||
64|¾(1) {q,6,E),S1T2E2aF2/E1(S2T1E2aR2–T1} |
раскроем нетерминал E |
|||||
65|¾(1) {q,6,(S)),S1T2E2aF2/E1(S2T1E2aR2–T1E1} |
6-й символ не совпал |
|||||
66|¾(4) {b,6,(S)),S1T2E2aF2/E1(S2T1E2aR2–T1E1} |
выберем след. альтер. для E |
|||||
67|¾(6,1) {q,6,a),S1T2E2aF2/E1(S2T1E2aR2–T1E2} |
6-й символ не совпал |
|||||
68|¾(4) {b,6,a),S1T2E2aF2/E1(S2T1E2aR2–T1E2} |
выберем след. альтер. для E |
|||||
69|¾(6,1) {q,6,b),S1T2E2aF2/E1(S2T1E2aR2–T1E3} |
6-й символ совпал |
|||||
70|¾(2) {q,7,),S1T2E2aF2/E1(S2T1E2aR2–T1E3b} |
7-й символ совпал |
|||||
71|¾(2) {q,8,l,S1T2E2aF2/E1(S2T1E2aR2–T1E3b)}|¾(3) |
Разбор закончен stop(+) |
|||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.