124 |
|
|
125 |
|
|
126 |
|
|
127 |
#define YYFINAL 94 |
#define YYFINAL 95 |
128 |
#define YYFLAG -32768 |
#define YYFLAG -32768 |
129 |
#define YYNTBASE 41 |
#define YYNTBASE 41 |
130 |
|
|
131 |
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ |
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ |
132 |
#define YYTRANSLATE(x) ((unsigned)(x) <= 293 ? yytranslate[x] : 68) |
#define YYTRANSLATE(x) ((unsigned)(x) <= 293 ? yytranslate[x] : 69) |
133 |
|
|
134 |
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ |
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ |
135 |
static const char yytranslate[] = |
static const char yytranslate[] = |
171 |
{ |
{ |
172 |
0, 0, 1, 7, 8, 11, 13, 15, 17, 21, |
0, 0, 1, 7, 8, 11, 13, 15, 17, 21, |
173 |
23, 25, 28, 32, 34, 38, 40, 44, 46, 49, |
23, 25, 28, 32, 34, 38, 40, 44, 46, 49, |
174 |
51, 53, 55, 57, 58, 62, 65, 66, 70, 71, |
51, 53, 55, 57, 59, 62, 66, 67, 71, 72, |
175 |
76, 80, 81, 86, 88, 90, 92, 93, 95, 97, |
76, 77, 82, 83, 88, 90, 92, 94, 95, 97, |
176 |
100, 102, 105, 107, 109, 112, 115, 119, 121, 124, |
99, 102, 104, 107, 109, 111, 114, 117, 121, 123, |
177 |
126, 129, 130, 136, 138, 142, 143, 146, 149, 153, |
126, 128, 131, 132, 138, 140, 144, 145, 148, 151, |
178 |
155, 157, 159, 161, 163, 165, 166, 169, 170 |
155, 157, 159, 161, 163, 165, 167, 168, 171, 172 |
179 |
}; |
}; |
180 |
static const short yyrhs[] = |
static const short yyrhs[] = |
181 |
{ |
{ |
182 |
-1, 42, 43, 37, 57, 66, 0, 0, 43, 44, |
-1, 42, 43, 37, 58, 67, 0, 0, 43, 44, |
183 |
0, 45, 0, 38, 0, 26, 0, 22, 65, 65, |
0, 45, 0, 38, 0, 26, 0, 22, 66, 66, |
184 |
0, 24, 0, 18, 0, 11, 6, 0, 20, 32, |
0, 24, 0, 18, 0, 11, 6, 0, 20, 32, |
185 |
65, 0, 27, 0, 21, 32, 65, 0, 28, 0, |
66, 0, 27, 0, 21, 32, 66, 0, 28, 0, |
186 |
19, 32, 65, 0, 23, 0, 29, 65, 0, 30, |
19, 32, 66, 0, 23, 0, 29, 66, 0, 30, |
187 |
0, 17, 0, 25, 0, 49, 0, 0, 8, 46, |
0, 17, 0, 25, 0, 50, 0, 46, 0, 12, |
188 |
56, 0, 12, 62, 0, 0, 7, 47, 56, 0, |
63, 0, 10, 40, 68, 0, 0, 8, 47, 57, |
189 |
0, 9, 31, 48, 53, 0, 10, 40, 67, 0, |
0, 0, 7, 48, 57, 0, 0, 9, 31, 49, |
190 |
0, 51, 52, 50, 54, 0, 13, 0, 14, 0, |
54, 0, 0, 52, 53, 51, 55, 0, 13, 0, |
191 |
15, 0, 0, 31, 0, 36, 0, 53, 36, 0, |
14, 0, 15, 0, 0, 31, 0, 36, 0, 54, |
192 |
62, 0, 54, 62, 0, 31, 0, 36, 0, 36, |
36, 0, 63, 0, 55, 63, 0, 31, 0, 36, |
193 |
6, 0, 36, 64, 0, 36, 6, 64, 0, 55, |
0, 36, 6, 0, 36, 65, 0, 36, 6, 65, |
194 |
0, 56, 55, 0, 58, 0, 57, 58, 0, 0, |
0, 56, 0, 57, 56, 0, 59, 0, 58, 59, |
195 |
36, 34, 59, 60, 33, 0, 61, 0, 60, 35, |
0, 0, 36, 34, 60, 61, 33, 0, 62, 0, |
196 |
61, 0, 0, 61, 62, 0, 61, 63, 0, 61, |
61, 35, 62, 0, 0, 62, 63, 0, 62, 64, |
197 |
16, 62, 0, 36, 0, 64, 0, 5, 0, 40, |
0, 62, 16, 63, 0, 36, 0, 65, 0, 5, |
198 |
0, 4, 0, 4, 0, 0, 37, 39, 0, 0, |
0, 40, 0, 4, 0, 4, 0, 0, 37, 39, |
199 |
33, 0 |
0, 0, 33, 0 |
200 |
}; |
}; |
201 |
|
|
202 |
#endif |
#endif |
205 |
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
206 |
static const short yyrline[] = |
static const short yyrline[] = |
207 |
{ |
{ |
208 |
0, 132, 132, 140, 142, 145, 147, 151, 152, 153, |
0, 134, 134, 147, 149, 152, 154, 155, 156, 157, |
209 |
154, 155, 156, 157, 158, 159, 160, 161, 162, 163, |
158, 159, 160, 161, 162, 163, 164, 165, 166, 167, |
210 |
164, 165, 168, 170, 170, 175, 179, 179, 184, 184, |
168, 169, 172, 174, 175, 179, 187, 187, 193, 193, |
211 |
188, 196, 196, 203, 205, 206, 209, 211, 215, 217, |
198, 198, 204, 204, 211, 213, 214, 217, 219, 223, |
212 |
221, 227, 236, 241, 246, 252, 258, 268, 271, 275, |
225, 229, 235, 243, 248, 253, 259, 265, 275, 278, |
213 |
277, 280, 280, 285, 287, 290, 293, 295, 297, 301, |
287, 289, 292, 292, 297, 299, 302, 305, 307, 309, |
214 |
303, 304, 307, 313, 322, 330, 335, 341, 343 |
313, 315, 316, 319, 325, 334, 342, 347, 353, 355 |
215 |
}; |
}; |
216 |
#endif |
#endif |
217 |
|
|
229 |
"\"%pure-parser\"", "\"%defines\"", "\"%yacc\"", "\"%debug\"", |
"\"%pure-parser\"", "\"%defines\"", "\"%yacc\"", "\"%debug\"", |
230 |
"\"%locations\"", "\"%no-lines\"", "\"%skeleton\"", "\"%token-table\"", |
"\"%locations\"", "\"%no-lines\"", "\"%skeleton\"", "\"%token-table\"", |
231 |
"TYPE", "\"=\"", "\";\"", "\":\"", "\"|\"", "\"identifier\"", "\"%%\"", |
"TYPE", "\"=\"", "\";\"", "\":\"", "\"|\"", "\"identifier\"", "\"%%\"", |
232 |
"PROLOGUE", "EPILOGUE", "BRACED_CODE", "input", "@1", "directives", |
"PROLOGUE", "EPILOGUE", "BRACED_CODE", "input", "@1", "declarations", |
233 |
"directive", "grammar_directives", "@2", "@3", "@4", |
"declaration", "grammar_declaration", "symbol_declaration", "@2", "@3", |
234 |
"precedence_directives", "@5", "precedence_directive", "type.opt", |
"@4", "precedence_declaration", "@5", "precedence_declarator", |
235 |
"nterms_to_type.1", "terms_to_prec.1", "symbol_def", "symbol_defs.1", |
"type.opt", "nterms_to_type.1", "terms_to_prec.1", "symbol_def", |
236 |
"gram", "rules", "@6", "rhses.1", "rhs", "symbol", "action", |
"symbol_defs.1", "grammar", "rules", "@6", "rhses.1", "rhs", "symbol", |
237 |
"string_as_id", "string_content", "epilogue.opt", "semi_colon_opt", 0 |
"action", "string_as_id", "string_content", "epilogue.opt", |
238 |
|
"semi_colon_opt", 0 |
239 |
}; |
}; |
240 |
#endif |
#endif |
241 |
|
|
244 |
{ |
{ |
245 |
0, 42, 41, 43, 43, 44, 44, 44, 44, 44, |
0, 42, 41, 43, 43, 44, 44, 44, 44, 44, |
246 |
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, |
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, |
247 |
44, 44, 45, 46, 45, 45, 47, 45, 48, 45, |
44, 44, 45, 45, 45, 45, 47, 46, 48, 46, |
248 |
45, 50, 49, 51, 51, 51, 52, 52, 53, 53, |
49, 46, 51, 50, 52, 52, 52, 53, 53, 54, |
249 |
54, 54, 55, 55, 55, 55, 55, 56, 56, 57, |
54, 55, 55, 56, 56, 56, 56, 56, 57, 57, |
250 |
57, 59, 58, 60, 60, 61, 61, 61, 61, 62, |
58, 58, 60, 59, 61, 61, 62, 62, 62, 62, |
251 |
62, 62, 63, 64, 65, 66, 66, 67, 67 |
63, 63, 63, 64, 65, 66, 67, 67, 68, 68 |
252 |
}; |
}; |
253 |
|
|
254 |
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
256 |
{ |
{ |
257 |
0, 0, 5, 0, 2, 1, 1, 1, 3, 1, |
0, 0, 5, 0, 2, 1, 1, 1, 3, 1, |
258 |
1, 2, 3, 1, 3, 1, 3, 1, 2, 1, |
1, 2, 3, 1, 3, 1, 3, 1, 2, 1, |
259 |
1, 1, 1, 0, 3, 2, 0, 3, 0, 4, |
1, 1, 1, 1, 2, 3, 0, 3, 0, 3, |
260 |
3, 0, 4, 1, 1, 1, 0, 1, 1, 2, |
0, 4, 0, 4, 1, 1, 1, 0, 1, 1, |
261 |
1, 2, 1, 1, 2, 2, 3, 1, 2, 1, |
2, 1, 2, 1, 1, 2, 2, 3, 1, 2, |
262 |
2, 0, 5, 1, 3, 0, 2, 2, 3, 1, |
1, 2, 0, 5, 1, 3, 0, 2, 2, 3, |
263 |
1, 1, 1, 1, 1, 0, 2, 0, 1 |
1, 1, 1, 1, 1, 1, 0, 2, 0, 1 |
264 |
}; |
}; |
265 |
|
|
266 |
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE |
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE |
268 |
error. */ |
error. */ |
269 |
static const short yydefact[] = |
static const short yydefact[] = |
270 |
{ |
{ |
271 |
1, 3, 0, 26, 23, 0, 0, 0, 0, 33, |
1, 3, 0, 28, 26, 0, 0, 0, 0, 34, |
272 |
34, 35, 20, 10, 0, 0, 0, 0, 17, 9, |
35, 36, 20, 10, 0, 0, 0, 0, 17, 9, |
273 |
21, 7, 13, 15, 0, 19, 0, 6, 4, 5, |
21, 7, 13, 15, 0, 19, 0, 6, 4, 5, |
274 |
22, 36, 0, 0, 28, 67, 11, 63, 61, 59, |
23, 22, 37, 0, 0, 30, 68, 11, 64, 62, |
275 |
25, 60, 0, 0, 0, 64, 0, 18, 0, 65, |
60, 24, 61, 0, 0, 0, 65, 0, 18, 0, |
276 |
49, 37, 31, 42, 43, 47, 27, 24, 0, 68, |
66, 50, 38, 32, 43, 44, 48, 29, 27, 0, |
277 |
30, 16, 12, 14, 8, 51, 0, 50, 2, 0, |
69, 25, 16, 12, 14, 8, 52, 0, 51, 2, |
278 |
44, 45, 48, 38, 29, 55, 66, 32, 40, 46, |
0, 45, 46, 49, 39, 31, 56, 67, 33, 41, |
279 |
39, 0, 53, 41, 52, 55, 0, 62, 56, 57, |
47, 40, 0, 54, 42, 53, 56, 0, 63, 57, |
280 |
54, 58, 0, 0, 0 |
58, 55, 59, 0, 0, 0 |
281 |
}; |
}; |
282 |
|
|
283 |
static const short yydefgoto[] = |
static const short yydefgoto[] = |
284 |
{ |
{ |
285 |
92, 1, 2, 28, 29, 33, 32, 58, 30, 69, |
93, 1, 2, 28, 29, 30, 34, 33, 59, 31, |
286 |
31, 52, 74, 77, 55, 56, 49, 50, 75, 81, |
70, 32, 53, 75, 78, 56, 57, 50, 51, 76, |
287 |
82, 88, 89, 41, 46, 68, 60 |
82, 83, 89, 90, 42, 47, 69, 61 |
288 |
}; |
}; |
289 |
|
|
290 |
static const short yypact[] = |
static const short yypact[] = |
291 |
{ |
{ |
292 |
-32768,-32768, 72,-32768,-32768, -22, -29, 8, -1,-32768, |
-32768,-32768, 31,-32768,-32768, -22, -29, 8, -1,-32768, |
293 |
-32768,-32768,-32768,-32768, -16, -14, -11, 22,-32768,-32768, |
-32768,-32768,-32768,-32768, -16, -14, -11, 19,-32768,-32768, |
294 |
-32768,-32768,-32768,-32768, 22,-32768, -6,-32768,-32768,-32768, |
-32768,-32768,-32768,-32768, 19,-32768, -9,-32768,-32768,-32768, |
295 |
-32768, 0, -24, -24,-32768, 1,-32768,-32768,-32768,-32768, |
-32768,-32768, 0, -24, -24,-32768, 1,-32768,-32768,-32768, |
296 |
-32768,-32768, 22, 22, 22,-32768, 22,-32768, -2, -17, |
-32768,-32768,-32768, 19, 19, 19,-32768, 19,-32768, -2, |
297 |
-32768,-32768,-32768,-32768, 4,-32768, -24, -24, 2,-32768, |
-17,-32768,-32768,-32768,-32768, 4,-32768, -24, -24, 11, |
298 |
-32768,-32768,-32768,-32768,-32768,-32768, 3,-32768,-32768, -1, |
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 24,-32768,-32768, |
299 |
32,-32768,-32768,-32768, 5,-32768,-32768, -1,-32768,-32768, |
-1, 32,-32768,-32768,-32768, 28,-32768,-32768, -1,-32768, |
300 |
-32768, -18, -3,-32768,-32768,-32768, -1,-32768,-32768,-32768, |
-32768,-32768, -18, -3,-32768,-32768,-32768, -1,-32768,-32768, |
301 |
-3,-32768, 39, 40,-32768 |
-32768, -3,-32768, 65, 66,-32768 |
302 |
}; |
}; |
303 |
|
|
304 |
static const short yypgoto[] = |
static const short yypgoto[] = |
305 |
{ |
{ |
306 |
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, |
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, |
307 |
-32768,-32768,-32768,-32768, -28, 10,-32768, -5,-32768,-32768, |
-32768,-32768,-32768,-32768,-32768, -28, 33,-32768, 21,-32768, |
308 |
-40, -8,-32768, -48, -19,-32768,-32768 |
-32768, -13, -8,-32768, -49, -19,-32768,-32768 |
309 |
}; |
}; |
310 |
|
|
311 |
|
|
312 |
#define YYLAST 110 |
#define YYLAST 79 |
313 |
|
|
314 |
|
|
315 |
static const short yytable[] = |
static const short yytable[] = |
316 |
{ |
{ |
317 |
40, 37, 38, 37, 38, 47, 71, 53, 37, 34, |
41, 38, 39, 38, 39, 48, 72, 54, 38, 35, |
318 |
70, 35, 54, 86, 36, 84, 42, 85, 43, 48, |
71, 36, 55, 87, 37, 85, 43, 86, 44, 49, |
319 |
66, 44, 79, 61, 62, 63, 45, 64, 72, 72, |
67, 45, 80, 46, 62, 63, 64, 49, 65, 73, |
320 |
48, 51, 65, 39, 59, 39, 37, 87, 73, 93, |
73, 52, 66, 40, 60, 40, 38, 88, 3, 4, |
321 |
94, 80, 76, 57, 67, 90, 0, 0, 0, 0, |
5, 6, 7, 8, 9, 10, 11, 74, 12, 13, |
322 |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, |
323 |
0, 78, 0, 0, 0, 0, 0, 0, 0, 83, |
24, 25, 79, 77, 81, 94, 95, 58, 26, 27, |
324 |
0, 0, 0, 0, 0, 0, 0, 0, 91, 3, |
84, 68, 0, 91, 0, 0, 0, 0, 0, 92 |
|
4, 5, 6, 7, 8, 9, 10, 11, 0, 12, |
|
|
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, |
|
|
23, 24, 25, 0, 0, 0, 0, 0, 0, 26, |
|
|
27 |
|
325 |
}; |
}; |
326 |
|
|
327 |
static const short yycheck[] = |
static const short yycheck[] = |
328 |
{ |
{ |
329 |
8, 4, 5, 4, 5, 24, 54, 31, 4, 31, |
8, 4, 5, 4, 5, 24, 55, 31, 4, 31, |
330 |
6, 40, 36, 16, 6, 33, 32, 35, 32, 36, |
6, 40, 36, 16, 6, 33, 32, 35, 32, 36, |
331 |
37, 32, 70, 42, 43, 44, 4, 46, 56, 57, |
37, 32, 71, 4, 43, 44, 45, 36, 47, 57, |
332 |
36, 31, 34, 36, 33, 36, 4, 40, 36, 0, |
58, 31, 34, 36, 33, 36, 4, 40, 7, 8, |
333 |
0, 36, 39, 33, 49, 85, -1, -1, -1, -1, |
9, 10, 11, 12, 13, 14, 15, 36, 17, 18, |
334 |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, |
335 |
-1, 69, -1, -1, -1, -1, -1, -1, -1, 77, |
29, 30, 70, 39, 36, 0, 0, 34, 37, 38, |
336 |
-1, -1, -1, -1, -1, -1, -1, -1, 86, 7, |
78, 50, -1, 86, -1, -1, -1, -1, -1, 87 |
|
8, 9, 10, 11, 12, 13, 14, 15, -1, 17, |
|
|
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, |
|
|
28, 29, 30, -1, -1, -1, -1, -1, -1, 37, |
|
|
38 |
|
337 |
}; |
}; |
338 |
#define YYPURE 1 |
#define YYPURE 1 |
339 |
|
|
1045 |
switch (yyn) { |
switch (yyn) { |
1046 |
|
|
1047 |
case 1: |
case 1: |
1048 |
#line 132 "parse-gram.y" |
#line 134 "parse-gram.y" |
1049 |
{ LOCATION_RESET (yylloc); } |
{ LOCATION_RESET (yylloc); } |
1050 |
break; |
break; |
1051 |
case 2: |
case 2: |
1052 |
#line 134 "parse-gram.y" |
#line 136 "parse-gram.y" |
1053 |
{ |
{ |
1054 |
yycontrol->errcode = 0; |
yycontrol->errcode = 0; |
1055 |
epilogue_set (yyvsp[0].string, yylsp[0]); |
epilogue_set (yyvsp[0].string, yylsp[0]); |
1056 |
} |
} |
1057 |
break; |
break; |
1058 |
case 6: |
case 6: |
1059 |
#line 148 "parse-gram.y" |
#line 154 "parse-gram.y" |
1060 |
{ |
{ prologue_augment (yyvsp[0].string, yylsp[0]); } |
|
prologue_augment (yyvsp[0].string, yylsp[0]); |
|
|
} |
|
1061 |
break; |
break; |
1062 |
case 7: |
case 7: |
1063 |
#line 151 "parse-gram.y" |
#line 155 "parse-gram.y" |
1064 |
{ debug_flag = 1; } |
{ debug_flag = 1; } |
1065 |
break; |
break; |
1066 |
case 8: |
case 8: |
1067 |
#line 152 "parse-gram.y" |
#line 156 "parse-gram.y" |
1068 |
{ muscle_insert (yyvsp[-1].string, yyvsp[0].string); } |
{ muscle_insert (yyvsp[-1].string, yyvsp[0].string); } |
1069 |
break; |
break; |
1070 |
case 9: |
case 9: |
1071 |
#line 153 "parse-gram.y" |
#line 157 "parse-gram.y" |
1072 |
{ defines_flag = 1; } |
{ defines_flag = 1; } |
1073 |
break; |
break; |
1074 |
case 10: |
case 10: |
1075 |
#line 154 "parse-gram.y" |
#line 158 "parse-gram.y" |
1076 |
{ error_verbose = 1; } |
{ error_verbose = 1; } |
1077 |
break; |
break; |
1078 |
case 11: |
case 11: |
1079 |
#line 155 "parse-gram.y" |
#line 159 "parse-gram.y" |
1080 |
{ expected_conflicts = yyvsp[0].integer; } |
{ expected_conflicts = yyvsp[0].integer; } |
1081 |
break; |
break; |
1082 |
case 12: |
case 12: |
1083 |
#line 156 "parse-gram.y" |
#line 160 "parse-gram.y" |
1084 |
{ spec_file_prefix = yyvsp[0].string; } |
{ spec_file_prefix = yyvsp[0].string; } |
1085 |
break; |
break; |
1086 |
case 13: |
case 13: |
1087 |
#line 157 "parse-gram.y" |
#line 161 "parse-gram.y" |
1088 |
{ locations_flag = 1; } |
{ locations_flag = 1; } |
1089 |
break; |
break; |
1090 |
case 14: |
case 14: |
1091 |
#line 158 "parse-gram.y" |
#line 162 "parse-gram.y" |
1092 |
{ spec_name_prefix = yyvsp[0].string; } |
{ spec_name_prefix = yyvsp[0].string; } |
1093 |
break; |
break; |
1094 |
case 15: |
case 15: |
1095 |
#line 159 "parse-gram.y" |
#line 163 "parse-gram.y" |
1096 |
{ no_lines_flag = 1; } |
{ no_lines_flag = 1; } |
1097 |
break; |
break; |
1098 |
case 16: |
case 16: |
1099 |
#line 160 "parse-gram.y" |
#line 164 "parse-gram.y" |
1100 |
{ spec_outfile = yyvsp[0].string; } |
{ spec_outfile = yyvsp[0].string; } |
1101 |
break; |
break; |
1102 |
case 17: |
case 17: |
1103 |
#line 161 "parse-gram.y" |
#line 165 "parse-gram.y" |
1104 |
{ pure_parser = 1; } |
{ pure_parser = 1; } |
1105 |
break; |
break; |
1106 |
case 18: |
case 18: |
1107 |
#line 162 "parse-gram.y" |
#line 166 "parse-gram.y" |
1108 |
{ skeleton = yyvsp[0].string; } |
{ skeleton = yyvsp[0].string; } |
1109 |
break; |
break; |
1110 |
case 19: |
case 19: |
1111 |
#line 163 "parse-gram.y" |
#line 167 "parse-gram.y" |
1112 |
{ token_table_flag = 1; } |
{ token_table_flag = 1; } |
1113 |
break; |
break; |
1114 |
case 20: |
case 20: |
1115 |
#line 164 "parse-gram.y" |
#line 168 "parse-gram.y" |
1116 |
{ report_flag = 1; } |
{ report_flag = 1; } |
1117 |
break; |
break; |
1118 |
case 21: |
case 21: |
1119 |
#line 165 "parse-gram.y" |
#line 169 "parse-gram.y" |
1120 |
{ yacc_flag = 1; } |
{ yacc_flag = 1; } |
1121 |
break; |
break; |
|
case 23: |
|
|
#line 170 "parse-gram.y" |
|
|
{ current_class = nterm_sym; } |
|
|
break; |
|
1122 |
case 24: |
case 24: |
1123 |
#line 171 "parse-gram.y" |
#line 176 "parse-gram.y" |
1124 |
{ |
{ |
1125 |
current_class = unknown_sym; |
grammar_start_symbol_set (yyvsp[0].symbol); |
|
current_type = NULL; |
|
1126 |
} |
} |
1127 |
break; |
break; |
1128 |
case 25: |
case 25: |
1129 |
#line 176 "parse-gram.y" |
#line 180 "parse-gram.y" |
1130 |
{ |
{ |
1131 |
grammar_start_symbol_set (yyvsp[0].symbol); |
typed = 1; |
1132 |
|
MUSCLE_INSERT_INT ("stype_line", yylsp[-1].first_line); |
1133 |
|
muscle_insert ("stype", yyvsp[-1].string); |
1134 |
} |
} |
1135 |
break; |
break; |
1136 |
case 26: |
case 26: |
1137 |
#line 179 "parse-gram.y" |
#line 188 "parse-gram.y" |
1138 |
{ current_class = token_sym; } |
{ current_class = nterm_sym; } |
1139 |
break; |
break; |
1140 |
case 27: |
case 27: |
1141 |
#line 180 "parse-gram.y" |
#line 189 "parse-gram.y" |
1142 |
{ |
{ |
1143 |
current_class = unknown_sym; |
current_class = unknown_sym; |
1144 |
current_type = NULL; |
current_type = NULL; |
1145 |
} |
} |
1146 |
break; |
break; |
1147 |
case 28: |
case 28: |
1148 |
#line 184 "parse-gram.y" |
#line 193 "parse-gram.y" |
1149 |
{current_type = yyvsp[0].string; } |
{ current_class = token_sym; } |
1150 |
break; |
break; |
1151 |
case 29: |
case 29: |
1152 |
#line 185 "parse-gram.y" |
#line 194 "parse-gram.y" |
1153 |
{ |
{ |
1154 |
|
current_class = unknown_sym; |
1155 |
current_type = NULL; |
current_type = NULL; |
1156 |
} |
} |
1157 |
break; |
break; |
1158 |
case 30: |
case 30: |
1159 |
#line 189 "parse-gram.y" |
#line 198 "parse-gram.y" |
1160 |
{ |
{current_type = yyvsp[0].string; } |
|
typed = 1; |
|
|
MUSCLE_INSERT_INT ("stype_line", yylsp[-1].first_line); |
|
|
muscle_insert ("stype", yyvsp[-1].string); |
|
|
} |
|
1161 |
break; |
break; |
1162 |
case 31: |
case 31: |
1163 |
#line 198 "parse-gram.y" |
#line 199 "parse-gram.y" |
1164 |
{ current_assoc = yyvsp[-1].assoc; ++current_prec; } |
{ |
1165 |
|
current_type = NULL; |
1166 |
|
} |
1167 |
break; |
break; |
1168 |
case 32: |
case 32: |
1169 |
#line 200 "parse-gram.y" |
#line 206 "parse-gram.y" |
1170 |
{ current_assoc = non_assoc; current_type = NULL; } |
{ current_assoc = yyvsp[-1].assoc; ++current_prec; } |
1171 |
break; |
break; |
1172 |
case 33: |
case 33: |
1173 |
#line 204 "parse-gram.y" |
#line 208 "parse-gram.y" |
1174 |
{ yyval.assoc = left_assoc; } |
{ current_assoc = non_assoc; current_type = NULL; } |
1175 |
break; |
break; |
1176 |
case 34: |
case 34: |
1177 |
#line 205 "parse-gram.y" |
#line 212 "parse-gram.y" |
1178 |
{ yyval.assoc = right_assoc; } |
{ yyval.assoc = left_assoc; } |
1179 |
break; |
break; |
1180 |
case 35: |
case 35: |
1181 |
#line 206 "parse-gram.y" |
#line 213 "parse-gram.y" |
1182 |
{ yyval.assoc = non_assoc; } |
{ yyval.assoc = right_assoc; } |
1183 |
break; |
break; |
1184 |
case 36: |
case 36: |
1185 |
#line 210 "parse-gram.y" |
#line 214 "parse-gram.y" |
1186 |
{ current_type = NULL;} |
{ yyval.assoc = non_assoc; } |
1187 |
break; |
break; |
1188 |
case 37: |
case 37: |
1189 |
#line 211 "parse-gram.y" |
#line 218 "parse-gram.y" |
1190 |
{ current_type = yyvsp[0].string; } |
{ current_type = NULL;} |
1191 |
break; |
break; |
1192 |
case 38: |
case 38: |
1193 |
#line 216 "parse-gram.y" |
#line 219 "parse-gram.y" |
1194 |
{ symbol_type_set (yyvsp[0].symbol, current_type); } |
{ current_type = yyvsp[0].string; } |
1195 |
break; |
break; |
1196 |
case 39: |
case 39: |
1197 |
#line 217 "parse-gram.y" |
#line 224 "parse-gram.y" |
1198 |
{ symbol_type_set (yyvsp[0].symbol, current_type); } |
{ symbol_type_set (yyvsp[0].symbol, current_type); } |
1199 |
break; |
break; |
1200 |
case 40: |
case 40: |
1201 |
#line 223 "parse-gram.y" |
#line 225 "parse-gram.y" |
1202 |
|
{ symbol_type_set (yyvsp[0].symbol, current_type); } |
1203 |
|
break; |
1204 |
|
case 41: |
1205 |
|
#line 231 "parse-gram.y" |
1206 |
{ |
{ |
1207 |
symbol_type_set (yyvsp[0].symbol, current_type); |
symbol_type_set (yyvsp[0].symbol, current_type); |
1208 |
symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc); |
symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc); |
1209 |
} |
} |
1210 |
break; |
break; |
1211 |
case 41: |
case 42: |
1212 |
#line 228 "parse-gram.y" |
#line 236 "parse-gram.y" |
1213 |
{ |
{ |
1214 |
symbol_type_set (yyvsp[0].symbol, current_type); |
symbol_type_set (yyvsp[0].symbol, current_type); |
1215 |
symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc); |
symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc); |
1216 |
} |
} |
1217 |
break; |
break; |
1218 |
case 42: |
case 43: |
1219 |
#line 238 "parse-gram.y" |
#line 245 "parse-gram.y" |
1220 |
{ |
{ |
1221 |
current_type = yyvsp[0].string; |
current_type = yyvsp[0].string; |
1222 |
} |
} |
1223 |
break; |
break; |
1224 |
case 43: |
case 44: |
1225 |
#line 242 "parse-gram.y" |
#line 249 "parse-gram.y" |
1226 |
{ |
{ |
1227 |
symbol_class_set (yyvsp[0].symbol, current_class); |
symbol_class_set (yyvsp[0].symbol, current_class); |
1228 |
symbol_type_set (yyvsp[0].symbol, current_type); |
symbol_type_set (yyvsp[0].symbol, current_type); |
1229 |
} |
} |
1230 |
break; |
break; |
1231 |
case 44: |
case 45: |
1232 |
#line 247 "parse-gram.y" |
#line 254 "parse-gram.y" |
1233 |
{ |
{ |
1234 |
symbol_class_set (yyvsp[-1].symbol, current_class); |
symbol_class_set (yyvsp[-1].symbol, current_class); |
1235 |
symbol_type_set (yyvsp[-1].symbol, current_type); |
symbol_type_set (yyvsp[-1].symbol, current_type); |
1236 |
symbol_user_token_number_set (yyvsp[-1].symbol, yyvsp[0].integer); |
symbol_user_token_number_set (yyvsp[-1].symbol, yyvsp[0].integer); |
1237 |
} |
} |
1238 |
break; |
break; |
1239 |
case 45: |
case 46: |
1240 |
#line 253 "parse-gram.y" |
#line 260 "parse-gram.y" |
1241 |
{ |
{ |
1242 |
symbol_class_set (yyvsp[-1].symbol, current_class); |
symbol_class_set (yyvsp[-1].symbol, current_class); |
1243 |
symbol_type_set (yyvsp[-1].symbol, current_type); |
symbol_type_set (yyvsp[-1].symbol, current_type); |
1244 |
symbol_make_alias (yyvsp[-1].symbol, yyvsp[0].symbol); |
symbol_make_alias (yyvsp[-1].symbol, yyvsp[0].symbol); |
1245 |
} |
} |
1246 |
break; |
break; |
1247 |
case 46: |
case 47: |
1248 |
#line 259 "parse-gram.y" |
#line 266 "parse-gram.y" |
1249 |
{ |
{ |
1250 |
symbol_class_set (yyvsp[-2].symbol, current_class); |
symbol_class_set (yyvsp[-2].symbol, current_class); |
1251 |
symbol_type_set (yyvsp[-2].symbol, current_type); |
symbol_type_set (yyvsp[-2].symbol, current_type); |
1253 |
symbol_make_alias (yyvsp[-2].symbol, yyvsp[0].symbol); |
symbol_make_alias (yyvsp[-2].symbol, yyvsp[0].symbol); |
1254 |
} |
} |
1255 |
break; |
break; |
|
case 47: |
|
|
#line 270 "parse-gram.y" |
|
|
{;} |
|
|
break; |
|
1256 |
case 48: |
case 48: |
1257 |
#line 272 "parse-gram.y" |
#line 277 "parse-gram.y" |
1258 |
{;} |
{;} |
1259 |
break; |
break; |
1260 |
case 51: |
case 49: |
1261 |
#line 281 "parse-gram.y" |
#line 279 "parse-gram.y" |
1262 |
{ current_lhs = yyvsp[-1].symbol; } |
{;} |
1263 |
break; |
break; |
1264 |
case 52: |
case 52: |
1265 |
#line 282 "parse-gram.y" |
#line 293 "parse-gram.y" |
1266 |
{;} |
{ current_lhs = yyvsp[-1].symbol; } |
1267 |
break; |
break; |
1268 |
case 53: |
case 53: |
1269 |
#line 286 "parse-gram.y" |
#line 294 "parse-gram.y" |
1270 |
{ grammar_rule_end (); } |
{;} |
1271 |
break; |
break; |
1272 |
case 54: |
case 54: |
1273 |
#line 287 "parse-gram.y" |
#line 298 "parse-gram.y" |
1274 |
{ grammar_rule_end (); } |
{ grammar_rule_end (); } |
1275 |
break; |
break; |
1276 |
case 55: |
case 55: |
1277 |
#line 292 "parse-gram.y" |
#line 299 "parse-gram.y" |
1278 |
{ grammar_rule_begin (current_lhs); } |
{ grammar_rule_end (); } |
1279 |
break; |
break; |
1280 |
case 56: |
case 56: |
1281 |
#line 294 "parse-gram.y" |
#line 304 "parse-gram.y" |
1282 |
{ grammar_current_rule_symbol_append (yyvsp[0].symbol); } |
{ grammar_rule_begin (current_lhs); } |
1283 |
break; |
break; |
1284 |
case 57: |
case 57: |
1285 |
#line 296 "parse-gram.y" |
#line 306 "parse-gram.y" |
1286 |
{ grammar_current_rule_action_append (yyvsp[0].string, yylsp[0].first_line); } |
{ grammar_current_rule_symbol_append (yyvsp[0].symbol); } |
1287 |
break; |
break; |
1288 |
case 58: |
case 58: |
1289 |
#line 298 "parse-gram.y" |
#line 308 "parse-gram.y" |
1290 |
{ grammar_current_rule_prec_set (yyvsp[0].symbol); } |
{ grammar_current_rule_action_append (yyvsp[0].string, yylsp[0].first_line); } |
1291 |
break; |
break; |
1292 |
case 59: |
case 59: |
1293 |
#line 302 "parse-gram.y" |
#line 310 "parse-gram.y" |
1294 |
{ yyval.symbol = yyvsp[0].symbol; } |
{ grammar_current_rule_prec_set (yyvsp[0].symbol); } |
1295 |
break; |
break; |
1296 |
case 60: |
case 60: |
1297 |
#line 303 "parse-gram.y" |
#line 314 "parse-gram.y" |
1298 |
{ yyval.symbol = yyvsp[0].symbol; } |
{ yyval.symbol = yyvsp[0].symbol; } |
1299 |
break; |
break; |
1300 |
case 61: |
case 61: |
1301 |
#line 304 "parse-gram.y" |
#line 315 "parse-gram.y" |
1302 |
{ yyval.symbol = getsym (yyvsp[0].string); } |
{ yyval.symbol = yyvsp[0].symbol; } |
1303 |
break; |
break; |
1304 |
case 62: |
case 62: |
1305 |
#line 309 "parse-gram.y" |
#line 316 "parse-gram.y" |
1306 |
{ yyval.string = yyvsp[0].string; } |
{ yyval.symbol = getsym (yyvsp[0].string); } |
1307 |
break; |
break; |
1308 |
case 63: |
case 63: |
1309 |
#line 315 "parse-gram.y" |
#line 321 "parse-gram.y" |
1310 |
|
{ yyval.string = yyvsp[0].string; } |
1311 |
|
break; |
1312 |
|
case 64: |
1313 |
|
#line 327 "parse-gram.y" |
1314 |
{ |
{ |
1315 |
yyval.symbol = getsym (yyvsp[0].string); |
yyval.symbol = getsym (yyvsp[0].string); |
1316 |
symbol_class_set (yyval.symbol, token_sym); |
symbol_class_set (yyval.symbol, token_sym); |
1317 |
} |
} |
1318 |
break; |
break; |
1319 |
case 64: |
case 65: |
1320 |
#line 324 "parse-gram.y" |
#line 336 "parse-gram.y" |
1321 |
{ |
{ |
1322 |
yyval.string = yyvsp[0].string + 1; |
yyval.string = yyvsp[0].string + 1; |
1323 |
yyval.string[strlen (yyval.string) - 1] = '\0'; |
yyval.string[strlen (yyval.string) - 1] = '\0'; |
1324 |
} |
} |
1325 |
break; |
break; |
1326 |
case 65: |
case 66: |
1327 |
#line 332 "parse-gram.y" |
#line 344 "parse-gram.y" |
1328 |
{ |
{ |
1329 |
yyval.string = xstrdup (""); |
yyval.string = xstrdup (""); |
1330 |
} |
} |
1331 |
break; |
break; |
1332 |
case 66: |
case 67: |
1333 |
#line 336 "parse-gram.y" |
#line 348 "parse-gram.y" |
1334 |
{ |
{ |
1335 |
yyval.string = yyvsp[0].string; |
yyval.string = yyvsp[0].string; |
1336 |
} |
} |
1568 |
#endif |
#endif |
1569 |
return yyresult; |
return yyresult; |
1570 |
} |
} |
1571 |
#line 345 "parse-gram.y" |
#line 357 "parse-gram.y" |
1572 |
|
|
1573 |
/*------------------------------------------------------------------. |
/*------------------------------------------------------------------. |
1574 |
| When debugging the parser, display tokens' locations and values. | |
| When debugging the parser, display tokens' locations and values. | |