Данная таблица относится к версии грамматики приведённой выше. Управляющая таблица окончательной версии грамматики слишком велика.
Грамматика принадлежит классу LL(1)
|
N сост. |
flag_A |
flag_S |
flag_R |
flag_E |
Переход |
Множество выбора |
Действие |
|
|
0 |
1 |
34 |
{ |
|||||
|
1 |
41 |
EOF |
||||||
|
2 |
1 |
42 |
vars |
|||||
|
3 |
1 |
46 |
join |
|||||
|
4 |
50 |
do |
||||||
|
5 |
1 |
81 |
let |
|||||
|
6 |
88 |
} |
||||||
|
7 |
1 |
70 |
ident |
|||||
|
8 |
80 |
} |
||||||
|
9 |
1 |
89 |
{ |
|||||
|
10 |
92 |
let if } |
||||||
|
11 |
1 |
55 |
let |
|||||
|
12 |
1 |
62 |
if |
|||||
|
13 |
69 |
} |
||||||
|
14 |
1 |
141 |
ident const ( |
|||||
|
15 |
142 |
let |
||||||
|
16 |
111 |
( |
||||||
|
17 |
1 |
118 |
{ |
|||||
|
18 |
121 |
let |
||||||
|
19 |
1 |
93 |
else |
|||||
|
20 |
97 |
let if } |
||||||
|
21 |
1 |
103 |
, |
|||||
|
22 |
108 |
; |
||||||
|
23 |
1 |
147 |
const |
|||||
|
24 |
149 |
let |
||||||
|
25 |
1 |
98 |
op1 |
|||||
|
26 |
102 |
otn ; ) |
||||||
|
27 |
134 |
ident const ( |
||||||
|
28 |
109 |
ident const ( |
||||||
|
29 |
1 |
127 |
( |
|||||
|
30 |
1 |
130 |
ident |
|||||
|
31 |
132 |
const |
||||||
|
32 |
1 |
136 |
op2 |
|||||
|
33 |
140 |
op1 otn ; ) |
||||||
|
34 |
1 |
35 |
||||||
|
35 |
36 |
NameBlock.add (currentLexem.textOfWord); |
||||||
|
36 |
1 |
37 |
||||||
|
37 |
1 |
38 |
||||||
|
38 |
1 |
42 |
||||||
|
39 |
1 |
40 |
||||||
|
40 |
1 |
34 |
||||||
|
41 |
1 |
42 |
||||||
|
42 |
1 |
43 |
||||||
|
43 |
1 |
44 |
||||||
|
44 |
1 |
81 |
||||||
|
45 |
1 |
46 |
VectorPFR.add(StrPFR.clone()); StrPFR.removeAllElements(); |
|||||
|
46 |
1 |
47 |
||||||
|
47 |
48 |
NameBlock.remove (NameBlock.size()-1); |
||||||
|
48 |
1 |
49 |
||||||
|
49 |
1 |
70 |
||||||
|
50 |
1 |
51 |
||||||
|
51 |
1 |
52 |
||||||
|
52 |
1 |
89 |
||||||
|
53 |
1 |
55 |
||||||
|
54 |
1 |
55 |
VectorPFR.add(StrPFR.clone()); StrPFR.removeAllElements(); |
|||||
|
55 |
1 |
56 |
||||||
|
56 |
57 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
57 |
1 |
58 |
||||||
|
58 |
1 |
141 |
||||||
|
59 |
60 |
StrPFR.add("let"); |
||||||
|
60 |
1 |
61 |
||||||
|
61 |
1 |
55 |
||||||
|
62 |
1 |
63 |
||||||
|
63 |
1 |
111 |
||||||
|
64 |
65 |
StackIf .push(new Integer(++ifCnt)); StrPFR.add ("Label0_"+StackIf.peek()+":"); StrPFR.add("GF"); |
||||||
|
65 |
1 |
118 |
||||||
|
66 |
67 |
StrPFR.add ("Label1_"+StackIf.peek()+":"); StrPFR.add("GO"); |
||||||
|
67 |
1 |
93 |
||||||
|
68 |
1 |
55 |
||||||
|
69 |
1 |
70 |
||||||
|
70 |
1 |
71 |
||||||
|
71 |
1 |
72 |
||||||
|
72 |
1 |
73 |
||||||
|
73 |
1 |
74 |
||||||
|
74 |
1 |
75 |
||||||
|
75 |
1 |
76 |
||||||
|
76 |
1 |
77 |
||||||
|
77 |
1 |
103 |
||||||
|
78 |
1 |
79 |
||||||
|
79 |
1 |
70 |
||||||
|
80 |
1 |
81 |
||||||
|
81 |
1 |
82 |
||||||
|
82 |
83 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
83 |
1 |
84 |
||||||
|
84 |
1 |
147 |
||||||
|
85 |
86 |
StrPFR.add("let"); |
||||||
|
86 |
1 |
87 |
||||||
|
87 |
1 |
81 |
||||||
|
88 |
1 |
89 |
||||||
|
89 |
1 |
90 |
||||||
|
90 |
1 |
70 |
||||||
|
91 |
1 |
1 |
92 |
|||||
|
92 |
1 |
93 |
||||||
|
93 |
1 |
94 |
||||||
|
94 |
95 |
StrPFR.add ("Label0_"+StackIf.peek()+":"); |
||||||
|
95 |
1 |
118 |
||||||
|
96 |
1 |
97 |
StrPFR.add ("Label1_"+StackIf.pop()+":"); |
|||||
|
97 |
1 |
98 |
StrPFR.remove(StrPFR.size()-1); StrPFR.remove(StrPFR.size()-1); StrPFR.add ("Label0_"+StackIf.pop()+":"); |
|||||
|
98 |
99 |
StackOp.push (currentLexem.textOfWord); |
||||||
|
99 |
1 |
100 |
||||||
|
100 |
1 |
134 |
||||||
|
101 |
1 |
102 |
StrPFR.add(StackOp.pop ()); |
|||||
|
102 |
1 |
103 |
||||||
|
103 |
1 |
104 |
||||||
|
104 |
1 |
105 |
||||||
|
105 |
1 |
106 |
||||||
|
106 |
1 |
107 |
||||||
|
107 |
1 |
103 |
||||||
|
108 |
1 |
109 |
||||||
|
109 |
1 |
127 |
||||||
|
110 |
1 |
136 |
||||||
|
111 |
1 |
112 |
||||||
|
112 |
1 |
134 |
||||||
|
113 |
114 |
StackOp.push (currentLexem.textOfWord); |
||||||
|
114 |
1 |
115 |
||||||
|
115 |
1 |
134 |
||||||
|
116 |
117 |
StrPFR.add(StackOp.pop ()); |
||||||
|
117 |
1 |
1 |
118 |
|||||
|
118 |
1 |
119 |
||||||
|
119 |
1 |
55 |
||||||
|
120 |
1 |
1 |
121 |
|||||
|
121 |
1 |
122 |
||||||
|
122 |
123 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
123 |
1 |
124 |
||||||
|
124 |
1 |
141 |
||||||
|
125 |
126 |
StrPFR.add("let"); |
||||||
|
126 |
1 |
1 |
127 |
|||||
|
127 |
1 |
128 |
||||||
|
128 |
1 |
134 |
||||||
|
129 |
1 |
1 |
130 |
|||||
|
130 |
131 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
131 |
1 |
1 |
132 |
|||||
|
132 |
133 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
133 |
1 |
1 |
134 |
|||||
|
134 |
1 |
109 |
||||||
|
135 |
1 |
98 |
||||||
|
136 |
137 |
StackOp.push (currentLexem.textOfWord); |
||||||
|
137 |
1 |
138 |
||||||
|
138 |
1 |
109 |
||||||
|
139 |
1 |
140 |
StrPFR.add(StackOp.pop ()); |
|||||
|
140 |
1 |
141 |
||||||
|
141 |
1 |
134 |
||||||
|
142 |
1 |
143 |
||||||
|
143 |
144 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
144 |
1 |
145 |
||||||
|
145 |
1 |
141 |
||||||
|
146 |
1 |
147 |
StrPFR.add ("let"); |
|||||
|
147 |
148 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
148 |
1 |
1 |
149 |
|||||
|
149 |
1 |
150 |
||||||
|
150 |
151 |
StrPFR.add (currentLexem.textOfWord); |
||||||
|
151 |
1 |
152 |
||||||
|
152 |
1 |
147 |
||||||
|
153 |
1 |
154 |
StrPFR.add("let"); |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.