128 mike 1.2
129 static const char yytranslate[] = { 0,
130 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
131 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
132 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
133 2, 2, 2, 2, 2, 2, 2, 2, 2, 26,
134 27, 24, 2, 25, 2, 2, 2, 2, 2, 2,
135 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
136 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
137 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
138 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
139 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
140 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
141 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
143 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
149 mike 1.2 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
158 mike 1.2 };
159
160 #if YYDEBUG != 0
161 static const short yyprhs[] = { 0,
162 0, 2, 6, 8, 10, 12, 16, 19, 21, 24,
163 27, 31, 35, 38, 42, 44, 48, 53, 55, 57,
164 61, 65, 69, 73, 77, 81, 85, 90, 92, 94,
165 96, 98, 100, 102, 104, 106
166 };
167
168 static const short yyrhs[] = { 29,
169 0, 20, 30, 32, 0, 24, 0, 31, 0, 40,
170 0, 31, 25, 40, 0, 33, 34, 0, 33, 0,
171 22, 41, 0, 21, 35, 0, 35, 16, 35, 0,
172 35, 17, 35, 0, 15, 35, 0, 26, 35, 27,
173 0, 36, 0, 36, 18, 39, 0, 36, 18, 15,
174 39, 0, 37, 0, 38, 0, 42, 11, 42, 0,
175 42, 13, 42, 0, 42, 12, 42, 0, 42, 14,
176 42, 0, 42, 9, 42, 0, 42, 10, 42, 0,
177 42, 18, 8, 0, 42, 18, 15, 8, 0, 6,
178 0, 7, 0, 19, 0, 19, 0, 40, 0, 3,
179 mike 1.2 0, 4, 0, 5, 0, 39, 0
180 };
181
182 #endif
183
184 #if YYDEBUG != 0
185 static const short yyrline[] = { 0,
186 130, 136, 142, 146, 152, 156, 162, 166, 172, 179,
187 185, 190, 195, 201, 205, 209, 214, 223, 227, 233,
188 238, 243, 248, 253, 258, 265, 270, 277, 281, 287,
189 293, 300, 306, 311, 316, 321
190 };
|
203 mike 1.2 };
204 #endif
205
206 static const short yyr1[] = { 0,
207 28, 29, 30, 30, 31, 31, 32, 32, 33, 34,
208 35, 35, 35, 35, 35, 35, 35, 36, 36, 37,
209 37, 37, 37, 37, 37, 38, 38, 39, 39, 40,
210 41, 42, 42, 42, 42, 42
211 };
212
213 static const short yyr2[] = { 0,
214 1, 3, 1, 1, 1, 3, 2, 1, 2, 2,
215 3, 3, 2, 3, 1, 3, 4, 1, 1, 3,
216 3, 3, 3, 3, 3, 3, 4, 1, 1, 1,
217 1, 1, 1, 1, 1, 1
218 };
219
220 static const short yydefact[] = { 0,
221 0, 1, 30, 3, 0, 4, 5, 0, 2, 8,
222 0, 31, 9, 0, 7, 6, 33, 34, 35, 28,
223 29, 0, 0, 10, 15, 18, 19, 36, 32, 0,
224 mike 1.2 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
225 0, 0, 14, 11, 12, 0, 16, 24, 25, 20,
226 22, 21, 23, 26, 0, 17, 27, 0, 0, 0
227 };
228
229 static const short yydefgoto[] = { 58,
230 2, 5, 6, 9, 10, 15, 24, 25, 26, 27,
231 28, 29, 13, 30
232 };
233
234 static const short yypact[] = { -5,
235 18,-32768,-32768,-32768, 5, 16,-32768, 24,-32768, 33,
236 26,-32768,-32768, -3,-32768,-32768,-32768,-32768,-32768,-32768,
237 -32768, -3, -3, 23, 37,-32768,-32768,-32768,-32768, 20,
238 -32768, 1, -3, -3, 29, 2, 2, 2, 2, 2,
239 2, 11,-32768, 39,-32768, 46,-32768,-32768,-32768,-32768,
240 -32768,-32768,-32768,-32768, 49,-32768,-32768, 58, 59,-32768
241 };
242
243 static const short yypgoto[] = {-32768,
244 -32768,-32768,-32768,-32768,-32768,-32768, -9,-32768,-32768,-32768,
245 mike 1.2 -24, 9,-32768, 10
246 };
247
248
249 #define YYLAST 59
250
251
252 static const short yytable[] = { 17,
253 18, 19, 20, 21, 17, 18, 19, 20, 21, 7,
254 47, 22, 31, 32, 1, 3, 33, 34, 54, 16,
255 3, 56, 23, 44, 45, 55, 8, 43, 36, 37,
256 38, 39, 40, 41, 20, 21, 3, 42, 33, 34,
257 11, 4, 12, 46, 3, 48, 49, 50, 51, 52,
258 53, 20, 21, 14, 35, 34, 57, 59, 60
259 };
260
261 static const short yycheck[] = { 3,
262 4, 5, 6, 7, 3, 4, 5, 6, 7, 1,
263 35, 15, 22, 23, 20, 19, 16, 17, 8, 11,
264 19, 46, 26, 33, 34, 15, 22, 27, 9, 10,
265 11, 12, 13, 14, 6, 7, 19, 18, 16, 17,
266 mike 1.2 25, 24, 19, 15, 19, 36, 37, 38, 39, 40,
267 41, 6, 7, 21, 18, 17, 8, 0, 0
268 };
269 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
270 #line 3 "bison.simple"
271 /* This file comes from bison-@bison_version@. */
272
273 /* Skeleton output parser for bison,
274 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
275
276 This program is free software; you can redistribute it and/or modify
277 it under the terms of the GNU General Public License as published by
278 the Free Software Foundation; either version 2, or (at your option)
279 any later version.
280
281 This program is distributed in the hope that it will be useful,
282 but WITHOUT ANY WARRANTY; without even the implied warranty of
283 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
284 GNU General Public License for more details.
285
286 You should have received a copy of the GNU General Public License
287 mike 1.2 along with this program; if not, write to the Free Software
288 Foundation, Inc., 59 Temple Place - Suite 330,
289 Boston, MA 02111-1307, USA. */
290
291 /* As a special exception, when this file is copied by Bison into a
292 Bison output file, you may use that output file without restriction.
293 This special exception was added by the Free Software Foundation
294 in version 1.24 of Bison. */
295
296 /* This is the parser code that is written into each bison parser
297 when the %semantic_parser declaration is not specified in the grammar.
298 It was written by Richard Stallman by simplifying the hairy parser
299 used when %semantic_parser is specified. */
300
301 #ifndef YYSTACK_USE_ALLOCA
302 #ifdef alloca
303 #define YYSTACK_USE_ALLOCA
304 #else /* alloca not defined */
305 #ifdef __GNUC__
306 #define YYSTACK_USE_ALLOCA
307 #define alloca __builtin_alloca
308 mike 1.2 #else /* not GNU C. */
309 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
310 #define YYSTACK_USE_ALLOCA
311 #include <alloca.h>
312 #else /* not sparc */
313 /* We think this test detects Watcom and Microsoft C. */
314 /* This used to test MSDOS, but that is a bad idea
315 since that symbol is in the user namespace. */
316 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
317 #if 0 /* No need for malloc.h, which pollutes the namespace;
318 instead, just don't use alloca. */
319 #include <malloc.h>
320 #endif
321 #else /* not MSDOS, or __TURBOC__ */
322 #if defined(_AIX)
323 /* I don't know what this was needed for, but it pollutes the namespace.
324 So I turned it off. rms, 2 May 1997. */
325 /* #include <malloc.h> */
326 #pragma alloca
327 #define YYSTACK_USE_ALLOCA
328 #else /* not MSDOS, or __TURBOC__, or _AIX */
329 mike 1.2 #if 0
330 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
331 and on HPUX 10. Eventually we can turn this on. */
332 #define YYSTACK_USE_ALLOCA
333 #define alloca __builtin_alloca
334 #endif /* __hpux */
335 #endif
336 #endif /* not _AIX */
337 #endif /* not MSDOS, or __TURBOC__ */
338 #endif /* not sparc */
339 #endif /* not GNU C */
340 #endif /* alloca not defined */
341 #endif /* YYSTACK_USE_ALLOCA not defined */
342
343 #ifdef YYSTACK_USE_ALLOCA
344 #define YYSTACK_ALLOC alloca
345 #else
346 #define YYSTACK_ALLOC malloc
347 #endif
348
349 /* Note: there must be only one dollar sign in this file.
350 mike 1.2 It is replaced by the list of actions, each action
351 as one case of the switch. */
352
353 #define yyerrok (yyerrstatus = 0)
354 #define yyclearin (yychar = YYEMPTY)
355 #define YYEMPTY -2
356 #define YYEOF 0
357 #define YYACCEPT goto yyacceptlab
358 #define YYABORT goto yyabortlab
359 #define YYERROR goto yyerrlab1
360 /* Like YYERROR except do call yyerror.
361 This remains here temporarily to ease the
362 transition to the new meaning of YYERROR, for GCC.
363 Once GCC version 2 has supplanted version 1, this can go. */
364 #define YYFAIL goto yyerrlab
365 #define YYRECOVERING() (!!yyerrstatus)
366 #define YYBACKUP(token, value) \
367 do \
368 if (yychar == YYEMPTY && yylen == 1) \
369 { yychar = (token), yylval = (value); \
370 yychar1 = YYTRANSLATE (yychar); \
371 mike 1.2 YYPOPSTACK; \
372 goto yybackup; \
373 } \
374 else \
375 { yyerror ("syntax error: cannot back up"); YYERROR; } \
376 while (0)
377
378 #define YYTERROR 1
379 #define YYERRCODE 256
380
381 #ifndef YYPURE
382 #define YYLEX yylex()
383 #endif
384
385 #ifdef YYPURE
386 #ifdef YYLSP_NEEDED
387 #ifdef YYLEX_PARAM
388 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
389 #else
390 #define YYLEX yylex(&yylval, &yylloc)
391 #endif
392 mike 1.2 #else /* not YYLSP_NEEDED */
393 #ifdef YYLEX_PARAM
394 #define YYLEX yylex(&yylval, YYLEX_PARAM)
395 #else
396 #define YYLEX yylex(&yylval)
397 #endif
398 #endif /* not YYLSP_NEEDED */
399 #endif
400
401 /* If nonreentrant, generate the variables here */
402
403 #ifndef YYPURE
404
405 int yychar; /* the lookahead symbol */
406 YYSTYPE yylval; /* the semantic value of the */
407 /* lookahead symbol */
408
409 #ifdef YYLSP_NEEDED
410 YYLTYPE yylloc; /* location data for the lookahead */
411 /* symbol */
412 #endif
413 mike 1.2
414 int yynerrs; /* number of parse errors so far */
415 #endif /* not YYPURE */
416
417 #if YYDEBUG != 0
418 int yydebug; /* nonzero means print parse trace */
419 /* Since this is uninitialized, it does not stop multiple parsers
420 from coexisting. */
421 #endif
422
423 /* YYINITDEPTH indicates the initial size of the parser's stacks */
424
425 #ifndef YYINITDEPTH
426 #define YYINITDEPTH 200
427 #endif
428
429 /* YYMAXDEPTH is the maximum size the stacks can grow to
430 (effective only if the built-in stack extension method is used). */
431
432 #if YYMAXDEPTH == 0
433 #undef YYMAXDEPTH
434 mike 1.2 #endif
435
436 #ifndef YYMAXDEPTH
437 #define YYMAXDEPTH 10000
438 #endif
439
440 /* Define __yy_memcpy. Note that the size argument
441 should be passed with type unsigned int, because that is what the non-GCC
442 definitions require. With GCC, __builtin_memcpy takes an arg
443 of type size_t, but it can handle unsigned int. */
444
445 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
446 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
447 #else /* not GNU C or C++ */
448 #ifndef __cplusplus
449
450 /* This is the most reliable way to avoid incompatibilities
451 in available built-in functions on various systems. */
452 static void
453 __yy_memcpy (to, from, count)
454 char *to;
455 mike 1.2 char *from;
456 unsigned int count;
457 {
458 register char *f = from;
459 register char *t = to;
460 register int i = count;
461
462 while (i-- > 0)
463 *t++ = *f++;
464 }
465
466 #else /* __cplusplus */
467
468 /* This is the most reliable way to avoid incompatibilities
469 in available built-in functions on various systems. */
470 static void
471 __yy_memcpy (char *to, char *from, unsigned int count)
472 {
473 register char *t = to;
474 register char *f = from;
475 register int i = count;
476 mike 1.2
477 while (i-- > 0)
478 *t++ = *f++;
479 }
480
481 #endif
482 #endif
483
484 #line 217 "bison.simple"
485
486 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
487 into yyparse. The argument should have type void *.
488 It should actually point to an object.
489 Grammar actions can access the variable by casting it
490 to the proper pointer type. */
491
492 #ifdef YYPARSE_PARAM
493 #ifdef __cplusplus
494 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
495 #define YYPARSE_PARAM_DECL
496 #else /* not __cplusplus */
497 mike 1.2 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
498 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
499 #endif /* not __cplusplus */
500 #else /* not YYPARSE_PARAM */
501 #define YYPARSE_PARAM_ARG
502 #define YYPARSE_PARAM_DECL
503 #endif /* not YYPARSE_PARAM */
504
505 /* Prevent warning if -Wstrict-prototypes. */
506 #ifdef __GNUC__
507 #ifdef YYPARSE_PARAM
508 int yyparse (void *);
509 #else
510 int yyparse (void);
511 #endif
512 #endif
513
514 int
515 yyparse(YYPARSE_PARAM_ARG)
516 YYPARSE_PARAM_DECL
517 {
518 mike 1.2 register int yystate;
519 register int yyn;
520 register short *yyssp;
521 register YYSTYPE *yyvsp;
522 int yyerrstatus; /* number of tokens to shift before error messages enabled */
523 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
524
525 short yyssa[YYINITDEPTH]; /* the state stack */
526 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
527
528 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
529 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
530
531 #ifdef YYLSP_NEEDED
532 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
533 YYLTYPE *yyls = yylsa;
534 YYLTYPE *yylsp;
535
536 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
537 #else
538 #define YYPOPSTACK (yyvsp--, yyssp--)
539 mike 1.2 #endif
540
541 int yystacksize = YYINITDEPTH;
542 int yyfree_stacks = 0;
543
544 #ifdef YYPURE
545 int yychar;
546 YYSTYPE yylval;
547 int yynerrs;
548 #ifdef YYLSP_NEEDED
549 YYLTYPE yylloc;
550 #endif
551 #endif
552
553 YYSTYPE yyval; /* the variable used to return */
554 /* semantic values from the action */
555 /* routines */
556
557 int yylen;
558
559 #if YYDEBUG != 0
560 mike 1.2 if (yydebug)
561 fprintf(stderr, "Starting parse\n");
562 #endif
563
564 yystate = 0;
565 yyerrstatus = 0;
566 yynerrs = 0;
567 yychar = YYEMPTY; /* Cause a token to be read. */
568
569 /* Initialize stack pointers.
570 Waste one element of value and location stack
571 so that they stay on the same level as the state stack.
572 The wasted elements are never initialized. */
573
574 yyssp = yyss - 1;
575 yyvsp = yyvs;
576 #ifdef YYLSP_NEEDED
577 yylsp = yyls;
578 #endif
579
580 /* Push a new state, which is found in yystate . */
581 mike 1.2 /* In all cases, when you get here, the value and location stacks
582 have just been pushed. so pushing a state here evens the stacks. */
583 yynewstate:
584
585 *++yyssp = yystate;
586
587 if (yyssp >= yyss + yystacksize - 1)
588 {
589 /* Give user a chance to reallocate the stack */
590 /* Use copies of these so that the &'s don't force the real ones into memory. */
591 YYSTYPE *yyvs1 = yyvs;
592 short *yyss1 = yyss;
593 #ifdef YYLSP_NEEDED
594 YYLTYPE *yyls1 = yyls;
595 #endif
596
597 /* Get the current used size of the three stacks, in elements. */
598 int size = yyssp - yyss + 1;
599
600 #ifdef yyoverflow
601 /* Each stack pointer address is followed by the size of
602 mike 1.2 the data in use in that stack, in bytes. */
603 #ifdef YYLSP_NEEDED
604 /* This used to be a conditional around just the two extra args,
605 but that might be undefined if yyoverflow is a macro. */
606 yyoverflow("parser stack overflow",
607 &yyss1, size * sizeof (*yyssp),
608 &yyvs1, size * sizeof (*yyvsp),
609 &yyls1, size * sizeof (*yylsp),
610 &yystacksize);
611 #else
612 yyoverflow("parser stack overflow",
613 &yyss1, size * sizeof (*yyssp),
614 &yyvs1, size * sizeof (*yyvsp),
615 &yystacksize);
616 #endif
617
618 yyss = yyss1; yyvs = yyvs1;
619 #ifdef YYLSP_NEEDED
620 yyls = yyls1;
621 #endif
622 #else /* no yyoverflow */
623 mike 1.2 /* Extend the stack our own way. */
624 if (yystacksize >= YYMAXDEPTH)
625 {
626 yyerror("parser stack overflow");
627 if (yyfree_stacks)
628 {
629 free (yyss);
630 free (yyvs);
631 #ifdef YYLSP_NEEDED
632 free (yyls);
633 #endif
634 }
635 return 2;
636 }
637 yystacksize *= 2;
638 if (yystacksize > YYMAXDEPTH)
639 yystacksize = YYMAXDEPTH;
640 #ifndef YYSTACK_USE_ALLOCA
641 yyfree_stacks = 1;
642 #endif
643 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
644 mike 1.2 __yy_memcpy ((char *)yyss, (char *)yyss1,
645 size * (unsigned int) sizeof (*yyssp));
646 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
647 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
648 size * (unsigned int) sizeof (*yyvsp));
649 #ifdef YYLSP_NEEDED
650 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
651 __yy_memcpy ((char *)yyls, (char *)yyls1,
652 size * (unsigned int) sizeof (*yylsp));
653 #endif
654 #endif /* no yyoverflow */
655
656 yyssp = yyss + size - 1;
657 yyvsp = yyvs + size - 1;
658 #ifdef YYLSP_NEEDED
659 yylsp = yyls + size - 1;
660 #endif
661
662 #if YYDEBUG != 0
663 if (yydebug)
664 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
665 mike 1.2 #endif
666
667 if (yyssp >= yyss + yystacksize - 1)
668 YYABORT;
669 }
670
671 #if YYDEBUG != 0
672 if (yydebug)
673 fprintf(stderr, "Entering state %d\n", yystate);
674 #endif
675
676 goto yybackup;
677 yybackup:
678
679 /* Do appropriate processing given the current state. */
680 /* Read a lookahead token if we need one and don't already have one. */
681 /* yyresume: */
682
683 /* First try to decide what to do without reference to lookahead token. */
684
685 yyn = yypact[yystate];
686 mike 1.2 if (yyn == YYFLAG)
687 goto yydefault;
688
689 /* Not known => get a lookahead token if don't already have one. */
690
691 /* yychar is either YYEMPTY or YYEOF
692 or a valid token in external form. */
693
694 if (yychar == YYEMPTY)
695 {
696 #if YYDEBUG != 0
697 if (yydebug)
698 fprintf(stderr, "Reading a token: ");
699 #endif
700 yychar = YYLEX;
701 }
702
703 /* Convert token to internal form (in yychar1) for indexing tables with */
704
705 if (yychar <= 0) /* This means end of input. */
706 {
707 mike 1.2 yychar1 = 0;
708 yychar = YYEOF; /* Don't call YYLEX any more */
709
710 #if YYDEBUG != 0
711 if (yydebug)
712 fprintf(stderr, "Now at end of input.\n");
713 #endif
714 }
715 else
716 {
717 yychar1 = YYTRANSLATE(yychar);
718
719 #if YYDEBUG != 0
720 if (yydebug)
721 {
722 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
723 /* Give the individual parser a way to print the precise meaning
724 of a token, for further debugging info. */
725 #ifdef YYPRINT
726 YYPRINT (stderr, yychar, yylval);
727 #endif
728 mike 1.2 fprintf (stderr, ")\n");
729 }
730 #endif
731 }
732
733 yyn += yychar1;
734 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
735 goto yydefault;
736
737 yyn = yytable[yyn];
738
739 /* yyn is what to do for this token type in this state.
740 Negative => reduce, -yyn is rule number.
741 Positive => shift, yyn is new state.
742 New state is final state => don't bother to shift,
743 just return success.
744 0, or most negative number => error. */
745
746 if (yyn < 0)
747 {
748 if (yyn == YYFLAG)
749 mike 1.2 goto yyerrlab;
750 yyn = -yyn;
751 goto yyreduce;
752 }
753 else if (yyn == 0)
754 goto yyerrlab;
755
756 if (yyn == YYFINAL)
757 YYACCEPT;
758
759 /* Shift the lookahead token. */
760
761 #if YYDEBUG != 0
762 if (yydebug)
763 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
764 #endif
765
766 /* Discard the token being shifted unless it is eof. */
767 if (yychar != YYEOF)
768 yychar = YYEMPTY;
769
770 mike 1.2 *++yyvsp = yylval;
771 #ifdef YYLSP_NEEDED
772 *++yylsp = yylloc;
773 #endif
774
775 /* count tokens shifted since error; after three, turn off error status. */
776 if (yyerrstatus) yyerrstatus--;
777
778 yystate = yyn;
779 goto yynewstate;
780
781 /* Do the default action for the current state. */
782 yydefault:
783
784 yyn = yydefact[yystate];
785 if (yyn == 0)
786 goto yyerrlab;
787
788 /* Do a reduction. yyn is the number of a rule to reduce with. */
789 yyreduce:
790 yylen = yyr2[yyn];
791 mike 1.2 if (yylen > 0)
792 yyval = yyvsp[1-yylen]; /* implement default value of the action */
793
794 #if YYDEBUG != 0
795 if (yydebug)
796 {
797 int i;
798
799 fprintf (stderr, "Reducing via rule %d (line %d), ",
800 yyn, yyrline[yyn]);
801
802 /* Print the symbols being reduced, and their result. */
803 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
804 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
805 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
806 }
807 #endif
808
809
810 switch (yyn) {
811
812 mike 1.2 case 1:
|