/[pearpc]/src/debug/debugparse.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /src/debug/debugparse.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations)
Wed Sep 5 17:11:21 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 58122 byte(s)
import upstream CVS
1 /* A Bison parser, made by GNU Bison 1.875d. */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 /* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26 /* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
35
36 /* Identify Bison output. */
37 #define YYBISON 1
38
39 /* Skeleton name. */
40 #define YYSKELETON_NAME "yacc.c"
41
42 /* Pure parsers. */
43 #define YYPURE 1
44
45 /* Using locations. */
46 #define YYLSP_NEEDED 0
47
48
49
50 /* Tokens. */
51 #ifndef YYTOKENTYPE
52 # define YYTOKENTYPE
53 /* Put the tokens into the symbol table, so that GDB and other debuggers
54 know about them. */
55 enum yytokentype {
56 EVAL_INT = 258,
57 EVAL_GPR = 259,
58 EVAL_FPR = 260,
59 EVAL_REG_PC = 261,
60 EVAL_REG_CR = 262,
61 EVAL_REG_LR = 263,
62 EVAL_REG_CTR = 264,
63 EVAL_REG_XER = 265,
64 EVAL_REG_MSR = 266,
65 EVAL_REG_SRR0 = 267,
66 EVAL_REG_SRR1 = 268,
67 EVAL_STR = 269,
68 EVAL_FLOAT = 270,
69 EVAL_IDENT = 271,
70 EVAL_PRINT = 272,
71 EVAL_SETREG = 273,
72 EVAL_REGS = 274,
73 EVAL_FLOATS = 275,
74 EVAL_BREAK = 276,
75 EVAL_LIST_BREAK = 277,
76 EVAL_STEP = 278,
77 EVAL_NEXT = 279,
78 EVAL_CONTINUE = 280,
79 EVAL_QUIT = 281,
80 EVAL_E2P = 282,
81 EVAL_INSPECT_BYTE = 283,
82 EVAL_INSPECT_HALF = 284,
83 EVAL_INSPECT_WORD = 285,
84 EVAL_INSPECT_DWORD = 286,
85 EVAL_INSPECT_STRING = 287,
86 EVAL_INSPECT_MEM = 288,
87 EVAL_WATCH = 289,
88 EVAL_WATCH_BYTE = 290,
89 EVAL_WATCH_HALF = 291,
90 EVAL_WATCH_WORD = 292,
91 EVAL_WATCH_DWORD = 293,
92 EVAL_DELETE_WATCH = 294,
93 EVAL_DUMP = 295,
94 EVAL_DISASM = 296,
95 EVAL_HELP = 297,
96 EVAL_LAND = 298,
97 EVAL_LXOR = 299,
98 EVAL_LOR = 300,
99 EVAL_EQ = 301,
100 EVAL_NE = 302,
101 EVAL_LT = 303,
102 EVAL_LE = 304,
103 EVAL_GT = 305,
104 EVAL_GE = 306,
105 EVAL_SHL = 307,
106 EVAL_SHR = 308,
107 NEG = 309,
108 EVAL_POW = 310
109 };
110 #endif
111 #define EVAL_INT 258
112 #define EVAL_GPR 259
113 #define EVAL_FPR 260
114 #define EVAL_REG_PC 261
115 #define EVAL_REG_CR 262
116 #define EVAL_REG_LR 263
117 #define EVAL_REG_CTR 264
118 #define EVAL_REG_XER 265
119 #define EVAL_REG_MSR 266
120 #define EVAL_REG_SRR0 267
121 #define EVAL_REG_SRR1 268
122 #define EVAL_STR 269
123 #define EVAL_FLOAT 270
124 #define EVAL_IDENT 271
125 #define EVAL_PRINT 272
126 #define EVAL_SETREG 273
127 #define EVAL_REGS 274
128 #define EVAL_FLOATS 275
129 #define EVAL_BREAK 276
130 #define EVAL_LIST_BREAK 277
131 #define EVAL_STEP 278
132 #define EVAL_NEXT 279
133 #define EVAL_CONTINUE 280
134 #define EVAL_QUIT 281
135 #define EVAL_E2P 282
136 #define EVAL_INSPECT_BYTE 283
137 #define EVAL_INSPECT_HALF 284
138 #define EVAL_INSPECT_WORD 285
139 #define EVAL_INSPECT_DWORD 286
140 #define EVAL_INSPECT_STRING 287
141 #define EVAL_INSPECT_MEM 288
142 #define EVAL_WATCH 289
143 #define EVAL_WATCH_BYTE 290
144 #define EVAL_WATCH_HALF 291
145 #define EVAL_WATCH_WORD 292
146 #define EVAL_WATCH_DWORD 293
147 #define EVAL_DELETE_WATCH 294
148 #define EVAL_DUMP 295
149 #define EVAL_DISASM 296
150 #define EVAL_HELP 297
151 #define EVAL_LAND 298
152 #define EVAL_LXOR 299
153 #define EVAL_LOR 300
154 #define EVAL_EQ 301
155 #define EVAL_NE 302
156 #define EVAL_LT 303
157 #define EVAL_LE 304
158 #define EVAL_GT 305
159 #define EVAL_GE 306
160 #define EVAL_SHL 307
161 #define EVAL_SHR 308
162 #define NEG 309
163 #define EVAL_POW 310
164
165
166
167
168 /* Copy the first part of user declarations. */
169 #line 4 "debugparse.y"
170
171
172 #define YYPARSE_PARAM resultptr
173
174 #include "debugtype.h"
175 #include "parsehelper.h"
176
177 void yyerror (char *s)
178 {
179 set_eval_error(s);
180 }
181
182
183
184 /* Enabling traces. */
185 #ifndef YYDEBUG
186 # define YYDEBUG 0
187 #endif
188
189 /* Enabling verbose error messages. */
190 #ifdef YYERROR_VERBOSE
191 # undef YYERROR_VERBOSE
192 # define YYERROR_VERBOSE 1
193 #else
194 # define YYERROR_VERBOSE 0
195 #endif
196
197 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
198 #line 18 "debugparse.y"
199 typedef union YYSTYPE {
200 struct eval_command command;
201 struct eval_scalar scalar;
202 eval_commandtype commandtoken;
203 char *ident;
204 struct eval_scalarlist scalars;
205 } YYSTYPE;
206 /* Line 191 of yacc.c. */
207 #line 208 "debugparse.c"
208 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
209 # define YYSTYPE_IS_DECLARED 1
210 # define YYSTYPE_IS_TRIVIAL 1
211 #endif
212
213
214
215 /* Copy the second part of user declarations. */
216
217
218 /* Line 214 of yacc.c. */
219 #line 220 "debugparse.c"
220
221 #if ! defined (yyoverflow) || YYERROR_VERBOSE
222
223 # ifndef YYFREE
224 # define YYFREE free
225 # endif
226 # ifndef YYMALLOC
227 # define YYMALLOC malloc
228 # endif
229
230 /* The parser invokes alloca or malloc; define the necessary symbols. */
231
232 # ifdef YYSTACK_USE_ALLOCA
233 # if YYSTACK_USE_ALLOCA
234 # define YYSTACK_ALLOC alloca
235 # endif
236 # else
237 # if defined (alloca) || defined (_ALLOCA_H)
238 # define YYSTACK_ALLOC alloca
239 # else
240 # ifdef __GNUC__
241 # define YYSTACK_ALLOC __builtin_alloca
242 # endif
243 # endif
244 # endif
245
246 # ifdef YYSTACK_ALLOC
247 /* Pacify GCC's `empty if-body' warning. */
248 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
249 # else
250 # if defined (__STDC__) || defined (__cplusplus)
251 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
252 # define YYSIZE_T size_t
253 # endif
254 # define YYSTACK_ALLOC YYMALLOC
255 # define YYSTACK_FREE YYFREE
256 # endif
257 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
258
259
260 #if (! defined (yyoverflow) \
261 && (! defined (__cplusplus) \
262 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
263
264 /* A type that is properly aligned for any stack member. */
265 union yyalloc
266 {
267 short int yyss;
268 YYSTYPE yyvs;
269 };
270
271 /* The size of the maximum gap between one aligned stack and the next. */
272 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
273
274 /* The size of an array large to enough to hold all stacks, each with
275 N elements. */
276 # define YYSTACK_BYTES(N) \
277 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
278 + YYSTACK_GAP_MAXIMUM)
279
280 /* Copy COUNT objects from FROM to TO. The source and destination do
281 not overlap. */
282 # ifndef YYCOPY
283 # if defined (__GNUC__) && 1 < __GNUC__
284 # define YYCOPY(To, From, Count) \
285 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
286 # else
287 # define YYCOPY(To, From, Count) \
288 do \
289 { \
290 register YYSIZE_T yyi; \
291 for (yyi = 0; yyi < (Count); yyi++) \
292 (To)[yyi] = (From)[yyi]; \
293 } \
294 while (0)
295 # endif
296 # endif
297
298 /* Relocate STACK from its old location to the new one. The
299 local variables YYSIZE and YYSTACKSIZE give the old and new number of
300 elements in the stack, and YYPTR gives the new location of the
301 stack. Advance YYPTR to a properly aligned location for the next
302 stack. */
303 # define YYSTACK_RELOCATE(Stack) \
304 do \
305 { \
306 YYSIZE_T yynewbytes; \
307 YYCOPY (&yyptr->Stack, Stack, yysize); \
308 Stack = &yyptr->Stack; \
309 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
310 yyptr += yynewbytes / sizeof (*yyptr); \
311 } \
312 while (0)
313
314 #endif
315
316 #if defined (__STDC__) || defined (__cplusplus)
317 typedef signed char yysigned_char;
318 #else
319 typedef short int yysigned_char;
320 #endif
321
322 /* YYFINAL -- State number of the termination state. */
323 #define YYFINAL 73
324 /* YYLAST -- Last index in YYTABLE. */
325 #define YYLAST 486
326
327 /* YYNTOKENS -- Number of terminals. */
328 #define YYNTOKENS 72
329 /* YYNNTS -- Number of nonterminals. */
330 #define YYNNTS 10
331 /* YYNRULES -- Number of rules. */
332 #define YYNRULES 78
333 /* YYNRULES -- Number of states. */
334 #define YYNSTATES 143
335
336 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
337 #define YYUNDEFTOK 2
338 #define YYMAXUTOK 310
339
340 #define YYTRANSLATE(YYX) \
341 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
342
343 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
344 static const unsigned char yytranslate[] =
345 {
346 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 68, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 65, 52, 2,
350 70, 71, 63, 62, 43, 61, 46, 64, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 45, 2,
352 2, 69, 2, 44, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 51, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
358 2, 2, 2, 2, 50, 2, 2, 2, 2, 2,
359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
364 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
365 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
366 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
367 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
368 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
369 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
370 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
371 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
372 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
373 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
374 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
375 35, 36, 37, 38, 39, 40, 41, 42, 47, 48,
376 49, 53, 54, 55, 56, 57, 58, 59, 60, 66,
377 67
378 };
379
380 #if YYDEBUG
381 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
382 YYRHS. */
383 static const unsigned char yyprhs[] =
384 {
385 0, 0, 3, 5, 8, 11, 14, 16, 18, 23,
386 27, 29, 32, 35, 37, 39, 42, 45, 48, 51,
387 54, 57, 61, 65, 69, 73, 77, 81, 84, 88,
388 92, 95, 96, 98, 99, 102, 104, 106, 108, 110,
389 112, 114, 116, 118, 120, 122, 124, 126, 128, 130,
390 134, 138, 142, 146, 150, 154, 158, 162, 166, 170,
391 174, 178, 182, 186, 190, 194, 198, 202, 206, 210,
392 213, 217, 223, 227, 232, 233, 235, 237, 241
393 };
394
395 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
396 static const yysigned_char yyrhs[] =
397 {
398 73, 0, -1, 68, -1, 74, 68, -1, 78, 68,
399 -1, 17, 78, -1, 19, -1, 20, -1, 18, 77,
400 69, 78, -1, 21, 78, 76, -1, 22, -1, 23,
401 75, -1, 24, 75, -1, 25, -1, 26, -1, 27,
402 78, -1, 28, 78, -1, 29, 78, -1, 30, 78,
403 -1, 31, 78, -1, 32, 78, -1, 33, 78, 76,
404 -1, 34, 78, 76, -1, 35, 78, 76, -1, 36,
405 78, 76, -1, 37, 78, 76, -1, 38, 78, 76,
406 -1, 39, 78, -1, 40, 78, 76, -1, 41, 75,
407 76, -1, 42, 75, -1, -1, 78, -1, -1, 43,
408 78, -1, 4, -1, 5, -1, 6, -1, 7, -1,
409 8, -1, 9, -1, 10, -1, 11, -1, 12, -1,
410 13, -1, 3, -1, 77, -1, 15, -1, 14, -1,
411 78, 63, 78, -1, 78, 64, 78, -1, 78, 65,
412 78, -1, 78, 62, 78, -1, 78, 61, 78, -1,
413 78, 52, 78, -1, 78, 50, 78, -1, 78, 51,
414 78, -1, 78, 67, 78, -1, 78, 59, 78, -1,
415 78, 60, 78, -1, 78, 53, 78, -1, 78, 54,
416 78, -1, 78, 57, 78, -1, 78, 58, 78, -1,
417 78, 55, 78, -1, 78, 56, 78, -1, 78, 47,
418 78, -1, 78, 48, 78, -1, 78, 49, 78, -1,
419 61, 78, -1, 70, 78, 71, -1, 78, 44, 78,
420 45, 78, -1, 78, 46, 78, -1, 81, 70, 79,
421 71, -1, -1, 80, -1, 78, -1, 80, 43, 80,
422 -1, 16, -1
423 };
424
425 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
426 static const unsigned char yyrline[] =
427 {
428 0, 102, 102, 103, 104, 107, 108, 109, 110, 111,
429 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
430 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
431 132, 135, 140, 143, 148, 152, 153, 154, 155, 156,
432 157, 158, 159, 160, 161, 164, 165, 166, 167, 168,
433 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
434 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
435 189, 190, 191, 192, 199, 205, 208, 209, 217
436 };
437 #endif
438
439 #if YYDEBUG || YYERROR_VERBOSE
440 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
441 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
442 static const char *const yytname[] =
443 {
444 "$end", "error", "$undefined", "EVAL_INT", "EVAL_GPR", "EVAL_FPR",
445 "EVAL_REG_PC", "EVAL_REG_CR", "EVAL_REG_LR", "EVAL_REG_CTR",
446 "EVAL_REG_XER", "EVAL_REG_MSR", "EVAL_REG_SRR0", "EVAL_REG_SRR1",
447 "EVAL_STR", "EVAL_FLOAT", "EVAL_IDENT", "EVAL_PRINT", "EVAL_SETREG",
448 "EVAL_REGS", "EVAL_FLOATS", "EVAL_BREAK", "EVAL_LIST_BREAK", "EVAL_STEP",
449 "EVAL_NEXT", "EVAL_CONTINUE", "EVAL_QUIT", "EVAL_E2P",
450 "EVAL_INSPECT_BYTE", "EVAL_INSPECT_HALF", "EVAL_INSPECT_WORD",
451 "EVAL_INSPECT_DWORD", "EVAL_INSPECT_STRING", "EVAL_INSPECT_MEM",
452 "EVAL_WATCH", "EVAL_WATCH_BYTE", "EVAL_WATCH_HALF", "EVAL_WATCH_WORD",
453 "EVAL_WATCH_DWORD", "EVAL_DELETE_WATCH", "EVAL_DUMP", "EVAL_DISASM",
454 "EVAL_HELP", "','", "'?'", "':'", "'.'", "EVAL_LAND", "EVAL_LXOR",
455 "EVAL_LOR", "'|'", "'^'", "'&'", "EVAL_EQ", "EVAL_NE", "EVAL_LT",
456 "EVAL_LE", "EVAL_GT", "EVAL_GE", "EVAL_SHL", "EVAL_SHR", "'-'", "'+'",
457 "'*'", "'/'", "'%'", "NEG", "EVAL_POW", "'\\n'", "'='", "'('", "')'",
458 "$accept", "input", "command", "optional_scalar1", "optional_scalar2",
459 "reg", "scalar", "scalarlist_or_null", "scalarlist", "identifier", 0
460 };
461 #endif
462
463 # ifdef YYPRINT
464 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
465 token YYLEX-NUM. */
466 static const unsigned short int yytoknum[] =
467 {
468 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
469 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
470 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
471 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
472 295, 296, 297, 44, 63, 58, 46, 298, 299, 300,
473 124, 94, 38, 301, 302, 303, 304, 305, 306, 307,
474 308, 45, 43, 42, 47, 37, 309, 310, 10, 61,
475 40, 41
476 };
477 # endif
478
479 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
480 static const unsigned char yyr1[] =
481 {
482 0, 72, 73, 73, 73, 74, 74, 74, 74, 74,
483 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
484 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
485 74, 75, 75, 76, 76, 77, 77, 77, 77, 77,
486 77, 77, 77, 77, 77, 78, 78, 78, 78, 78,
487 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
488 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
489 78, 78, 78, 78, 79, 79, 80, 80, 81
490 };
491
492 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
493 static const unsigned char yyr2[] =
494 {
495 0, 2, 1, 2, 2, 2, 1, 1, 4, 3,
496 1, 2, 2, 1, 1, 2, 2, 2, 2, 2,
497 2, 3, 3, 3, 3, 3, 3, 2, 3, 3,
498 2, 0, 1, 0, 2, 1, 1, 1, 1, 1,
499 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
500 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
501 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,
502 3, 5, 3, 4, 0, 1, 1, 3, 1
503 };
504
505 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
506 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
507 means the default is an error. */
508 static const unsigned char yydefact[] =
509 {
510 0, 45, 35, 36, 37, 38, 39, 40, 41, 42,
511 43, 44, 48, 47, 78, 0, 0, 6, 7, 0,
512 10, 31, 31, 13, 14, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
514 31, 0, 2, 0, 0, 0, 46, 0, 0, 5,
515 0, 33, 11, 32, 12, 15, 16, 17, 18, 19,
516 20, 33, 33, 33, 33, 33, 33, 27, 33, 33,
517 30, 69, 0, 1, 3, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 4, 74, 0,
520 0, 9, 21, 22, 23, 24, 25, 26, 28, 29,
521 70, 0, 72, 66, 67, 68, 55, 56, 54, 60,
522 61, 64, 65, 62, 63, 58, 59, 53, 52, 49,
523 50, 51, 57, 76, 0, 75, 8, 34, 0, 73,
524 0, 71, 77
525 };
526
527 /* YYDEFGOTO[NTERM-NUM]. */
528 static const short int yydefgoto[] =
529 {
530 -1, 44, 45, 52, 101, 46, 53, 134, 135, 48
531 };
532
533 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
534 STATE-NUM. */
535 #define YYPACT_NINF -70
536 static const short int yypact[] =
537 {
538 138, -70, -70, -70, -70, -70, -70, -70, -70, -70,
539 -70, -70, -70, -70, -70, -2, 447, -70, -70, -2,
540 -70, -2, -2, -70, -70, -2, -2, -2, -2, -2,
541 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
542 -2, -2, -70, -2, 21, -46, -70, 163, -30, 235,
543 -45, 189, -70, 235, -70, 235, 235, 235, 235, 235,
544 235, 189, 189, 189, 189, 189, 189, 235, 189, -20,
545 -70, -25, 57, -70, -70, -2, -2, -2, -2, -2,
546 -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
547 -2, -2, -2, -2, -2, -2, -2, -70, -2, -2,
548 -2, -70, -70, -70, -70, -70, -70, -70, -70, -70,
549 -70, 213, 256, 133, 275, 293, 310, 326, 341, 356,
550 370, 383, -12, 72, 2, 402, 419, -47, -47, -25,
551 -25, -25, -70, 235, -17, 15, 235, 235, -2, -70,
552 -2, 235, -70
553 };
554
555 /* YYPGOTO[NTERM-NUM]. */
556 static const short int yypgoto[] =
557 {
558 -70, -70, -70, 17, 409, 54, 0, -70, -69, -70
559 };
560
561 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
562 positive, shift that token. If negative, reduce the rule which
563 number is the opposite. If zero, do what YYDEFACT says.
564 If YYTABLE_NINF, syntax error. */
565 #define YYTABLE_NINF -1
566 static const short int yytable[] =
567 {
568 47, 1, 2, 3, 4, 5, 6, 7, 8, 9,
569 10, 11, 12, 13, 14, 49, 93, 94, 95, 51,
570 96, 73, 74, 100, 99, 55, 56, 57, 58, 59,
571 60, 61, 62, 63, 64, 65, 66, 67, 68, 54,
572 98, 71, 96, 72, -1, 87, 88, 89, 90, 91,
573 92, 93, 94, 95, 139, 96, 69, 70, 140, 41,
574 -1, 89, 90, 91, 92, 93, 94, 95, 43, 96,
575 50, 142, 0, 0, 0, 111, 112, 113, 114, 115,
576 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
577 126, 127, 128, 129, 130, 131, 132, 0, 133, 136,
578 137, 75, 0, 76, 77, 78, 79, 80, 81, 82,
579 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
580 93, 94, 95, 0, 96, 0, 0, 0, 110, -1,
581 88, 89, 90, 91, 92, 93, 94, 95, 141, 96,
582 133, 1, 2, 3, 4, 5, 6, 7, 8, 9,
583 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
584 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
585 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
586 40, 78, 79, 80, 81, 82, 83, 84, 85, 86,
587 87, 88, 89, 90, 91, 92, 93, 94, 95, 41,
588 96, 0, 0, 0, 0, 0, 42, 75, 43, 76,
589 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
590 87, 88, 89, 90, 91, 92, 93, 94, 95, 0,
591 96, 97, 100, 75, 0, 76, 77, 78, 79, 80,
592 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
593 91, 92, 93, 94, 95, 0, 96, 75, 138, 76,
594 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
595 87, 88, 89, 90, 91, 92, 93, 94, 95, 75,
596 96, 76, 77, 78, 79, 80, 81, 82, 83, 84,
597 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
598 95, 0, 96, 77, 78, 79, 80, 81, 82, 83,
599 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
600 94, 95, 0, 96, 79, 80, 81, 82, 83, 84,
601 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
602 95, 0, 96, 80, 81, 82, 83, 84, 85, 86,
603 87, 88, 89, 90, 91, 92, 93, 94, 95, 0,
604 96, 81, 82, 83, 84, 85, 86, 87, 88, 89,
605 90, 91, 92, 93, 94, 95, 0, 96, 82, 83,
606 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
607 94, 95, 0, 96, 83, 84, 85, 86, 87, 88,
608 89, 90, 91, 92, 93, 94, 95, 0, 96, -1,
609 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
610 94, 95, 0, 96, -1, 85, 86, 87, 88, 89,
611 90, 91, 92, 93, 94, 95, 0, 96, -1, 86,
612 87, 88, 89, 90, 91, 92, 93, 94, 95, 0,
613 96, 2, 3, 4, 5, 6, 7, 8, 9, 10,
614 11, -1, 90, 91, 92, 93, 94, 95, 0, 96,
615 102, 103, 104, 105, 106, 107, 0, 108, 109, -1,
616 91, 92, 93, 94, 95, 0, 96
617 };
618
619 static const short int yycheck[] =
620 {
621 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
622 12, 13, 14, 15, 16, 15, 63, 64, 65, 19,
623 67, 0, 68, 43, 69, 25, 26, 27, 28, 29,
624 30, 31, 32, 33, 34, 35, 36, 37, 38, 22,
625 70, 41, 67, 43, 56, 57, 58, 59, 60, 61,
626 62, 63, 64, 65, 71, 67, 39, 40, 43, 61,
627 58, 59, 60, 61, 62, 63, 64, 65, 70, 67,
628 16, 140, -1, -1, -1, 75, 76, 77, 78, 79,
629 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
630 90, 91, 92, 93, 94, 95, 96, -1, 98, 99,
631 100, 44, -1, 46, 47, 48, 49, 50, 51, 52,
632 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
633 63, 64, 65, -1, 67, -1, -1, -1, 71, 57,
634 58, 59, 60, 61, 62, 63, 64, 65, 138, 67,
635 140, 3, 4, 5, 6, 7, 8, 9, 10, 11,
636 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
637 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
638 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
639 42, 48, 49, 50, 51, 52, 53, 54, 55, 56,
640 57, 58, 59, 60, 61, 62, 63, 64, 65, 61,
641 67, -1, -1, -1, -1, -1, 68, 44, 70, 46,
642 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
643 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
644 67, 68, 43, 44, -1, 46, 47, 48, 49, 50,
645 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
646 61, 62, 63, 64, 65, -1, 67, 44, 45, 46,
647 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
648 57, 58, 59, 60, 61, 62, 63, 64, 65, 44,
649 67, 46, 47, 48, 49, 50, 51, 52, 53, 54,
650 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
651 65, -1, 67, 47, 48, 49, 50, 51, 52, 53,
652 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
653 64, 65, -1, 67, 49, 50, 51, 52, 53, 54,
654 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
655 65, -1, 67, 50, 51, 52, 53, 54, 55, 56,
656 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
657 67, 51, 52, 53, 54, 55, 56, 57, 58, 59,
658 60, 61, 62, 63, 64, 65, -1, 67, 52, 53,
659 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
660 64, 65, -1, 67, 53, 54, 55, 56, 57, 58,
661 59, 60, 61, 62, 63, 64, 65, -1, 67, 53,
662 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
663 64, 65, -1, 67, 54, 55, 56, 57, 58, 59,
664 60, 61, 62, 63, 64, 65, -1, 67, 55, 56,
665 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
666 67, 4, 5, 6, 7, 8, 9, 10, 11, 12,
667 13, 59, 60, 61, 62, 63, 64, 65, -1, 67,
668 61, 62, 63, 64, 65, 66, -1, 68, 69, 60,
669 61, 62, 63, 64, 65, -1, 67
670 };
671
672 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
673 symbol of state STATE-NUM. */
674 static const unsigned char yystos[] =
675 {
676 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
677 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
678 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
679 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
680 42, 61, 68, 70, 73, 74, 77, 78, 81, 78,
681 77, 78, 75, 78, 75, 78, 78, 78, 78, 78,
682 78, 78, 78, 78, 78, 78, 78, 78, 78, 75,
683 75, 78, 78, 0, 68, 44, 46, 47, 48, 49,
684 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
685 60, 61, 62, 63, 64, 65, 67, 68, 70, 69,
686 43, 76, 76, 76, 76, 76, 76, 76, 76, 76,
687 71, 78, 78, 78, 78, 78, 78, 78, 78, 78,
688 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
689 78, 78, 78, 78, 79, 80, 78, 78, 45, 71,
690 43, 78, 80
691 };
692
693 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
694 # define YYSIZE_T __SIZE_TYPE__
695 #endif
696 #if ! defined (YYSIZE_T) && defined (size_t)
697 # define YYSIZE_T size_t
698 #endif
699 #if ! defined (YYSIZE_T)
700 # if defined (__STDC__) || defined (__cplusplus)
701 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
702 # define YYSIZE_T size_t
703 # endif
704 #endif
705 #if ! defined (YYSIZE_T)
706 # define YYSIZE_T unsigned int
707 #endif
708
709 #define yyerrok (yyerrstatus = 0)
710 #define yyclearin (yychar = YYEMPTY)
711 #define YYEMPTY (-2)
712 #define YYEOF 0
713
714 #define YYACCEPT goto yyacceptlab
715 #define YYABORT goto yyabortlab
716 #define YYERROR goto yyerrorlab
717
718
719 /* Like YYERROR except do call yyerror. This remains here temporarily
720 to ease the transition to the new meaning of YYERROR, for GCC.
721 Once GCC version 2 has supplanted version 1, this can go. */
722
723 #define YYFAIL goto yyerrlab
724
725 #define YYRECOVERING() (!!yyerrstatus)
726
727 #define YYBACKUP(Token, Value) \
728 do \
729 if (yychar == YYEMPTY && yylen == 1) \
730 { \
731 yychar = (Token); \
732 yylval = (Value); \
733 yytoken = YYTRANSLATE (yychar); \
734 YYPOPSTACK; \
735 goto yybackup; \
736 } \
737 else \
738 { \
739 yyerror ("syntax error: cannot back up");\
740 YYERROR; \
741 } \
742 while (0)
743
744 #define YYTERROR 1
745 #define YYERRCODE 256
746
747 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
748 are run). */
749
750 #ifndef YYLLOC_DEFAULT
751 # define YYLLOC_DEFAULT(Current, Rhs, N) \
752 ((Current).first_line = (Rhs)[1].first_line, \
753 (Current).first_column = (Rhs)[1].first_column, \
754 (Current).last_line = (Rhs)[N].last_line, \
755 (Current).last_column = (Rhs)[N].last_column)
756 #endif
757
758 /* YYLEX -- calling `yylex' with the right arguments. */
759
760 #ifdef YYLEX_PARAM
761 # define YYLEX yylex (&yylval, YYLEX_PARAM)
762 #else
763 # define YYLEX yylex (&yylval)
764 #endif
765
766 /* Enable debugging if requested. */
767 #if YYDEBUG
768
769 # ifndef YYFPRINTF
770 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
771 # define YYFPRINTF fprintf
772 # endif
773
774 # define YYDPRINTF(Args) \
775 do { \
776 if (yydebug) \
777 YYFPRINTF Args; \
778 } while (0)
779
780 # define YYDSYMPRINT(Args) \
781 do { \
782 if (yydebug) \
783 yysymprint Args; \
784 } while (0)
785
786 # define YYDSYMPRINTF(Title, Token, Value, Location) \
787 do { \
788 if (yydebug) \
789 { \
790 YYFPRINTF (stderr, "%s ", Title); \
791 yysymprint (stderr, \
792 Token, Value); \
793 YYFPRINTF (stderr, "\n"); \
794 } \
795 } while (0)
796
797 /*------------------------------------------------------------------.
798 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
799 | TOP (included). |
800 `------------------------------------------------------------------*/
801
802 #if defined (__STDC__) || defined (__cplusplus)
803 static void
804 yy_stack_print (short int *bottom, short int *top)
805 #else
806 static void
807 yy_stack_print (bottom, top)
808 short int *bottom;
809 short int *top;
810 #endif
811 {
812 YYFPRINTF (stderr, "Stack now");
813 for (/* Nothing. */; bottom <= top; ++bottom)
814 YYFPRINTF (stderr, " %d", *bottom);
815 YYFPRINTF (stderr, "\n");
816 }
817
818 # define YY_STACK_PRINT(Bottom, Top) \
819 do { \
820 if (yydebug) \
821 yy_stack_print ((Bottom), (Top)); \
822 } while (0)
823
824
825 /*------------------------------------------------.
826 | Report that the YYRULE is going to be reduced. |
827 `------------------------------------------------*/
828
829 #if defined (__STDC__) || defined (__cplusplus)
830 static void
831 yy_reduce_print (int yyrule)
832 #else
833 static void
834 yy_reduce_print (yyrule)
835 int yyrule;
836 #endif
837 {
838 int yyi;
839 unsigned int yylno = yyrline[yyrule];
840 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
841 yyrule - 1, yylno);
842 /* Print the symbols being reduced, and their result. */
843 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
844 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
845 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
846 }
847
848 # define YY_REDUCE_PRINT(Rule) \
849 do { \
850 if (yydebug) \
851 yy_reduce_print (Rule); \
852 } while (0)
853
854 /* Nonzero means print parse trace. It is left uninitialized so that
855 multiple parsers can coexist. */
856 int yydebug;
857 #else /* !YYDEBUG */
858 # define YYDPRINTF(Args)
859 # define YYDSYMPRINT(Args)
860 # define YYDSYMPRINTF(Title, Token, Value, Location)
861 # define YY_STACK_PRINT(Bottom, Top)
862 # define YY_REDUCE_PRINT(Rule)
863 #endif /* !YYDEBUG */
864
865
866 /* YYINITDEPTH -- initial size of the parser's stacks. */
867 #ifndef YYINITDEPTH
868 # define YYINITDEPTH 200
869 #endif
870
871 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
872 if the built-in stack extension method is used).
873
874 Do not make this value too large; the results are undefined if
875 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
876 evaluated with infinite-precision integer arithmetic. */
877
878 #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
879 # undef YYMAXDEPTH
880 #endif
881
882 #ifndef YYMAXDEPTH
883 # define YYMAXDEPTH 10000
884 #endif
885
886
887
888 #if YYERROR_VERBOSE
889
890 # ifndef yystrlen
891 # if defined (__GLIBC__) && defined (_STRING_H)
892 # define yystrlen strlen
893 # else
894 /* Return the length of YYSTR. */
895 static YYSIZE_T
896 # if defined (__STDC__) || defined (__cplusplus)
897 yystrlen (const char *yystr)
898 # else
899 yystrlen (yystr)
900 const char *yystr;
901 # endif
902 {
903 register const char *yys = yystr;
904
905 while (*yys++ != '\0')
906 continue;
907
908 return yys - yystr - 1;
909 }
910 # endif
911 # endif
912
913 # ifndef yystpcpy
914 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
915 # define yystpcpy stpcpy
916 # else
917 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
918 YYDEST. */
919 static char *
920 # if defined (__STDC__) || defined (__cplusplus)
921 yystpcpy (char *yydest, const char *yysrc)
922 # else
923 yystpcpy (yydest, yysrc)
924 char *yydest;
925 const char *yysrc;
926 # endif
927 {
928 register char *yyd = yydest;
929 register const char *yys = yysrc;
930
931 while ((*yyd++ = *yys++) != '\0')
932 continue;
933
934 return yyd - 1;
935 }
936 # endif
937 # endif
938
939 #endif /* !YYERROR_VERBOSE */
940
941
942
943 #if YYDEBUG
944 /*--------------------------------.
945 | Print this symbol on YYOUTPUT. |
946 `--------------------------------*/
947
948 #if defined (__STDC__) || defined (__cplusplus)
949 static void
950 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
951 #else
952 static void
953 yysymprint (yyoutput, yytype, yyvaluep)
954 FILE *yyoutput;
955 int yytype;
956 YYSTYPE *yyvaluep;
957 #endif
958 {
959 /* Pacify ``unused variable'' warnings. */
960 (void) yyvaluep;
961
962 if (yytype < YYNTOKENS)
963 {
964 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
965 # ifdef YYPRINT
966 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
967 # endif
968 }
969 else
970 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
971
972 switch (yytype)
973 {
974 default:
975 break;
976 }
977 YYFPRINTF (yyoutput, ")");
978 }
979
980 #endif /* ! YYDEBUG */
981 /*-----------------------------------------------.
982 | Release the memory associated to this symbol. |
983 `-----------------------------------------------*/
984
985 #if defined (__STDC__) || defined (__cplusplus)
986 static void
987 yydestruct (int yytype, YYSTYPE *yyvaluep)
988 #else
989 static void
990 yydestruct (yytype, yyvaluep)
991 int yytype;
992 YYSTYPE *yyvaluep;
993 #endif
994 {
995 /* Pacify ``unused variable'' warnings. */
996 (void) yyvaluep;
997
998 switch (yytype)
999 {
1000
1001 default:
1002 break;
1003 }
1004 }
1005
1006
1007 /* Prevent warnings from -Wmissing-prototypes. */
1008
1009 #ifdef YYPARSE_PARAM
1010 # if defined (__STDC__) || defined (__cplusplus)
1011 int yyparse (void *YYPARSE_PARAM);
1012 # else
1013 int yyparse ();
1014 # endif
1015 #else /* ! YYPARSE_PARAM */
1016 #if defined (__STDC__) || defined (__cplusplus)
1017 int yyparse (void);
1018 #else
1019 int yyparse ();
1020 #endif
1021 #endif /* ! YYPARSE_PARAM */
1022
1023
1024
1025
1026
1027
1028 /*----------.
1029 | yyparse. |
1030 `----------*/
1031
1032 #ifdef YYPARSE_PARAM
1033 # if defined (__STDC__) || defined (__cplusplus)
1034 int yyparse (void *YYPARSE_PARAM)
1035 # else
1036 int yyparse (YYPARSE_PARAM)
1037 void *YYPARSE_PARAM;
1038 # endif
1039 #else /* ! YYPARSE_PARAM */
1040 #if defined (__STDC__) || defined (__cplusplus)
1041 int
1042 yyparse (void)
1043 #else
1044 int
1045 yyparse ()
1046
1047 #endif
1048 #endif
1049 {
1050 /* The lookahead symbol. */
1051 int yychar;
1052
1053 /* The semantic value of the lookahead symbol. */
1054 YYSTYPE yylval;
1055
1056 /* Number of syntax errors so far. */
1057 int yynerrs;
1058
1059 register int yystate;
1060 register int yyn;
1061 int yyresult;
1062 /* Number of tokens to shift before error messages enabled. */
1063 int yyerrstatus;
1064 /* Lookahead token as an internal (translated) token number. */
1065 int yytoken = 0;
1066
1067 /* Three stacks and their tools:
1068 `yyss': related to states,
1069 `yyvs': related to semantic values,
1070 `yyls': related to locations.
1071
1072 Refer to the stacks thru separate pointers, to allow yyoverflow
1073 to reallocate them elsewhere. */
1074
1075 /* The state stack. */
1076 short int yyssa[YYINITDEPTH];
1077 short int *yyss = yyssa;
1078 register short int *yyssp;
1079
1080 /* The semantic value stack. */
1081 YYSTYPE yyvsa[YYINITDEPTH];
1082 YYSTYPE *yyvs = yyvsa;
1083 register YYSTYPE *yyvsp;
1084
1085
1086
1087 #define YYPOPSTACK (yyvsp--, yyssp--)
1088
1089 YYSIZE_T yystacksize = YYINITDEPTH;
1090
1091 /* The variables used to return semantic value and location from the
1092 action routines. */
1093 YYSTYPE yyval;
1094
1095
1096 /* When reducing, the number of symbols on the RHS of the reduced
1097 rule. */
1098 int yylen;
1099
1100 YYDPRINTF ((stderr, "Starting parse\n"));
1101
1102 yystate = 0;
1103 yyerrstatus = 0;
1104 yynerrs = 0;
1105 yychar = YYEMPTY; /* Cause a token to be read. */
1106
1107 /* Initialize stack pointers.
1108 Waste one element of value and location stack
1109 so that they stay on the same level as the state stack.
1110 The wasted elements are never initialized. */
1111
1112 yyssp = yyss;
1113 yyvsp = yyvs;
1114
1115
1116 goto yysetstate;
1117
1118 /*------------------------------------------------------------.
1119 | yynewstate -- Push a new state, which is found in yystate. |
1120 `------------------------------------------------------------*/
1121 yynewstate:
1122 /* In all cases, when you get here, the value and location stacks
1123 have just been pushed. so pushing a state here evens the stacks.
1124 */
1125 yyssp++;
1126
1127 yysetstate:
1128 *yyssp = yystate;
1129
1130 if (yyss + yystacksize - 1 <= yyssp)
1131 {
1132 /* Get the current used size of the three stacks, in elements. */
1133 YYSIZE_T yysize = yyssp - yyss + 1;
1134
1135 #ifdef yyoverflow
1136 {
1137 /* Give user a chance to reallocate the stack. Use copies of
1138 these so that the &'s don't force the real ones into
1139 memory. */
1140 YYSTYPE *yyvs1 = yyvs;
1141 short int *yyss1 = yyss;
1142
1143
1144 /* Each stack pointer address is followed by the size of the
1145 data in use in that stack, in bytes. This used to be a
1146 conditional around just the two extra args, but that might
1147 be undefined if yyoverflow is a macro. */
1148 yyoverflow ("parser stack overflow",
1149 &yyss1, yysize * sizeof (*yyssp),
1150 &yyvs1, yysize * sizeof (*yyvsp),
1151
1152 &yystacksize);
1153
1154 yyss = yyss1;
1155 yyvs = yyvs1;
1156 }
1157 #else /* no yyoverflow */
1158 # ifndef YYSTACK_RELOCATE
1159 goto yyoverflowlab;
1160 # else
1161 /* Extend the stack our own way. */
1162 if (YYMAXDEPTH <= yystacksize)
1163 goto yyoverflowlab;
1164 yystacksize *= 2;
1165 if (YYMAXDEPTH < yystacksize)
1166 yystacksize = YYMAXDEPTH;
1167
1168 {
1169 short int *yyss1 = yyss;
1170 union yyalloc *yyptr =
1171 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1172 if (! yyptr)
1173 goto yyoverflowlab;
1174 YYSTACK_RELOCATE (yyss);
1175 YYSTACK_RELOCATE (yyvs);
1176
1177 # undef YYSTACK_RELOCATE
1178 if (yyss1 != yyssa)
1179 YYSTACK_FREE (yyss1);
1180 }
1181 # endif
1182 #endif /* no yyoverflow */
1183
1184 yyssp = yyss + yysize - 1;
1185 yyvsp = yyvs + yysize - 1;
1186
1187
1188 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1189 (unsigned long int) yystacksize));
1190
1191 if (yyss + yystacksize - 1 <= yyssp)
1192 YYABORT;
1193 }
1194
1195 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1196
1197 goto yybackup;
1198
1199 /*-----------.
1200 | yybackup. |
1201 `-----------*/
1202 yybackup:
1203
1204 /* Do appropriate processing given the current state. */
1205 /* Read a lookahead token if we need one and don't already have one. */
1206 /* yyresume: */
1207
1208 /* First try to decide what to do without reference to lookahead token. */
1209
1210 yyn = yypact[yystate];
1211 if (yyn == YYPACT_NINF)
1212 goto yydefault;
1213
1214 /* Not known => get a lookahead token if don't already have one. */
1215
1216 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1217 if (yychar == YYEMPTY)
1218 {
1219 YYDPRINTF ((stderr, "Reading a token: "));
1220 yychar = YYLEX;
1221 }
1222
1223 if (yychar <= YYEOF)
1224 {
1225 yychar = yytoken = YYEOF;
1226 YYDPRINTF ((stderr, "Now at end of input.\n"));
1227 }
1228 else
1229 {
1230 yytoken = YYTRANSLATE (yychar);
1231 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1232 }
1233
1234 /* If the proper action on seeing token YYTOKEN is to reduce or to
1235 detect an error, take that action. */
1236 yyn += yytoken;
1237 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1238 goto yydefault;
1239 yyn = yytable[yyn];
1240 if (yyn <= 0)
1241 {
1242 if (yyn == 0 || yyn == YYTABLE_NINF)
1243 goto yyerrlab;
1244 yyn = -yyn;
1245 goto yyreduce;
1246 }
1247
1248 if (yyn == YYFINAL)
1249 YYACCEPT;
1250
1251 /* Shift the lookahead token. */
1252 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1253
1254 /* Discard the token being shifted unless it is eof. */
1255 if (yychar != YYEOF)
1256 yychar = YYEMPTY;
1257
1258 *++yyvsp = yylval;
1259
1260
1261 /* Count tokens shifted since error; after three, turn off error
1262 status. */
1263 if (yyerrstatus)
1264 yyerrstatus--;
1265
1266 yystate = yyn;
1267 goto yynewstate;
1268
1269
1270 /*-----------------------------------------------------------.
1271 | yydefault -- do the default action for the current state. |
1272 `-----------------------------------------------------------*/
1273 yydefault:
1274 yyn = yydefact[yystate];
1275 if (yyn == 0)
1276 goto yyerrlab;
1277 goto yyreduce;
1278
1279
1280 /*-----------------------------.
1281 | yyreduce -- Do a reduction. |
1282 `-----------------------------*/
1283 yyreduce:
1284 /* yyn is the number of a rule to reduce with. */
1285 yylen = yyr2[yyn];
1286
1287 /* If YYLEN is nonzero, implement the default value of the action:
1288 `$$ = $1'.
1289
1290 Otherwise, the following line sets YYVAL to garbage.
1291 This behavior is undocumented and Bison
1292 users should not rely upon it. Assigning to YYVAL
1293 unconditionally makes the parser a bit smaller, and it avoids a
1294 GCC warning that YYVAL may be used uninitialized. */
1295 yyval = yyvsp[1-yylen];
1296
1297
1298 YY_REDUCE_PRINT (yyn);
1299 switch (yyn)
1300 {
1301 case 2:
1302 #line 102 "debugparse.y"
1303 { create_command((struct eval_command*)resultptr, COMMAND_NOP, 0); }
1304 break;
1305
1306 case 3:
1307 #line 103 "debugparse.y"
1308 { *(struct eval_command*)resultptr = yyvsp[-1].command; }
1309 break;
1310
1311 case 4:
1312 #line 104 "debugparse.y"
1313 { create_command((struct eval_command*)resultptr, COMMAND_PRINT, 1, &yyvsp[-1].scalar); }
1314 break;
1315
1316 case 5:
1317 #line 107 "debugparse.y"
1318 { create_command(&yyval.command, COMMAND_PRINT, 1, &yyvsp[0].scalar); }
1319 break;
1320
1321 case 6:
1322 #line 108 "debugparse.y"
1323 { create_command(&yyval.command, COMMAND_REGS, 0); }
1324 break;
1325
1326 case 7:
1327 #line 109 "debugparse.y"
1328 { create_command(&yyval.command, COMMAND_FLOATS, 0); }
1329 break;
1330
1331 case 8:
1332 #line 110 "debugparse.y"
1333 { create_command(&yyval.command, COMMAND_SETREG, 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1334 break;
1335
1336 case 9:
1337 #line 111 "debugparse.y"
1338 { create_command(&yyval.command, COMMAND_BREAK, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1339 break;
1340
1341 case 10:
1342 #line 112 "debugparse.y"
1343 { create_command(&yyval.command, COMMAND_LIST_BREAK, 0); }
1344 break;
1345
1346 case 11:
1347 #line 113 "debugparse.y"
1348 { create_command(&yyval.command, COMMAND_STEP, 1, &yyvsp[0].scalar); }
1349 break;
1350
1351 case 12:
1352 #line 114 "debugparse.y"
1353 { create_command(&yyval.command, COMMAND_NEXT, 1, &yyvsp[0].scalar); }
1354 break;
1355
1356 case 13:
1357 #line 115 "debugparse.y"
1358 { create_command(&yyval.command, COMMAND_CONTINUE, 0); }
1359 break;
1360
1361 case 14:
1362 #line 116 "debugparse.y"
1363 { create_command(&yyval.command, COMMAND_QUIT, 0); }
1364 break;
1365
1366 case 15:
1367 #line 117 "debugparse.y"
1368 { create_command(&yyval.command, COMMAND_E2P, 1, &yyvsp[0].scalar); }
1369 break;
1370
1371 case 16:
1372 #line 118 "debugparse.y"
1373 { create_command(&yyval.command, COMMAND_INSPECT_BYTE, 1, &yyvsp[0].scalar); }
1374 break;
1375
1376 case 17:
1377 #line 119 "debugparse.y"
1378 { create_command(&yyval.command, COMMAND_INSPECT_HALF, 1, &yyvsp[0].scalar); }
1379 break;
1380
1381 case 18:
1382 #line 120 "debugparse.y"
1383 { create_command(&yyval.command, COMMAND_INSPECT_WORD, 1, &yyvsp[0].scalar); }
1384 break;
1385
1386 case 19:
1387 #line 121 "debugparse.y"
1388 { create_command(&yyval.command, COMMAND_INSPECT_DWORD, 1, &yyvsp[0].scalar); }
1389 break;
1390
1391 case 20:
1392 #line 122 "debugparse.y"
1393 { create_command(&yyval.command, COMMAND_INSPECT_STRING, 1, &yyvsp[0].scalar); }
1394 break;
1395
1396 case 21:
1397 #line 123 "debugparse.y"
1398 { create_command(&yyval.command, COMMAND_INSPECT_MEM, 1, &yyvsp[-1].scalar); }
1399 break;
1400
1401 case 22:
1402 #line 124 "debugparse.y"
1403 { create_command(&yyval.command, COMMAND_WATCH, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1404 break;
1405
1406 case 23:
1407 #line 125 "debugparse.y"
1408 { create_command(&yyval.command, COMMAND_WATCH_BYTE, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1409 break;
1410
1411 case 24:
1412 #line 126 "debugparse.y"
1413 { create_command(&yyval.command, COMMAND_WATCH_HALF, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1414 break;
1415
1416 case 25:
1417 #line 127 "debugparse.y"
1418 { create_command(&yyval.command, COMMAND_WATCH_WORD, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1419 break;
1420
1421 case 26:
1422 #line 128 "debugparse.y"
1423 { create_command(&yyval.command, COMMAND_WATCH_DWORD, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1424 break;
1425
1426 case 27:
1427 #line 129 "debugparse.y"
1428 { create_command(&yyval.command, COMMAND_DELETE_WATCH, 1, &yyvsp[0].scalar); }
1429 break;
1430
1431 case 28:
1432 #line 130 "debugparse.y"
1433 { create_command(&yyval.command, COMMAND_DUMP, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1434 break;
1435
1436 case 29:
1437 #line 131 "debugparse.y"
1438 { create_command(&yyval.command, COMMAND_DISASM, 2, &yyvsp[-1].scalar, &yyvsp[0].scalar); }
1439 break;
1440
1441 case 30:
1442 #line 132 "debugparse.y"
1443 { create_command(&yyval.command, COMMAND_HELP, 0); }
1444 break;
1445
1446 case 31:
1447 #line 135 "debugparse.y"
1448 {
1449 struct eval_scalar s;
1450 s.type = SCALAR_EMPTY;
1451 yyval.scalar = s;
1452 }
1453 break;
1454
1455 case 32:
1456 #line 140 "debugparse.y"
1457 { yyval.scalar = yyvsp[0].scalar; }
1458 break;
1459
1460 case 33:
1461 #line 143 "debugparse.y"
1462 {
1463 struct eval_scalar s;
1464 s.type = SCALAR_EMPTY;
1465 yyval.scalar = s;
1466 }
1467 break;
1468
1469 case 34:
1470 #line 148 "debugparse.y"
1471 { yyval.scalar = yyvsp[0].scalar; }
1472 break;
1473
1474 case 35:
1475 #line 152 "debugparse.y"
1476 { yyval.scalar = yyvsp[0].scalar; }
1477 break;
1478
1479 case 36:
1480 #line 153 "debugparse.y"
1481 { yyval.scalar = yyvsp[0].scalar; }
1482 break;
1483
1484 case 37:
1485 #line 154 "debugparse.y"
1486 { yyval.scalar = yyvsp[0].scalar; }
1487 break;
1488
1489 case 38:
1490 #line 155 "debugparse.y"
1491 { yyval.scalar = yyvsp[0].scalar; }
1492 break;
1493
1494 case 39:
1495 #line 156 "debugparse.y"
1496 { yyval.scalar = yyvsp[0].scalar; }
1497 break;
1498
1499 case 40:
1500 #line 157 "debugparse.y"
1501 { yyval.scalar = yyvsp[0].scalar; }
1502 break;
1503
1504 case 41:
1505 #line 158 "debugparse.y"
1506 { yyval.scalar = yyvsp[0].scalar; }
1507 break;
1508
1509 case 42:
1510 #line 159 "debugparse.y"
1511 { yyval.scalar = yyvsp[0].scalar; }
1512 break;
1513
1514 case 43:
1515 #line 160 "debugparse.y"
1516 { yyval.scalar = yyvsp[0].scalar; }
1517 break;
1518
1519 case 44:
1520 #line 161 "debugparse.y"
1521 { yyval.scalar = yyvsp[0].scalar; }
1522 break;
1523
1524 case 45:
1525 #line 164 "debugparse.y"
1526 { yyval.scalar = yyvsp[0].scalar; }
1527 break;
1528
1529 case 46:
1530 #line 165 "debugparse.y"
1531 { yyval.scalar = yyvsp[0].scalar; }
1532 break;
1533
1534 case 47:
1535 #line 166 "debugparse.y"
1536 { yyval.scalar = yyvsp[0].scalar; }
1537 break;
1538
1539 case 48:
1540 #line 167 "debugparse.y"
1541 { yyval.scalar = yyvsp[0].scalar; }
1542 break;
1543
1544 case 49:
1545 #line 168 "debugparse.y"
1546 { create_func_call(&yyval.scalar, "*", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1547 break;
1548
1549 case 50:
1550 #line 169 "debugparse.y"
1551 { create_func_call(&yyval.scalar, "/", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1552 break;
1553
1554 case 51:
1555 #line 170 "debugparse.y"
1556 { create_func_call(&yyval.scalar, "%", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1557 break;
1558
1559 case 52:
1560 #line 171 "debugparse.y"
1561 { create_func_call(&yyval.scalar, "+", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1562 break;
1563
1564 case 53:
1565 #line 172 "debugparse.y"
1566 { create_func_call(&yyval.scalar, "-", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1567 break;
1568
1569 case 54:
1570 #line 173 "debugparse.y"
1571 { create_func_call(&yyval.scalar, "&", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1572 break;
1573
1574 case 55:
1575 #line 174 "debugparse.y"
1576 { create_func_call(&yyval.scalar, "|", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1577 break;
1578
1579 case 56:
1580 #line 175 "debugparse.y"
1581 { create_func_call(&yyval.scalar, "^", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1582 break;
1583
1584 case 57:
1585 #line 176 "debugparse.y"
1586 { create_func_call(&yyval.scalar, "**", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1587 break;
1588
1589 case 58:
1590 #line 177 "debugparse.y"
1591 { create_func_call(&yyval.scalar, "<<", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1592 break;
1593
1594 case 59:
1595 #line 178 "debugparse.y"
1596 { create_func_call(&yyval.scalar, ">>", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1597 break;
1598
1599 case 60:
1600 #line 179 "debugparse.y"
1601 { create_func_call(&yyval.scalar, "==", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1602 break;
1603
1604 case 61:
1605 #line 180 "debugparse.y"
1606 { create_func_call(&yyval.scalar, "!=", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1607 break;
1608
1609 case 62:
1610 #line 181 "debugparse.y"
1611 { create_func_call(&yyval.scalar, ">", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1612 break;
1613
1614 case 63:
1615 #line 182 "debugparse.y"
1616 { create_func_call(&yyval.scalar, ">=", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1617 break;
1618
1619 case 64:
1620 #line 183 "debugparse.y"
1621 { create_func_call(&yyval.scalar, "<", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1622 break;
1623
1624 case 65:
1625 #line 184 "debugparse.y"
1626 { create_func_call(&yyval.scalar, "<=", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1627 break;
1628
1629 case 66:
1630 #line 185 "debugparse.y"
1631 { create_func_call(&yyval.scalar, "&&", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1632 break;
1633
1634 case 67:
1635 #line 186 "debugparse.y"
1636 { create_func_call(&yyval.scalar, "||", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1637 break;
1638
1639 case 68:
1640 #line 187 "debugparse.y"
1641 { create_func_call(&yyval.scalar, "^^", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1642 break;
1643
1644 case 69:
1645 #line 188 "debugparse.y"
1646 { create_func_call(&yyval.scalar, "-", 1, &yyvsp[0].scalar); }
1647 break;
1648
1649 case 70:
1650 #line 189 "debugparse.y"
1651 { yyval.scalar = yyvsp[-1].scalar; }
1652 break;
1653
1654 case 71:
1655 #line 190 "debugparse.y"
1656 { create_func_call(&yyval.scalar, "?:", 3, &yyvsp[-4].scalar, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1657 break;
1658
1659 case 72:
1660 #line 191 "debugparse.y"
1661 { create_func_call(&yyval.scalar, ".", 2, &yyvsp[-2].scalar, &yyvsp[0].scalar); }
1662 break;
1663
1664 case 73:
1665 #line 193 "debugparse.y"
1666 { create_func_call_list(&yyval.scalar, yyvsp[-3].ident, &yyvsp[-1].scalars); }
1667 break;
1668
1669 case 74:
1670 #line 199 "debugparse.y"
1671 {
1672 struct eval_scalarlist s;
1673 s.count = 0;
1674 s.scalars = NULL;
1675 yyval.scalars = s;
1676 }
1677 break;
1678
1679 case 75:
1680 #line 205 "debugparse.y"
1681 { yyval.scalars = yyvsp[0].scalars; }
1682 break;
1683
1684 case 76:
1685 #line 208 "debugparse.y"
1686 { scalarlist_set(&yyval.scalars, &yyvsp[0].scalar); }
1687 break;
1688
1689 case 77:
1690 #line 210 "debugparse.y"
1691 {
1692 scalarlist_concat(&yyval.scalars, &yyvsp[-2].scalars, &yyvsp[0].scalars);
1693 scalarlist_destroy_flat(&yyvsp[-2].scalars);
1694 scalarlist_destroy_flat(&yyvsp[0].scalars);
1695 }
1696 break;
1697
1698 case 78:
1699 #line 217 "debugparse.y"
1700 { yyval.ident = yyvsp[0].ident; }
1701 break;
1702
1703
1704 }
1705
1706 /* Line 1010 of yacc.c. */
1707 #line 1708 "debugparse.c"
1708
1709 yyvsp -= yylen;
1710 yyssp -= yylen;
1711
1712
1713 YY_STACK_PRINT (yyss, yyssp);
1714
1715 *++yyvsp = yyval;
1716
1717
1718 /* Now `shift' the result of the reduction. Determine what state
1719 that goes to, based on the state we popped back to and the rule
1720 number reduced by. */
1721
1722 yyn = yyr1[yyn];
1723
1724 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1725 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1726 yystate = yytable[yystate];
1727 else
1728 yystate = yydefgoto[yyn - YYNTOKENS];
1729
1730 goto yynewstate;
1731
1732
1733 /*------------------------------------.
1734 | yyerrlab -- here on detecting error |
1735 `------------------------------------*/
1736 yyerrlab:
1737 /* If not already recovering from an error, report this error. */
1738 if (!yyerrstatus)
1739 {
1740 ++yynerrs;
1741 #if YYERROR_VERBOSE
1742 yyn = yypact[yystate];
1743
1744 if (YYPACT_NINF < yyn && yyn < YYLAST)
1745 {
1746 YYSIZE_T yysize = 0;
1747 int yytype = YYTRANSLATE (yychar);
1748 const char* yyprefix;
1749 char *yymsg;
1750 int yyx;
1751
1752 /* Start YYX at -YYN if negative to avoid negative indexes in
1753 YYCHECK. */
1754 int yyxbegin = yyn < 0 ? -yyn : 0;
1755
1756 /* Stay within bounds of both yycheck and yytname. */
1757 int yychecklim = YYLAST - yyn;
1758 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1759 int yycount = 0;
1760
1761 yyprefix = ", expecting ";
1762 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1763 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1764 {
1765 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
1766 yycount += 1;
1767 if (yycount == 5)
1768 {
1769 yysize = 0;
1770 break;
1771 }
1772 }
1773 yysize += (sizeof ("syntax error, unexpected ")
1774 + yystrlen (yytname[yytype]));
1775 yymsg = (char *) YYSTACK_ALLOC (yysize);
1776 if (yymsg != 0)
1777 {
1778 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
1779 yyp = yystpcpy (yyp, yytname[yytype]);
1780
1781 if (yycount < 5)
1782 {
1783 yyprefix = ", expecting ";
1784 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1785 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1786 {
1787 yyp = yystpcpy (yyp, yyprefix);
1788 yyp = yystpcpy (yyp, yytname[yyx]);
1789 yyprefix = " or ";
1790 }
1791 }
1792 yyerror (yymsg);
1793 YYSTACK_FREE (yymsg);
1794 }
1795 else
1796 yyerror ("syntax error; also virtual memory exhausted");
1797 }
1798 else
1799 #endif /* YYERROR_VERBOSE */
1800 yyerror ("syntax error");
1801 }
1802
1803
1804
1805 if (yyerrstatus == 3)
1806 {
1807 /* If just tried and failed to reuse lookahead token after an
1808 error, discard it. */
1809
1810 if (yychar <= YYEOF)
1811 {
1812 /* If at end of input, pop the error token,
1813 then the rest of the stack, then return failure. */
1814 if (yychar == YYEOF)
1815 for (;;)
1816 {
1817 YYPOPSTACK;
1818 if (yyssp == yyss)
1819 YYABORT;
1820 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1821 yydestruct (yystos[*yyssp], yyvsp);
1822 }
1823 }
1824 else
1825 {
1826 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
1827 yydestruct (yytoken, &yylval);
1828 yychar = YYEMPTY;
1829
1830 }
1831 }
1832
1833 /* Else will try to reuse lookahead token after shifting the error
1834 token. */
1835 goto yyerrlab1;
1836
1837
1838 /*---------------------------------------------------.
1839 | yyerrorlab -- error raised explicitly by YYERROR. |
1840 `---------------------------------------------------*/
1841 yyerrorlab:
1842
1843 #ifdef __GNUC__
1844 /* Pacify GCC when the user code never invokes YYERROR and the label
1845 yyerrorlab therefore never appears in user code. */
1846 if (0)
1847 goto yyerrorlab;
1848 #endif
1849
1850 yyvsp -= yylen;
1851 yyssp -= yylen;
1852 yystate = *yyssp;
1853 goto yyerrlab1;
1854
1855
1856 /*-------------------------------------------------------------.
1857 | yyerrlab1 -- common code for both syntax error and YYERROR. |
1858 `-------------------------------------------------------------*/
1859 yyerrlab1:
1860 yyerrstatus = 3; /* Each real token shifted decrements this. */
1861
1862 for (;;)
1863 {
1864 yyn = yypact[yystate];
1865 if (yyn != YYPACT_NINF)
1866 {
1867 yyn += YYTERROR;
1868 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1869 {
1870 yyn = yytable[yyn];
1871 if (0 < yyn)
1872 break;
1873 }
1874 }
1875
1876 /* Pop the current state because it cannot handle the error token. */
1877 if (yyssp == yyss)
1878 YYABORT;
1879
1880 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1881 yydestruct (yystos[yystate], yyvsp);
1882 YYPOPSTACK;
1883 yystate = *yyssp;
1884 YY_STACK_PRINT (yyss, yyssp);
1885 }
1886
1887 if (yyn == YYFINAL)
1888 YYACCEPT;
1889
1890 YYDPRINTF ((stderr, "Shifting error token, "));
1891
1892 *++yyvsp = yylval;
1893
1894
1895 yystate = yyn;
1896 goto yynewstate;
1897
1898
1899 /*-------------------------------------.
1900 | yyacceptlab -- YYACCEPT comes here. |
1901 `-------------------------------------*/
1902 yyacceptlab:
1903 yyresult = 0;
1904 goto yyreturn;
1905
1906 /*-----------------------------------.
1907 | yyabortlab -- YYABORT comes here. |
1908 `-----------------------------------*/
1909 yyabortlab:
1910 yyresult = 1;
1911 goto yyreturn;
1912
1913 #ifndef yyoverflow
1914 /*----------------------------------------------.
1915 | yyoverflowlab -- parser overflow comes here. |
1916 `----------------------------------------------*/
1917 yyoverflowlab:
1918 yyerror ("parser stack overflow");
1919 yyresult = 2;
1920 /* Fall through. */
1921 #endif
1922
1923 yyreturn:
1924 #ifndef yyoverflow
1925 if (yyss != yyssa)
1926 YYSTACK_FREE (yyss);
1927 #endif
1928 return yyresult;
1929 }
1930
1931
1932 #line 220 "debugparse.y"
1933
1934

  ViewVC Help
Powered by ViewVC 1.1.26