Professional Documents
Culture Documents
Contents Ps
Contents Ps
Contents Ps
Preface
........................................................
11
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parsing as a craft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The approach used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outline of the contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The annotated bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
14
14
15
15
16
16
16
17
18
22
24
25
27
28
28
32
37
40
41
41
42
45
45
46
47
47
49
51
1
1.1
1.2
1.3
1.4
2
2.1
Table of contents
2.7
54
54
56
56
56
57
57
57
57
58
59
60
Introduction to parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Various kinds of ambiguity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Linearization of the parse tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Two ways to parse a sentence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Top-down parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Bottom-up parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Applicability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4
Non-deterministic automata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Constructing the NDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Constructing the control mechanism . . . . . . . . . . . . . . . . . . . . . . . .
3.5
Recognition and parsing for Type 0 to Type 4 grammars . . . . . . . . . . . .
3.5.1 Time requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.2 Type 0 and Type 1 grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.3 Type 2 grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.4 Type 3 grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.5 Type 4 grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6
An overview of parsing methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Directionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.2 Search techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.3 General directional methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.4 Linear methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.5 Linear top-down and bottom-up methods . . . . . . . . . . . . . . . . . . . .
3.6.6 Almost deterministic methods . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.7 Left-corner parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
62
64
64
65
66
67
68
69
69
70
70
70
72
73
74
74
74
75
76
76
78
79
79
79
81
82
82
85
88
89
92
94
3.1
3.2
3.3
4.1
Table of contents
4.2.4
4.2.5
4.2.6
4.2.7
4.2.8
106
106
106
107
108
109
110
111
113
114
116
119
119
121
125
125
127
128
130
131
133
136
139
144
146
146
147
148
148
149
149
155
156
157
159
161
7.1
8
8.1
Table of contents
8.2
LL(1) grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1 LL(1) grammars without -rules . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.2 LL(1) grammars with -rules . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.3 LL(1) versus strong-LL(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.4 Full LL(1) parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.5 Solving LL(1) conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.6 LL(1) and recursive descent . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3
LL(k) grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4
Extended LL(1) grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
168
168
170
174
175
178
180
181
183
184
185
186
187
190
192
194
196
197
198
198
199
200
201
205
205
210
211
213
214
216
217
218
219
219
220
220
220
221
221
221
221
222
223
223
226
226
Table of contents
9.9
9.10
10
Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.1 Detection versus recovery versus correction . . . . . . . . . . . . . . . . . . . .
10.2 Parsing techniques and error detection . . . . . . . . . . . . . . . . . . . . . . . .
10.2.1 Error detection in non-directional parsing methods . . . . . . . . . . . .
10.2.2 Error detection in finite-state automata . . . . . . . . . . . . . . . . . . . . .
10.2.3 Error detection in general directional top-down parsers . . . . . . . . .
10.2.4 Error detection in general directional bottom-up parsers . . . . . . . .
10.2.5 Error detection in deterministic top-down parsers . . . . . . . . . . . . .
10.2.6 Error detection in deterministic bottom-up parsers . . . . . . . . . . . . .
10.3 Recovering from errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Global error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5 Ad hoc methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.1 Error productions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.2 Empty table slots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.3 Error tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.6 Regional error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.6.1 Backward/forward move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7 Local error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7.1 Panic mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7.2 FOLLOW set error recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7.3 Acceptable-sets derived from continuations . . . . . . . . . . . . . . . . . .
10.7.4 Insertion-only error correction . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7.5 Locally least-cost error recovery . . . . . . . . . . . . . . . . . . . . . . . . . .
10.8 Suffix parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
229
229
230
230
231
231
232
232
232
233
233
237
237
237
238
238
238
240
240
241
241
244
246
246
11
Comparative survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1 Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 General parsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.1 Unger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.2 Earley . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.3 Tomita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Linear-time parsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3.2 Strong-LL(1) versus LALR(1) . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3.3 Table size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
249
249
250
250
250
250
251
251
251
251
252
12
253
253
258
260
260
13
Annotated bibliography
....................................
264
10
Table of contents
13.1
13.2
13.3
13.4
13.5
13.6
13.7
13.8
13.9
13.10
13.11
13.12
13.13
13.14
Miscellaneous literature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unrestricted PS and CS grammars . . . . . . . . . . . . . . . . . . . . . . . . . . .
Van Wijngaarden grammars and affix grammars . . . . . . . . . . . . . . . . .
General context-free parsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LL parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LR parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Left-corner parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Precedence and bounded-context parsing . . . . . . . . . . . . . . . . . . . . . .
Finite-state automata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Natural language handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transformations on grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General books on parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Some books on computer science . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Author index
Index
265
269
271
273
279
282
292
294
299
300
302
310
310
312
..................................................
313
........................................................
317