Данная таблица относится к версии грамматики приведённой выше. Управляющая таблица окончательной версии грамматики слишком велика.
Грамматика принадлежит классу 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).
Ссылка на скачивание - внизу страницы.