1 diff -ur bacisrc.old/ccomp/lex.c bacisrc/ccomp/lex.c
2 --- bacisrc.old/ccomp/lex.c 2005-11-06 13:40:54.054437774 +0100
3 +++ bacisrc/ccomp/lex.c 2005-10-27 15:02:05.000000000 +0200
8 + * Revision 2.15 2005/10/26 20:03:23 bynum
9 + * remove extraneous test in get_escape
11 * Revision 2.14 2004/04/13 15:39:50 bynum
12 * add \r case to get rid of errors when reading MS-DOS/WIN source files
14 diff -ur bacisrc.old/pascomp/bapascal.l bacisrc/pascomp/bapascal.l
15 --- bacisrc.old/pascomp/bapascal.l 2004-04-15 13:31:24.000000000 +0200
16 +++ bacisrc/pascomp/bapascal.l 2005-10-27 15:02:05.000000000 +0200
21 - return ((esc < 256) ? esc : 0x20);
25 void get_string(char termch)
30 + * Revision 2.11 2005/10/27 12:56:33 bynum
31 + * remove extraneous test in get_escape
33 * Revision 2.10 2004/04/13 15:43:15 bynum
34 * add \r case to get rid of errors when readin MS-DOS/WIN prepared source
36 diff -ur bacisrc.old/pascomp/bapascal.y bacisrc/pascomp/bapascal.y
37 --- bacisrc.old/pascomp/bapascal.y 2004-04-15 13:31:24.000000000 +0200
38 +++ bacisrc/pascomp/bapascal.y 2005-10-27 15:02:05.000000000 +0200
39 @@ -1077,10 +1077,6 @@
40 (tab[last_pf].adr == SP_WRITELN))){
41 emit1(WRITE_RAWSTRING,tmp);
43 - else if (first_stringerr){
44 - yyerror("RAW STRING parameter not allowed");
45 - first_stringerr = 0;
52 pfstack[toppfs].tix = last_pf = last_pfv;
53 pfstack[toppfs].pct = parmct = 0;
54 - first_stringerr = first_parmcterr = 1;
55 + first_parmcterr = 1;
56 if (tab[last_pf].lev != -1){ /* regular proc call */
57 if ((tab[last_pf].mon)&&(tab[prt].mon)&&
58 (tab[last_pf].mon != tab[prt].mon))
60 else{ /* legal func call */
61 pfstack[toppfs].tix = last_pf = last_pfv;
62 pfstack[toppfs].pct = parmct = 0;
63 - first_stringerr = first_parmcterr = 1;
64 + first_parmcterr = 1;
65 if (tab[last_pf].lev != -1){ /* regular proc call */
66 if ((tab[last_pf].mon)&&(tab[prt].mon)&&
67 (tab[last_pf].mon != tab[prt].mon))
72 + * Revision 2.17 2005/10/27 12:58:24 bynum
73 + * remove first_stringerr, correct minor errors
75 * Revision 2.16 2003/05/13 14:01:23 bynum
76 * add boolean initializers, fix proc nesting
78 diff -ur bacisrc.old/pascomp/gram.c bacisrc/pascomp/gram.c
79 --- bacisrc.old/pascomp/gram.c 2004-04-15 13:31:24.000000000 +0200
80 +++ bacisrc/pascomp/gram.c 2005-10-27 15:02:05.000000000 +0200
82 -/* A Bison parser, made from bapascal.y
83 - by GNU bison 1.35. */
84 +/* A Bison parser, made by GNU Bison 1.875. */
86 -#define YYBISON 1 /* Identify Bison output. */
87 +/* Skeleton parser for Yacc-like parsing with Bison,
88 + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
90 -# define UNSIGNED_INT 257
92 -# define RAWSTRING 259
93 -# define STRINGCONCAT 260
94 -# define STRINGCOMPARE 261
95 -# define STRINGCOPY 262
96 -# define STRINGLENGTH 263
99 -# define IDENTIFIER 266
105 -# define BECOMES 272
131 -# define FUNCTION 298
132 -# define MONITOR 299
133 -# define PROCEDURE 300
134 -# define PROGRAM 301
135 -# define INCLUDE 302
137 -# define FNSTRING 304
139 -# define RECEIVE 306
140 -# define BROADCAST 307
141 -# define EXTERNAL 308
142 -# define LOWER_THAN_ELSE 309
143 + This program is free software; you can redistribute it and/or modify
144 + it under the terms of the GNU General Public License as published by
145 + the Free Software Foundation; either version 2, or (at your option)
148 + This program is distributed in the hope that it will be useful,
149 + but WITHOUT ANY WARRANTY; without even the implied warranty of
150 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
151 + GNU General Public License for more details.
153 + You should have received a copy of the GNU General Public License
154 + along with this program; if not, write to the Free Software
155 + Foundation, Inc., 59 Temple Place - Suite 330,
156 + Boston, MA 02111-1307, USA. */
158 +/* As a special exception, when this file is copied by Bison into a
159 + Bison output file, you may use that output file without restriction.
160 + This special exception was added by the Free Software Foundation
161 + in version 1.24 of Bison. */
163 +/* Written by Richard Stallman by simplifying the original so called
164 + ``semantic'' parser. */
166 +/* All symbols defined below should begin with yy or YY, to avoid
167 + infringing on user name space. This should be done even for local
168 + variables, as they might otherwise be expanded by user macros.
169 + There are some unavoidable exceptions within include files to
170 + define necessary library symbols; they are noted "INFRINGES ON
171 + USER NAME SPACE" below. */
173 +/* Identify Bison output. */
176 +/* Skeleton name. */
177 +#define YYSKELETON_NAME "yacc.c"
182 +/* Using locations. */
183 +#define YYLSP_NEEDED 0
189 +# define YYTOKENTYPE
190 + /* Put the tokens into the symbol table, so that GDB and other debuggers
191 + know about them. */
193 + UNSIGNED_INT = 258,
196 + STRINGCONCAT = 261,
197 + STRINGCOMPARE = 262,
199 + STRINGLENGTH = 264,
245 + LOWER_THAN_ELSE = 310
248 +#define UNSIGNED_INT 258
250 +#define RAWSTRING 260
251 +#define STRINGCONCAT 261
252 +#define STRINGCOMPARE 262
253 +#define STRINGCOPY 263
254 +#define STRINGLENGTH 264
257 +#define IDENTIFIER 267
289 +#define FUNCTION 299
291 +#define PROCEDURE 301
295 +#define FNSTRING 305
298 +#define BROADCAST 308
299 +#define EXTERNAL 309
300 +#define LOWER_THAN_ELSE 310
305 +/* Copy the first part of user declarations. */
308 /* yacc grammar for BenAri Concurrent Pascal */
309 @@ -183,25 +292,153 @@
310 #define emit_push_addr(x) (\
311 emit2(((x).normal ? LOAD_ADDR : LOAD_VALUE), (x).lev, (x).adr))
314 -# define YYSTYPE int
315 -# define YYSTYPE_IS_TRIVIAL 1
319 +/* Enabling traces. */
324 +/* Enabling verbose error messages. */
325 +#ifdef YYERROR_VERBOSE
326 +# undef YYERROR_VERBOSE
327 +# define YYERROR_VERBOSE 1
329 +# define YYERROR_VERBOSE 0
332 +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
333 +typedef int YYSTYPE;
334 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */
335 +# define YYSTYPE_IS_DECLARED 1
336 +# define YYSTYPE_IS_TRIVIAL 1
341 +/* Copy the second part of user declarations. */
344 +/* Line 214 of yacc.c. */
347 +#if ! defined (yyoverflow) || YYERROR_VERBOSE
349 +/* The parser invokes alloca or malloc; define the necessary symbols. */
351 +# if YYSTACK_USE_ALLOCA
352 +# define YYSTACK_ALLOC alloca
354 +# ifndef YYSTACK_USE_ALLOCA
355 +# if defined (alloca) || defined (_ALLOCA_H)
356 +# define YYSTACK_ALLOC alloca
359 +# define YYSTACK_ALLOC __builtin_alloca
365 +# ifdef YYSTACK_ALLOC
366 + /* Pacify GCC's `empty if-body' warning. */
367 +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
369 +# if defined (__STDC__) || defined (__cplusplus)
370 +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
371 +# define YYSIZE_T size_t
373 +# define YYSTACK_ALLOC malloc
374 +# define YYSTACK_FREE free
376 +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
379 -#define YYFLAG -32768
382 -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
383 -#define YYTRANSLATE(x) ((unsigned)(x) <= 309 ? yytranslate[x] : 192)
384 +#if (! defined (yyoverflow) \
385 + && (! defined (__cplusplus) \
386 + || (YYSTYPE_IS_TRIVIAL)))
388 -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
389 -static const char yytranslate[] =
390 +/* A type that is properly aligned for any stack member. */
397 +/* The size of the maximum gap between one aligned stack and the next. */
398 +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
400 +/* The size of an array large to enough to hold all stacks, each with
402 +# define YYSTACK_BYTES(N) \
403 + ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
404 + + YYSTACK_GAP_MAXIMUM)
406 +/* Copy COUNT objects from FROM to TO. The source and destination do
410 +# define YYCOPY(To, From, Count) \
411 + __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
413 +# define YYCOPY(To, From, Count) \
416 + register YYSIZE_T yyi; \
417 + for (yyi = 0; yyi < (Count); yyi++) \
418 + (To)[yyi] = (From)[yyi]; \
424 +/* Relocate STACK from its old location to the new one. The
425 + local variables YYSIZE and YYSTACKSIZE give the old and new number of
426 + elements in the stack, and YYPTR gives the new location of the
427 + stack. Advance YYPTR to a properly aligned location for the next
429 +# define YYSTACK_RELOCATE(Stack) \
432 + YYSIZE_T yynewbytes; \
433 + YYCOPY (&yyptr->Stack, Stack, yysize); \
434 + Stack = &yyptr->Stack; \
435 + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
436 + yyptr += yynewbytes / sizeof (*yyptr); \
442 +#if defined (__STDC__) || defined (__cplusplus)
443 + typedef signed char yysigned_char;
445 + typedef short yysigned_char;
448 +/* YYFINAL -- State number of the termination state. */
450 +/* YYLAST -- Last index in YYTABLE. */
453 +/* YYNTOKENS -- Number of terminals. */
454 +#define YYNTOKENS 71
455 +/* YYNNTS -- Number of nonterminals. */
457 +/* YYNRULES -- Number of rules. */
458 +#define YYNRULES 217
459 +/* YYNRULES -- Number of states. */
460 +#define YYNSTATES 368
462 +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
463 +#define YYUNDEFTOK 2
464 +#define YYMAXUTOK 310
466 +#define YYTRANSLATE(YYX) \
467 + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
469 +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
470 +static const unsigned char yytranslate[] =
472 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
474 @@ -228,144 +465,146 @@
475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
476 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
477 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
478 - 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
479 - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
480 - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
481 - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
482 - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
483 - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55
484 + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
485 + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
486 + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
487 + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
488 + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
489 + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
494 -static const short yyprhs[] =
496 - 0, 0, 3, 7, 10, 11, 13, 16, 18, 20,
497 - 22, 24, 26, 28, 30, 32, 34, 36, 41, 44,
498 - 46, 48, 50, 56, 58, 61, 65, 69, 72, 73,
499 - 75, 78, 80, 82, 84, 86, 88, 90, 92, 95,
500 - 98, 101, 105, 109, 111, 115, 117, 120, 123, 125,
501 - 128, 131, 133, 135, 139, 143, 145, 149, 151, 153,
502 - 155, 157, 165, 169, 171, 174, 177, 178, 183, 187,
503 - 191, 193, 198, 200, 204, 206, 207, 210, 212, 216,
504 - 220, 223, 227, 228, 230, 233, 236, 239, 243, 248,
505 - 251, 252, 256, 260, 262, 264, 266, 268, 272, 277,
506 - 281, 286, 290, 292, 294, 296, 300, 302, 304, 308,
507 - 310, 313, 316, 317, 319, 321, 323, 325, 328, 333,
508 - 338, 343, 346, 350, 353, 356, 358, 360, 362, 364,
509 - 367, 372, 376, 378, 381, 385, 388, 392, 393, 397,
510 - 401, 403, 405, 407, 409, 410, 412, 414, 416, 418,
511 - 420, 426, 429, 432, 435, 439, 443, 447, 449, 453,
512 - 458, 464, 466, 470, 472, 476, 478, 480, 482, 484,
513 - 486, 488, 490, 493, 496, 500, 502, 504, 506, 508,
514 - 510, 514, 516, 518, 520, 522, 524, 526, 528, 530,
515 - 534, 537, 541, 543, 545, 547, 548, 550, 552, 554,
516 - 556, 560, 563, 567, 571, 575, 581, 586, 592, 594,
517 - 598, 603, 605, 609, 611, 616, 618
518 +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
520 +static const unsigned short yyprhs[] =
522 + 0, 0, 3, 6, 10, 13, 14, 16, 19, 21,
523 + 23, 25, 27, 29, 31, 33, 35, 37, 39, 44,
524 + 47, 49, 51, 53, 59, 61, 64, 68, 72, 75,
525 + 76, 78, 81, 83, 85, 87, 89, 91, 93, 95,
526 + 98, 101, 104, 108, 112, 114, 118, 120, 123, 126,
527 + 128, 131, 134, 136, 138, 142, 146, 148, 152, 154,
528 + 156, 158, 160, 168, 172, 174, 177, 180, 181, 186,
529 + 190, 194, 196, 201, 203, 207, 209, 210, 213, 215,
530 + 219, 223, 226, 230, 231, 233, 236, 239, 242, 246,
531 + 251, 254, 255, 259, 263, 265, 267, 269, 271, 275,
532 + 280, 284, 289, 293, 295, 297, 299, 303, 305, 307,
533 + 311, 313, 316, 319, 320, 322, 324, 326, 328, 331,
534 + 336, 341, 346, 349, 353, 356, 359, 361, 363, 365,
535 + 367, 370, 375, 379, 381, 384, 388, 391, 395, 396,
536 + 400, 404, 406, 408, 410, 412, 413, 415, 417, 419,
537 + 421, 423, 429, 432, 435, 438, 442, 446, 450, 452,
538 + 456, 461, 467, 469, 473, 475, 479, 481, 483, 485,
539 + 487, 489, 491, 493, 496, 499, 503, 505, 507, 509,
540 + 511, 513, 517, 519, 521, 523, 525, 527, 529, 531,
541 + 533, 537, 540, 544, 546, 548, 550, 551, 553, 555,
542 + 557, 559, 563, 566, 570, 574, 578, 584, 589, 595,
543 + 597, 601, 606, 608, 612, 614, 619, 621
546 +/* YYRHS -- A `-1'-separated list of the rules' RHS. */
547 static const short yyrhs[] =
549 - 72, 73, 0, 72, 73, 82, 0, 72, 82, 0,
550 - 0, 74, 0, 73, 74, 0, 88, 0, 112, 0,
551 - 129, 0, 95, 0, 90, 0, 106, 0, 75, 0,
552 - 76, 0, 77, 0, 80, 0, 78, 41, 107, 56,
553 - 0, 78, 79, 0, 54, 0, 115, 0, 120, 0,
554 - 78, 130, 81, 38, 56, 0, 79, 0, 81, 79,
555 - 0, 83, 135, 57, 0, 84, 56, 85, 0, 47,
556 - 191, 0, 0, 86, 0, 86, 87, 0, 87, 0,
557 - 88, 0, 90, 0, 95, 0, 106, 0, 112, 0,
558 - 129, 0, 89, 5, 0, 58, 48, 0, 89, 50,
559 - 0, 40, 91, 56, 0, 91, 56, 92, 0, 92,
560 - 0, 191, 59, 93, 0, 94, 0, 60, 94, 0,
561 - 61, 94, 0, 190, 0, 60, 190, 0, 61, 190,
562 - 0, 13, 0, 3, 0, 42, 96, 56, 0, 96,
563 - 56, 97, 0, 97, 0, 191, 59, 98, 0, 99,
564 - 0, 100, 0, 105, 0, 190, 0, 43, 62, 101,
565 - 63, 104, 29, 98, 0, 101, 64, 102, 0, 102,
566 - 0, 103, 93, 0, 93, 24, 0, 0, 4, 62,
567 - 93, 63, 0, 41, 107, 56, 0, 107, 56, 108,
568 - 0, 108, 0, 109, 65, 98, 111, 0, 110, 0,
569 - 110, 64, 191, 0, 191, 0, 0, 18, 93, 0,
570 - 113, 0, 114, 135, 56, 0, 119, 135, 56, 0,
571 - 115, 85, 0, 116, 117, 56, 0, 0, 49, 0,
572 - 118, 123, 0, 46, 12, 0, 120, 85, 0, 116,
573 - 121, 56, 0, 122, 123, 65, 190, 0, 44, 12,
574 - 0, 0, 66, 124, 67, 0, 124, 56, 125, 0,
575 - 125, 0, 126, 0, 127, 0, 128, 0, 109, 65,
576 - 190, 0, 41, 109, 65, 190, 0, 109, 65, 4,
577 - 0, 130, 131, 132, 56, 0, 45, 191, 56, 0,
578 - 85, 0, 38, 0, 133, 0, 134, 136, 38, 0,
579 - 37, 0, 133, 0, 136, 56, 137, 0, 137, 0,
580 - 1, 56, 0, 1, 38, 0, 0, 133, 0, 148,
581 - 0, 150, 0, 156, 0, 138, 139, 0, 138, 139,
582 - 140, 137, 0, 141, 142, 33, 137, 0, 143, 136,
583 - 31, 167, 0, 145, 137, 0, 147, 136, 39, 0,
584 - 25, 167, 0, 26, 137, 0, 27, 0, 32, 0,
585 - 167, 0, 30, 0, 34, 190, 0, 146, 35, 167,
586 - 33, 0, 144, 18, 167, 0, 36, 0, 149, 167,
587 - 0, 186, 18, 167, 0, 190, 18, 0, 154, 155,
588 - 151, 0, 0, 66, 152, 67, 0, 152, 64, 153,
589 - 0, 153, 0, 167, 0, 5, 0, 190, 0, 0,
590 - 157, 0, 159, 0, 160, 0, 163, 0, 164, 0,
591 - 51, 158, 64, 167, 67, 0, 66, 162, 0, 66,
592 - 167, 0, 53, 181, 0, 6, 158, 161, 0, 64,
593 - 167, 67, 0, 64, 162, 67, 0, 5, 0, 8,
594 - 158, 161, 0, 165, 64, 166, 67, 0, 11, 66,
595 - 167, 64, 162, 0, 167, 0, 166, 64, 167, 0,
596 - 169, 0, 170, 168, 169, 0, 59, 0, 68, 0,
597 - 69, 0, 16, 0, 17, 0, 15, 0, 172, 0,
598 - 60, 172, 0, 61, 172, 0, 170, 171, 172, 0,
599 - 169, 0, 60, 0, 61, 0, 21, 0, 175, 0,
600 - 173, 174, 175, 0, 172, 0, 70, 0, 19, 0,
601 - 20, 0, 22, 0, 176, 0, 94, 0, 13, 0,
602 - 66, 167, 67, 0, 23, 175, 0, 154, 177, 151,
603 - 0, 178, 0, 186, 0, 189, 0, 0, 179, 0,
604 - 180, 0, 182, 0, 183, 0, 7, 158, 161, 0,
605 - 9, 181, 0, 66, 167, 67, 0, 66, 5, 67,
606 - 0, 52, 158, 67, 0, 52, 158, 64, 167, 67,
607 - 0, 184, 64, 185, 67, 0, 10, 66, 167, 64,
608 - 162, 0, 167, 0, 185, 64, 167, 0, 187, 62,
609 - 188, 63, 0, 190, 0, 188, 64, 167, 0, 167,
610 - 0, 14, 66, 167, 67, 0, 12, 0, 12, 0
611 + 72, 0, -1, 73, 74, -1, 73, 74, 83, -1,
612 + 73, 83, -1, -1, 75, -1, 74, 75, -1, 89,
613 + -1, 113, -1, 130, -1, 96, -1, 91, -1, 107,
614 + -1, 76, -1, 77, -1, 78, -1, 81, -1, 79,
615 + 41, 108, 56, -1, 79, 80, -1, 54, -1, 116,
616 + -1, 121, -1, 79, 131, 82, 38, 56, -1, 80,
617 + -1, 82, 80, -1, 84, 136, 57, -1, 85, 56,
618 + 86, -1, 47, 192, -1, -1, 87, -1, 87, 88,
619 + -1, 88, -1, 89, -1, 91, -1, 96, -1, 107,
620 + -1, 113, -1, 130, -1, 90, 5, -1, 58, 48,
621 + -1, 90, 50, -1, 40, 92, 56, -1, 92, 56,
622 + 93, -1, 93, -1, 192, 59, 94, -1, 95, -1,
623 + 60, 95, -1, 61, 95, -1, 191, -1, 60, 191,
624 + -1, 61, 191, -1, 13, -1, 3, -1, 42, 97,
625 + 56, -1, 97, 56, 98, -1, 98, -1, 192, 59,
626 + 99, -1, 100, -1, 101, -1, 106, -1, 191, -1,
627 + 43, 62, 102, 63, 105, 29, 99, -1, 102, 64,
628 + 103, -1, 103, -1, 104, 94, -1, 94, 24, -1,
629 + -1, 4, 62, 94, 63, -1, 41, 108, 56, -1,
630 + 108, 56, 109, -1, 109, -1, 110, 65, 99, 112,
631 + -1, 111, -1, 111, 64, 192, -1, 192, -1, -1,
632 + 18, 94, -1, 114, -1, 115, 136, 56, -1, 120,
633 + 136, 56, -1, 116, 86, -1, 117, 118, 56, -1,
634 + -1, 49, -1, 119, 124, -1, 46, 12, -1, 121,
635 + 86, -1, 117, 122, 56, -1, 123, 124, 65, 191,
636 + -1, 44, 12, -1, -1, 66, 125, 67, -1, 125,
637 + 56, 126, -1, 126, -1, 127, -1, 128, -1, 129,
638 + -1, 110, 65, 191, -1, 41, 110, 65, 191, -1,
639 + 110, 65, 4, -1, 131, 132, 133, 56, -1, 45,
640 + 192, 56, -1, 86, -1, 38, -1, 134, -1, 135,
641 + 137, 38, -1, 37, -1, 134, -1, 137, 56, 138,
642 + -1, 138, -1, 1, 56, -1, 1, 38, -1, -1,
643 + 134, -1, 149, -1, 151, -1, 157, -1, 139, 140,
644 + -1, 139, 140, 141, 138, -1, 142, 143, 33, 138,
645 + -1, 144, 137, 31, 168, -1, 146, 138, -1, 148,
646 + 137, 39, -1, 25, 168, -1, 26, 138, -1, 27,
647 + -1, 32, -1, 168, -1, 30, -1, 34, 191, -1,
648 + 147, 35, 168, 33, -1, 145, 18, 168, -1, 36,
649 + -1, 150, 168, -1, 187, 18, 168, -1, 191, 18,
650 + -1, 155, 156, 152, -1, -1, 66, 153, 67, -1,
651 + 153, 64, 154, -1, 154, -1, 168, -1, 5, -1,
652 + 191, -1, -1, 158, -1, 160, -1, 161, -1, 164,
653 + -1, 165, -1, 51, 159, 64, 168, 67, -1, 66,
654 + 163, -1, 66, 168, -1, 53, 182, -1, 6, 159,
655 + 162, -1, 64, 168, 67, -1, 64, 163, 67, -1,
656 + 5, -1, 8, 159, 162, -1, 166, 64, 167, 67,
657 + -1, 11, 66, 168, 64, 163, -1, 168, -1, 167,
658 + 64, 168, -1, 170, -1, 171, 169, 170, -1, 59,
659 + -1, 68, -1, 69, -1, 16, -1, 17, -1, 15,
660 + -1, 173, -1, 60, 173, -1, 61, 173, -1, 171,
661 + 172, 173, -1, 170, -1, 60, -1, 61, -1, 21,
662 + -1, 176, -1, 174, 175, 176, -1, 173, -1, 70,
663 + -1, 19, -1, 20, -1, 22, -1, 177, -1, 95,
664 + -1, 13, -1, 66, 168, 67, -1, 23, 176, -1,
665 + 155, 178, 152, -1, 179, -1, 187, -1, 190, -1,
666 + -1, 180, -1, 181, -1, 183, -1, 184, -1, 7,
667 + 159, 162, -1, 9, 182, -1, 66, 168, 67, -1,
668 + 66, 5, 67, -1, 52, 159, 67, -1, 52, 159,
669 + 64, 168, 67, -1, 185, 64, 186, 67, -1, 10,
670 + 66, 168, 64, 163, -1, 168, -1, 186, 64, 168,
671 + -1, 188, 62, 189, 63, -1, 191, -1, 189, 64,
672 + 168, -1, 168, -1, 14, 66, 168, 67, -1, 12,
679 -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
680 -static const short yyrline[] =
681 +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
682 +static const unsigned short yyrline[] =
684 - 0, 145, 158, 165, 174, 188, 189, 192, 193, 194,
685 - 195, 196, 197, 198, 201, 202, 203, 206, 210, 216,
686 - 220, 222, 226, 235, 236, 239, 260, 269, 282, 283,
687 - 286, 287, 290, 291, 292, 293, 294, 295, 298, 310,
688 - 316, 328, 331, 332, 335, 343, 345, 347, 349, 351,
689 - 359, 367, 371, 375, 378, 379, 382, 401, 402, 403,
690 - 406, 431, 475, 477, 480, 497, 507, 511, 526, 529,
691 - 530, 533, 598, 601, 602, 605, 607, 615, 618, 625,
692 - 634, 642, 649, 651, 656, 659, 676, 684, 691, 703,
693 - 720, 722, 726, 727, 730, 731, 732, 735, 759, 783,
694 - 803, 814, 833, 840, 846, 849, 852, 862, 865, 866,
695 - 867, 869, 873, 874, 875, 876, 877, 878, 880, 882,
696 - 884, 886, 888, 892, 896, 900, 904, 908, 912, 916,
697 - 930, 940, 949, 961, 977, 995, 1020, 1056, 1057, 1060,
698 - 1061, 1064, 1073, 1088, 1092, 1119, 1120, 1121, 1122, 1123,
699 - 1126, 1153, 1155, 1169, 1183, 1196, 1208, 1212, 1225, 1238,
700 - 1246, 1257, 1269, 1283, 1284, 1301, 1302, 1303, 1304, 1305,
701 - 1306, 1309, 1310, 1319, 1330, 1353, 1357, 1358, 1359, 1362,
702 - 1363, 1390, 1394, 1395, 1396, 1397, 1400, 1401, 1409, 1417,
703 - 1418, 1431, 1481, 1482, 1483, 1486, 1507, 1508, 1509, 1510,
704 - 1513, 1532, 1551, 1562, 1574, 1588, 1613, 1628, 1639, 1648,
705 - 1659, 1672, 1703, 1713, 1725, 1732, 1736
706 + 0, 145, 145, 158, 165, 175, 188, 189, 192, 193,
707 + 194, 195, 196, 197, 198, 201, 202, 203, 206, 210,
708 + 216, 220, 222, 226, 235, 236, 239, 260, 269, 282,
709 + 283, 286, 287, 290, 291, 292, 293, 294, 295, 298,
710 + 310, 316, 328, 331, 332, 335, 343, 345, 347, 349,
711 + 351, 359, 367, 371, 375, 378, 379, 382, 401, 402,
712 + 403, 406, 431, 475, 477, 480, 497, 508, 511, 526,
713 + 529, 530, 533, 598, 601, 602, 606, 607, 615, 618,
714 + 625, 634, 642, 650, 651, 656, 659, 676, 684, 691,
715 + 703, 721, 722, 726, 727, 730, 731, 732, 735, 759,
716 + 783, 803, 814, 833, 840, 846, 849, 852, 862, 865,
717 + 866, 867, 869, 873, 874, 875, 876, 877, 878, 880,
718 + 882, 884, 886, 888, 892, 896, 900, 904, 908, 912,
719 + 916, 930, 940, 949, 961, 977, 995, 1020, 1056, 1057,
720 + 1060, 1061, 1064, 1073, 1084, 1089, 1115, 1116, 1117, 1118,
721 + 1119, 1122, 1149, 1151, 1165, 1179, 1192, 1204, 1208, 1221,
722 + 1234, 1242, 1253, 1265, 1279, 1280, 1297, 1298, 1299, 1300,
723 + 1301, 1302, 1305, 1306, 1315, 1326, 1349, 1353, 1354, 1355,
724 + 1358, 1359, 1386, 1390, 1391, 1392, 1393, 1396, 1397, 1405,
725 + 1413, 1414, 1427, 1477, 1478, 1479, 1483, 1503, 1504, 1505,
726 + 1506, 1509, 1528, 1547, 1558, 1570, 1584, 1609, 1624, 1635,
727 + 1644, 1655, 1668, 1699, 1709, 1721, 1728, 1732
732 -#if (YYDEBUG) || defined YYERROR_VERBOSE
734 -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
735 +#if YYDEBUG || YYERROR_VERBOSE
736 +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
737 + First, the terminals, then, starting at YYNTOKENS, nonterminals. */
738 static const char *const yytname[] =
740 - "$", "error", "$undefined.", "UNSIGNED_INT", "STRING", "RAWSTRING",
741 + "$end", "error", "$undefined", "UNSIGNED_INT", "STRING", "RAWSTRING",
742 "STRINGCONCAT", "STRINGCOMPARE", "STRINGCOPY", "STRINGLENGTH", "SSCANF",
743 "SPRINTF", "IDENTIFIER", "CHAR", "INT", "NE", "LE", "GE", "BECOMES",
744 "DIV", "MOD", "OR", "AND", "NOT", "DOTDOT", "IF", "THEN", "ELSE",
745 @@ -374,24 +613,24 @@
746 "MONITOR", "PROCEDURE", "PROGRAM", "INCLUDE", "ATOMIC", "FNSTRING",
747 "SEND", "RECEIVE", "BROADCAST", "EXTERNAL", "LOWER_THAN_ELSE", "';'",
748 "'.'", "'#'", "'='", "'+'", "'-'", "'['", "']'", "','", "':'", "'('",
749 - "')'", "'<'", "'>'", "'*'", "program", "init_outerscope", "outer_decls",
750 - "outer_decl", "extern_decl", "extern_var_decl", "extern_proc_decl",
751 - "the_external", "proc_or_func_proto", "extern_mon_decl", "proto_list",
752 - "pgm_decl", "pgm_hdg_decls", "pgm_heading", "opt_declarations",
753 - "declarations", "declaration", "include_dcl_part", "start_include",
754 - "const_dcl_part", "const_defs", "const_def", "constant", "unsigned_num",
755 - "type_dcl_part", "type_defs", "type_def", "type", "simple_type",
756 - "struct_type", "index_type", "dimension", "low", "last_atab",
757 - "string_type", "var_dcl_part", "variable_dcls", "variable_dcl",
758 - "newident_list", "new_id_list", "opt_initializer", "proc_dcl_part",
759 - "proc_or_func", "proc_hdg_decl", "proc_proto", "opt_atomic",
760 - "proc_heading", "proc_id", "func_hdg_decl", "func_proto",
761 - "func_heading", "func_id", "formal_params", "formal_p_sects",
762 - "formal_p_sect", "param_group", "var_param_group", "string_param_group",
763 - "mon_dcl_part", "mon_heading", "mon_decl", "opt_stmt_part",
764 - "compound_stmt", "the_begin", "statement_part", "statements",
765 - "statement", "if_expr", "then_stmt", "the_else", "the_while",
766 - "while_expr", "the_repeat", "for_id", "for_header",
767 + "')'", "'<'", "'>'", "'*'", "$accept", "program", "init_outerscope",
768 + "outer_decls", "outer_decl", "extern_decl", "extern_var_decl",
769 + "extern_proc_decl", "the_external", "proc_or_func_proto",
770 + "extern_mon_decl", "proto_list", "pgm_decl", "pgm_hdg_decls",
771 + "pgm_heading", "opt_declarations", "declarations", "declaration",
772 + "include_dcl_part", "start_include", "const_dcl_part", "const_defs",
773 + "const_def", "constant", "unsigned_num", "type_dcl_part", "type_defs",
774 + "type_def", "type", "simple_type", "struct_type", "index_type",
775 + "dimension", "low", "last_atab", "string_type", "var_dcl_part",
776 + "variable_dcls", "variable_dcl", "newident_list", "new_id_list",
777 + "opt_initializer", "proc_dcl_part", "proc_or_func", "proc_hdg_decl",
778 + "proc_proto", "opt_atomic", "proc_heading", "proc_id", "func_hdg_decl",
779 + "func_proto", "func_heading", "func_id", "formal_params",
780 + "formal_p_sects", "formal_p_sect", "param_group", "var_param_group",
781 + "string_param_group", "mon_dcl_part", "mon_heading", "mon_decl",
782 + "opt_stmt_part", "compound_stmt", "the_begin", "statement_part",
783 + "statements", "statement", "if_expr", "then_stmt", "the_else",
784 + "the_while", "while_expr", "the_repeat", "for_id", "for_header",
785 "for_id_becomes_expr", "cbegin", "assignment", "id_becomes",
786 "procedure_call", "actual_params", "actuals_list", "actual_param",
787 "pfv_id", "check_proc", "special_proc_call", "send_call",
788 @@ -406,282 +645,304 @@
792 -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
793 -static const short yyr1[] =
795 +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
796 + token YYLEX-NUM. */
797 +static const unsigned short yytoknum[] =
799 + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
800 + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
801 + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
802 + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
803 + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
804 + 305, 306, 307, 308, 309, 310, 59, 46, 35, 61,
805 + 43, 45, 91, 93, 44, 58, 40, 41, 60, 62,
810 +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
811 +static const unsigned char yyr1[] =
813 - 0, 71, 71, 71, 72, 73, 73, 74, 74, 74,
814 - 74, 74, 74, 74, 75, 75, 75, 76, 77, 78,
815 - 79, 79, 80, 81, 81, 82, 83, 84, 85, 85,
816 - 86, 86, 87, 87, 87, 87, 87, 87, 88, 89,
817 - 88, 90, 91, 91, 92, 93, 93, 93, 93, 93,
818 - 93, 93, 94, 95, 96, 96, 97, 98, 98, 98,
819 - 99, 100, 101, 101, 102, 103, 104, 105, 106, 107,
820 - 107, 108, 109, 110, 110, 111, 111, 112, 113, 113,
821 - 114, 115, 116, 116, 117, 118, 119, 120, 121, 122,
822 - 123, 123, 124, 124, 125, 125, 125, 126, 127, 128,
823 - 129, 130, 131, 132, 132, 133, 134, 135, 136, 136,
824 - 136, 136, 137, 137, 137, 137, 137, 137, 137, 137,
825 - 137, 137, 137, 138, 139, 140, 141, 142, 143, 144,
826 - 145, 146, 147, 148, 148, 149, 150, 151, 151, 152,
827 - 152, 153, 153, 154, 155, 156, 156, 156, 156, 156,
828 - 157, 158, 158, 159, 160, 161, 161, 162, 163, 164,
829 - 165, 166, 166, 167, 167, 168, 168, 168, 168, 168,
830 - 168, 169, 169, 169, 169, 170, 171, 171, 171, 172,
831 - 172, 173, 174, 174, 174, 174, 175, 175, 175, 175,
832 - 175, 176, 176, 176, 176, 177, 178, 178, 178, 178,
833 - 179, 180, 181, 181, 182, 182, 183, 184, 185, 185,
834 - 186, 187, 188, 188, 189, 190, 191
835 + 0, 71, 72, 72, 72, 73, 74, 74, 75, 75,
836 + 75, 75, 75, 75, 75, 76, 76, 76, 77, 78,
837 + 79, 80, 80, 81, 82, 82, 83, 84, 85, 86,
838 + 86, 87, 87, 88, 88, 88, 88, 88, 88, 89,
839 + 90, 89, 91, 92, 92, 93, 94, 94, 94, 94,
840 + 94, 94, 94, 95, 96, 97, 97, 98, 99, 99,
841 + 99, 100, 101, 102, 102, 103, 104, 105, 106, 107,
842 + 108, 108, 109, 110, 111, 111, 112, 112, 113, 114,
843 + 114, 115, 116, 117, 117, 118, 119, 120, 121, 122,
844 + 123, 124, 124, 125, 125, 126, 126, 126, 127, 128,
845 + 129, 130, 131, 132, 133, 133, 134, 135, 136, 137,
846 + 137, 137, 137, 138, 138, 138, 138, 138, 138, 138,
847 + 138, 138, 138, 138, 139, 140, 141, 142, 143, 144,
848 + 145, 146, 147, 148, 149, 149, 150, 151, 152, 152,
849 + 153, 153, 154, 154, 155, 156, 157, 157, 157, 157,
850 + 157, 158, 159, 159, 160, 161, 162, 162, 163, 164,
851 + 165, 166, 167, 167, 168, 168, 169, 169, 169, 169,
852 + 169, 169, 170, 170, 170, 170, 171, 172, 172, 172,
853 + 173, 173, 174, 175, 175, 175, 175, 176, 176, 176,
854 + 176, 176, 177, 177, 177, 177, 178, 179, 179, 179,
855 + 179, 180, 181, 182, 182, 183, 183, 184, 185, 186,
856 + 186, 187, 188, 189, 189, 190, 191, 192
859 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
860 -static const short yyr2[] =
861 +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
862 +static const unsigned char yyr2[] =
864 - 0, 2, 3, 2, 0, 1, 2, 1, 1, 1,
865 - 1, 1, 1, 1, 1, 1, 1, 4, 2, 1,
866 - 1, 1, 5, 1, 2, 3, 3, 2, 0, 1,
867 - 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
868 - 2, 3, 3, 1, 3, 1, 2, 2, 1, 2,
869 - 2, 1, 1, 3, 3, 1, 3, 1, 1, 1,
870 - 1, 7, 3, 1, 2, 2, 0, 4, 3, 3,
871 - 1, 4, 1, 3, 1, 0, 2, 1, 3, 3,
872 - 2, 3, 0, 1, 2, 2, 2, 3, 4, 2,
873 - 0, 3, 3, 1, 1, 1, 1, 3, 4, 3,
874 - 4, 3, 1, 1, 1, 3, 1, 1, 3, 1,
875 - 2, 2, 0, 1, 1, 1, 1, 2, 4, 4,
876 - 4, 2, 3, 2, 2, 1, 1, 1, 1, 2,
877 - 4, 3, 1, 2, 3, 2, 3, 0, 3, 3,
878 - 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
879 - 5, 2, 2, 2, 3, 3, 3, 1, 3, 4,
880 - 5, 1, 3, 1, 3, 1, 1, 1, 1, 1,
881 - 1, 1, 2, 2, 3, 1, 1, 1, 1, 1,
882 - 3, 1, 1, 1, 1, 1, 1, 1, 1, 3,
883 - 2, 3, 1, 1, 1, 0, 1, 1, 1, 1,
884 - 3, 2, 3, 3, 3, 5, 4, 5, 1, 3,
885 - 4, 1, 3, 1, 4, 1, 1
886 + 0, 2, 2, 3, 2, 0, 1, 2, 1, 1,
887 + 1, 1, 1, 1, 1, 1, 1, 1, 4, 2,
888 + 1, 1, 1, 5, 1, 2, 3, 3, 2, 0,
889 + 1, 2, 1, 1, 1, 1, 1, 1, 1, 2,
890 + 2, 2, 3, 3, 1, 3, 1, 2, 2, 1,
891 + 2, 2, 1, 1, 3, 3, 1, 3, 1, 1,
892 + 1, 1, 7, 3, 1, 2, 2, 0, 4, 3,
893 + 3, 1, 4, 1, 3, 1, 0, 2, 1, 3,
894 + 3, 2, 3, 0, 1, 2, 2, 2, 3, 4,
895 + 2, 0, 3, 3, 1, 1, 1, 1, 3, 4,
896 + 3, 4, 3, 1, 1, 1, 3, 1, 1, 3,
897 + 1, 2, 2, 0, 1, 1, 1, 1, 2, 4,
898 + 4, 4, 2, 3, 2, 2, 1, 1, 1, 1,
899 + 2, 4, 3, 1, 2, 3, 2, 3, 0, 3,
900 + 3, 1, 1, 1, 1, 0, 1, 1, 1, 1,
901 + 1, 5, 2, 2, 2, 3, 3, 3, 1, 3,
902 + 4, 5, 1, 3, 1, 3, 1, 1, 1, 1,
903 + 1, 1, 1, 2, 2, 3, 1, 1, 1, 1,
904 + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
905 + 3, 2, 3, 1, 1, 1, 0, 1, 1, 1,
906 + 1, 3, 2, 3, 3, 3, 5, 4, 5, 1,
907 + 3, 4, 1, 3, 1, 4, 1, 1
910 -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
911 - doesn't specify something else to do. Zero means the default is an
913 -static const short yydefact[] =
915 - 4, 82, 0, 0, 0, 0, 0, 83, 19, 0,
916 - 82, 5, 13, 14, 15, 82, 16, 3, 0, 0,
917 - 7, 0, 11, 10, 12, 8, 77, 0, 82, 0,
918 - 0, 82, 9, 28, 216, 0, 43, 0, 0, 70,
919 - 0, 72, 74, 0, 55, 0, 0, 27, 39, 6,
920 - 2, 0, 18, 20, 21, 82, 106, 107, 0, 0,
921 - 82, 38, 40, 0, 80, 29, 31, 32, 33, 34,
922 - 35, 36, 37, 0, 0, 0, 90, 0, 90, 0,
923 - 86, 102, 0, 41, 0, 68, 0, 0, 53, 0,
924 - 101, 0, 23, 82, 0, 0, 0, 0, 215, 0,
925 - 128, 126, 0, 132, 0, 0, 113, 0, 109, 0,
926 - 0, 0, 0, 112, 0, 0, 114, 0, 115, 144,
927 - 116, 145, 146, 147, 148, 149, 0, 0, 0, 143,
928 - 25, 26, 78, 30, 89, 85, 81, 0, 84, 87,
929 - 0, 79, 103, 0, 104, 42, 52, 51, 0, 0,
930 - 44, 45, 48, 69, 0, 0, 75, 57, 58, 59,
931 - 60, 73, 54, 56, 17, 0, 24, 111, 110, 0,
932 - 0, 0, 0, 0, 0, 0, 188, 0, 0, 0,
933 - 0, 0, 0, 187, 195, 123, 163, 0, 171, 0,
934 - 179, 186, 192, 196, 197, 198, 199, 0, 193, 194,
935 - 143, 129, 0, 0, 153, 105, 112, 112, 117, 0,
936 - 127, 0, 0, 121, 0, 0, 133, 137, 0, 0,
937 - 0, 135, 0, 0, 0, 93, 94, 95, 96, 0,
938 - 100, 46, 49, 47, 50, 0, 0, 0, 71, 22,
939 - 157, 151, 152, 0, 154, 158, 0, 0, 201, 0,
940 - 0, 190, 0, 172, 173, 0, 137, 170, 168, 169,
941 - 178, 165, 176, 177, 166, 167, 0, 0, 183, 184,
942 - 185, 182, 0, 0, 0, 0, 0, 108, 124, 125,
943 - 112, 112, 0, 131, 0, 122, 0, 136, 0, 161,
944 - 134, 213, 0, 0, 0, 0, 91, 88, 0, 0,
945 - 0, 63, 0, 76, 0, 0, 0, 200, 0, 0,
946 - 0, 204, 189, 191, 164, 0, 174, 180, 208, 0,
947 - 0, 203, 202, 118, 119, 120, 130, 142, 0, 140,
948 - 141, 0, 159, 210, 0, 0, 99, 97, 92, 67,
949 - 65, 66, 0, 64, 156, 155, 160, 0, 214, 0,
950 - 0, 206, 150, 0, 138, 162, 212, 98, 0, 62,
951 - 207, 205, 209, 139, 0, 61, 0, 0, 0
952 +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
953 + STATE-NUM when YYTABLE doesn't specify something else to do. Zero
954 + means the default is an error. */
955 +static const unsigned char yydefact[] =
957 + 5, 0, 83, 1, 0, 0, 0, 0, 0, 84,
958 + 20, 0, 83, 6, 14, 15, 16, 83, 17, 4,
959 + 0, 0, 8, 0, 12, 11, 13, 9, 78, 0,
960 + 83, 0, 0, 83, 10, 29, 217, 0, 44, 0,
961 + 0, 71, 0, 73, 75, 0, 56, 0, 0, 28,
962 + 40, 7, 3, 0, 19, 21, 22, 83, 107, 108,
963 + 0, 0, 83, 39, 41, 0, 81, 30, 32, 33,
964 + 34, 35, 36, 37, 38, 0, 0, 0, 91, 0,
965 + 91, 0, 87, 103, 0, 42, 0, 69, 0, 0,
966 + 54, 0, 102, 0, 24, 83, 0, 0, 0, 0,
967 + 216, 0, 129, 127, 0, 133, 0, 0, 114, 0,
968 + 110, 0, 0, 0, 0, 113, 0, 0, 115, 0,
969 + 116, 145, 117, 146, 147, 148, 149, 150, 0, 0,
970 + 0, 144, 26, 27, 79, 31, 90, 86, 82, 0,
971 + 85, 88, 0, 80, 104, 0, 105, 43, 53, 52,
972 + 0, 0, 45, 46, 49, 70, 0, 0, 76, 58,
973 + 59, 60, 61, 74, 55, 57, 18, 0, 25, 112,
974 + 111, 0, 0, 0, 0, 0, 0, 0, 189, 0,
975 + 0, 0, 0, 0, 0, 188, 196, 124, 164, 0,
976 + 172, 0, 180, 187, 193, 197, 198, 199, 200, 0,
977 + 194, 195, 144, 130, 0, 0, 154, 106, 113, 113,
978 + 118, 0, 128, 0, 0, 122, 0, 0, 134, 138,
979 + 0, 0, 0, 136, 0, 0, 0, 94, 95, 96,
980 + 97, 0, 101, 47, 50, 48, 51, 0, 0, 0,
981 + 72, 23, 158, 152, 153, 0, 155, 159, 0, 0,
982 + 202, 0, 0, 191, 0, 173, 174, 0, 138, 171,
983 + 169, 170, 179, 166, 177, 178, 167, 168, 0, 0,
984 + 184, 185, 186, 183, 0, 0, 0, 0, 0, 109,
985 + 125, 126, 113, 113, 0, 132, 0, 123, 0, 137,
986 + 0, 162, 135, 214, 0, 0, 0, 0, 92, 89,
987 + 0, 0, 0, 64, 0, 77, 0, 0, 0, 201,
988 + 0, 0, 0, 205, 190, 192, 165, 0, 175, 181,
989 + 209, 0, 0, 204, 203, 119, 120, 121, 131, 143,
990 + 0, 141, 142, 0, 160, 211, 0, 0, 100, 98,
991 + 93, 68, 66, 67, 0, 65, 157, 156, 161, 0,
992 + 215, 0, 0, 207, 151, 0, 139, 163, 213, 99,
993 + 0, 63, 208, 206, 210, 140, 0, 62
996 +/* YYDEFGOTO[NTERM-NUM]. */
997 static const short yydefgoto[] =
999 - 366, 1, 10, 11, 12, 13, 14, 15, 52, 16,
1000 - 93, 17, 18, 19, 64, 65, 66, 67, 21, 68,
1001 - 35, 36, 299, 183, 69, 43, 44, 156, 157, 158,
1002 - 300, 301, 302, 358, 159, 70, 38, 39, 40, 41,
1003 - 238, 71, 26, 27, 28, 29, 75, 76, 30, 31,
1004 - 77, 78, 138, 224, 225, 226, 227, 228, 72, 33,
1005 - 82, 143, 106, 58, 59, 107, 108, 109, 208, 280,
1006 - 110, 209, 111, 112, 113, 114, 115, 116, 117, 118,
1007 - 287, 328, 329, 184, 217, 120, 121, 170, 122, 123,
1008 - 244, 241, 124, 125, 126, 288, 330, 266, 186, 187,
1009 - 267, 188, 189, 272, 190, 191, 256, 192, 193, 194,
1010 - 204, 195, 196, 197, 319, 198, 128, 292, 199, 200,
1012 + -1, 1, 2, 12, 13, 14, 15, 16, 17, 54,
1013 + 18, 95, 19, 20, 21, 66, 67, 68, 69, 23,
1014 + 70, 37, 38, 301, 185, 71, 45, 46, 158, 159,
1015 + 160, 302, 303, 304, 360, 161, 72, 40, 41, 42,
1016 + 43, 240, 73, 28, 29, 30, 31, 77, 78, 32,
1017 + 33, 79, 80, 140, 226, 227, 228, 229, 230, 74,
1018 + 35, 84, 145, 108, 60, 61, 109, 110, 111, 210,
1019 + 282, 112, 211, 113, 114, 115, 116, 117, 118, 119,
1020 + 120, 289, 330, 331, 186, 219, 122, 123, 172, 124,
1021 + 125, 246, 243, 126, 127, 128, 290, 332, 268, 188,
1022 + 189, 269, 190, 191, 274, 192, 193, 258, 194, 195,
1023 + 196, 206, 197, 198, 199, 321, 200, 130, 294, 201,
1027 +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1029 +#define YYPACT_NINF -238
1030 static const short yypact[] =
1032 - -32768, 224, 38, 38, 38, 38, 38,-32768,-32768, -32,
1033 - 88,-32768,-32768,-32768,-32768, 190,-32768,-32768, 77, 85,
1034 - -32768, 20,-32768,-32768,-32768,-32768,-32768, 77, 170, 78,
1035 - 77, 170,-32768, 160,-32768, 87,-32768, 6, 103,-32768,
1036 - 74, 99,-32768, 114,-32768, 127, 147,-32768,-32768,-32768,
1037 - -32768, 38,-32768,-32768,-32768, 172,-32768,-32768, 366, 167,
1038 - 170,-32768,-32768, 158,-32768, 160,-32768,-32768,-32768,-32768,
1039 - -32768,-32768,-32768, 222, 228, 191, 182, 193, 182, 194,
1040 - -32768,-32768, -1, 38, 71, 38, 101, 38, 38, 101,
1041 - -32768, 197,-32768, 96, -17, 189, 189, 201,-32768, 304,
1042 - -32768,-32768, 256,-32768, 189, 204,-32768, 5,-32768, 248,
1043 - 304, 400, 257, 492, 245, 427,-32768, 304,-32768,-32768,
1044 - -32768,-32768,-32768,-32768,-32768,-32768, 223, 273, 230, 0,
1045 - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 23,-32768,-32768,
1046 - 229,-32768,-32768, 237,-32768,-32768,-32768,-32768, 83, 83,
1047 - -32768,-32768,-32768,-32768, 233, 234, 279,-32768,-32768,-32768,
1048 - -32768,-32768,-32768,-32768, 38, 242,-32768,-32768,-32768, 185,
1049 - 236, 236, 304, 189, 204, 238,-32768, 239, 331, 189,
1050 - 331, 331, 304,-32768,-32768,-32768, 425, 428, 26, 32,
1051 - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 244,-32768,-32768,
1052 - 240,-32768, 255, 249,-32768,-32768, 492, 492, 285, 270,
1053 - -32768, -9, 304,-32768, 304, 67,-32768, 254, 304, 304,
1054 - 304,-32768, 38, 258, 53,-32768,-32768,-32768,-32768, 256,
1055 - -32768,-32768,-32768,-32768,-32768, 71, 71, 71,-32768,-32768,
1056 - -32768,-32768,-32768, 185,-32768,-32768, 260, 236,-32768, 304,
1057 - 304,-32768, 18, 26, 26, 259, 254,-32768,-32768,-32768,
1058 - -32768,-32768,-32768,-32768,-32768,-32768, 304, 331,-32768,-32768,
1059 - -32768,-32768, 331, 304, 304, 262, 263,-32768,-32768,-32768,
1060 - 492, 492, 304,-32768, 288,-32768, 276,-32768, 97,-32768,
1061 - -32768,-32768, 166, 266, 68, 23,-32768,-32768, 269, 298,
1062 - 169,-32768, 71,-32768, 268, 272, 320,-32768, 282, 280,
1063 - 304,-32768,-32768,-32768, 47, 57, 26,-32768,-32768, 120,
1064 - 281,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 129,-32768,
1065 - -32768, 304,-32768,-32768, 304, 256,-32768,-32768,-32768,-32768,
1066 - -32768,-32768, 71,-32768,-32768,-32768,-32768, 320,-32768, 283,
1067 - 304,-32768,-32768, 276,-32768,-32768,-32768,-32768, 322,-32768,
1068 - -32768,-32768,-32768,-32768, 101,-32768, 333, 349,-32768
1069 + -238, 21, 224, -238, 24, 24, 24, 24, 24, -238,
1070 + -238, 97, 88, -238, -238, -238, -238, 98, -238, -238,
1071 + 69, 107, -238, 11, -238, -238, -238, -238, -238, 69,
1072 + 170, 147, 69, 170, -238, 160, -238, 126, -238, 100,
1073 + 140, -238, 138, 152, -238, 165, -238, 174, 178, -238,
1074 + -238, -238, -238, 24, -238, -238, -238, 175, -238, -238,
1075 + 366, 182, 170, -238, -238, 179, -238, 160, -238, -238,
1076 + -238, -238, -238, -238, -238, 228, 235, 192, 183, 194,
1077 + 183, 197, -238, -238, 176, 24, 71, 24, 35, 24,
1078 + 24, 35, -238, 199, -238, -1, -16, 201, 201, 202,
1079 + -238, 304, -238, -238, 258, -238, 201, 208, -238, 58,
1080 + -238, 254, 304, 400, 257, 492, 252, 427, -238, 304,
1081 + -238, -238, -238, -238, -238, -238, -238, -238, 227, 274,
1082 + 231, 0, -238, -238, -238, -238, -238, -238, -238, 83,
1083 + -238, -238, 229, -238, -238, 239, -238, -238, -238, -238,
1084 + 105, 105, -238, -238, -238, -238, 234, 236, 279, -238,
1085 + -238, -238, -238, -238, -238, -238, 24, 244, -238, -238,
1086 + -238, 185, 238, 238, 304, 201, 208, 237, -238, 242,
1087 + 331, 201, 331, 331, 304, -238, -238, -238, 425, 428,
1088 + 32, 50, -238, -238, -238, -238, -238, -238, -238, 240,
1089 + -238, -238, 243, -238, 248, 249, -238, -238, 492, 492,
1090 + 292, 287, -238, 12, 304, -238, 304, 66, -238, 255,
1091 + 304, 304, 304, -238, 24, 259, 51, -238, -238, -238,
1092 + -238, 258, -238, -238, -238, -238, -238, 71, 71, 71,
1093 + -238, -238, -238, -238, -238, 185, -238, -238, 261, 238,
1094 + -238, 304, 304, -238, 74, 32, 32, 256, 255, -238,
1095 + -238, -238, -238, -238, -238, -238, -238, -238, 304, 331,
1096 + -238, -238, -238, -238, 331, 304, 304, 262, 263, -238,
1097 + -238, -238, 492, 492, 304, -238, 289, -238, 276, -238,
1098 + 94, -238, -238, -238, 166, 266, 38, 83, -238, -238,
1099 + 269, 302, 168, -238, 71, -238, 268, 272, 328, -238,
1100 + 282, 280, 304, -238, -238, -238, 4, 25, 32, -238,
1101 + -238, 103, 281, -238, -238, -238, -238, -238, -238, -238,
1102 + 119, -238, -238, 304, -238, -238, 304, 258, -238, -238,
1103 + -238, -238, -238, -238, 71, -238, -238, -238, -238, 328,
1104 + -238, 283, 304, -238, -238, 276, -238, -238, -238, -238,
1105 + 320, -238, -238, -238, -238, -238, 35, -238
1108 +/* YYPGOTO[NTERM-NUM]. */
1109 static const short yypgoto[] =
1111 - -32768,-32768,-32768, 342,-32768,-32768,-32768,-32768, -44,-32768,
1112 - -32768, 343,-32768,-32768, 9,-32768, 290, 137,-32768, 157,
1113 - -32768, 274, -75, -82, 165,-32768, 271, -88,-32768,-32768,
1114 - -32768, 16,-32768,-32768,-32768, 173, 309, -70, -130,-32768,
1115 - -32768, 175,-32768,-32768, 4,-32768,-32768,-32768,-32768, 8,
1116 - -32768,-32768, 284,-32768, 66,-32768,-32768,-32768, 181, 348,
1117 - -32768,-32768, 11,-32768, 186, 25, -108,-32768,-32768,-32768,
1118 - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1119 - 110,-32768, 15, -55,-32768,-32768,-32768, -92,-32768,-32768,
1120 - -144, -235,-32768,-32768,-32768,-32768, -93,-32768, 105, 107,
1121 - -32768, -167,-32768,-32768, -168,-32768,-32768,-32768,-32768,-32768,
1122 - 195,-32768,-32768,-32768,-32768, -38,-32768,-32768,-32768, -58,
1124 + -238, -238, -238, -238, 339, -238, -238, -238, -238, -46,
1125 + -238, -238, 340, -238, -238, 47, -238, 286, 33, -238,
1126 + 111, -238, 270, -77, -84, 132, -238, 267, -90, -238,
1127 + -238, -238, 14, -238, -238, -238, 162, 306, -72, -132,
1128 + -238, -238, 164, -238, -238, 2, -238, -238, -238, -238,
1129 + 6, -238, -238, 288, -238, 63, -238, -238, -238, 173,
1130 + 344, -238, -238, 9, -238, 155, 23, -110, -238, -238,
1131 + -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
1132 + -238, 104, -238, 8, -57, -238, -238, -238, -94, -238,
1133 + -238, -146, -237, -238, -238, -238, -238, -95, -238, 101,
1134 + 108, -238, -169, -238, -238, -170, -238, -238, -238, -238,
1135 + -238, 190, -238, -238, -238, -238, -40, -238, -238, -238,
1143 +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1144 + positive, shift that token. If negative, reduce the rule which
1145 + number is the opposite. If zero, do what YYDEFACT says.
1146 + If YYTABLE_NINF, syntax error. */
1147 +#define YYTABLE_NINF -213
1148 static const short yytable[] =
1150 - 129, 163, 151, 119, 171, 213, 185, 223, 304, 150,
1151 - 251, 92, 202, 253, 254, 153, 48, 210, 221, 53,
1152 - 127, 167, 282, 54, 216, 61, 152, 245, 160, 57,
1153 - 37, 160, 45, 46, 47, 34, 56, 142, 57, 168,
1154 - 80, 57, 81, 205, 201, -181, -181, 206, -181, 166,
1155 - 34, 268, 269, 129, 270, 129, 119, 129, 119, 53,
1156 - 119, 206, -211, 54, 222, 84, 231, 233, -175, 131,
1157 - 62, 346, 336, 127, 146, 127, 242, 127, 260, 246,
1158 - 98, 247, 310, 98, 147, 311, 146, 252, -1, 255,
1159 - 232, 234, 293, 144, 153, 98, -181, 53, 277, 278,
1160 - 316, 54, 271, 307, 317, 154, 285, -175, -175, 295,
1161 - 276, 37, 360, 98, 56, 161, 45, 262, 263, 283,
1162 - 296, 284, 73, 206, 74, 289, 290, 291, 2, 3,
1163 - 4, 148, 149, 5, 165, 6, 211, 7, 20, 86,
1164 - 215, 60, 8, 83, 155, 7, 9, 20, 129, 129,
1165 - 305, 119, 119, 151, 151, 151, 308, 309, 22, 85,
1166 - 298, 331, 303, 87, 332, 223, 23, 22, 127, 127,
1167 - 88, 297, 323, 324, 24, 23, 25, 152, 152, 152,
1168 - 318, 320, 32, 24, 350, 25, 89, 351, 146, 325,
1169 - 240, 32, 173, 353, 174, 175, 354, 98, 176, 177,
1170 - 2, 3, 4, 90, -82, 5, -82, -28, 178, 7,
1171 - 2, 3, 4, 63, 132, 5, 79, 349, 9, 7,
1172 - 151, 7, 129, 129, 130, 119, 119, 343, 9, 333,
1173 - 334, 51, 341, 342, 134, 5, 337, 179, 355, 7,
1174 - 135, 356, 127, 127, 152, 180, 181, 136, 137, 139,
1175 - 141, 182, 146, 164, 275, 169, 173, 362, 174, 175,
1176 - 151, 98, 176, 177, 2, 3, 4, 172, 98, 5,
1177 - 203, 6, 178, 7, 207, 212, 365, 357, 8, 146,
1178 - 214, 327, 9, 173, 152, 174, 175, 218, 98, 176,
1179 - 177, 219, 220, 230, 229, 235, 236, 237, 239, 178,
1180 - 243, 179, -211, 281, 249, 250, 160, 146, 273, 180,
1181 - 181, 173, 279, 174, 175, 182, 98, 176, 177, 274,
1182 - 286, 326, 340, 294, 306, 240, 312, 178, 179, 321,
1183 - 322, 335, 339, 367, 146, 344, 180, 181, 173, 345,
1184 - 174, 175, 182, 98, 176, 177, 347, 348, 352, 368,
1185 - 361, 364, 49, 50, 178, 133, 179, 145, 359, 162,
1186 - 91, 338, 140, 55, 180, 181, 313, 94, 363, 248,
1187 - 182, 314, 95, 315, 96, 0, 0, 97, 98, 0,
1188 - 0, 0, 0, 179, 0, 0, 0, 0, 0, 0,
1189 - 0, 99, 0, 0, 0, 0, 100, 182, 101, 0,
1190 - 102, 94, 103, 56, -112, 0, 95, 0, 96, 0,
1191 - 0, 97, 98, 0, 0, 0, 0, 104, 0, 105,
1192 - 0, 0, -112, 0, 0, 99, 0, 0, 94, 0,
1193 - 100, -112, 101, 95, 102, 96, 103, 56, 97, 98,
1194 - -175, -175, -175, 257, 258, 259, -175, 0, 0, 260,
1195 - 0, 104, 99, 105, 0, 0, -112, 100, 0, 101,
1196 - 0, 102, 0, 103, 56, 0, -112, 0, 0, 0,
1197 - 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
1198 - 105, 0, 0, -112, -175, -175, -175, 261, 262, 263,
1199 - 0, 0, 0, -175, -175, 0, 264, 265, 95, 0,
1200 - 96, 0, 0, 97, 98, 0, 0, 0, 0, 0,
1201 - 0, 0, 0, 0, 0, 0, 0, 99, 0, 0,
1202 - 0, 0, 100, 0, 101, 0, 102, 0, 103, 56,
1203 + 131, 165, 153, 121, 173, 215, 187, 225, 306, 152,
1204 + 253, 94, 204, 255, 256, 155, 63, 212, 223, 55,
1205 + 129, 3, 169, 56, 218, -176, 154, 247, 162, 59,
1206 + 39, 162, 47, 48, 49, 22, 36, 167, 59, 156,
1207 + 170, 59, 338, 284, 203, 22, 262, 100, 9, 168,
1208 + 100, -182, -182, 131, -182, 131, 121, 131, 121, 55,
1209 + 121, 64, -212, 56, -176, -176, 233, 235, 208, 270,
1210 + 271, 348, 272, 129, 148, 129, 244, 129, 157, 248,
1211 + 82, 249, 83, 100, 149, 264, 265, 254, -2, 257,
1212 + 234, 236, 295, 146, 155, 36, 207, 55, 279, 280,
1213 + 318, 56, -182, 309, 319, 287, 58, 297, 148, 133,
1214 + 278, 39, 362, 24, 208, 163, 47, 100, 298, 285,
1215 + 273, 286, 208, 24, 224, 291, 292, 293, 4, 5,
1216 + 6, 150, 151, 7, 25, 8, 213, 9, 312, 53,
1217 + 217, 313, 10, 7, 25, 50, 11, 9, 131, 131,
1218 + 307, 121, 121, 153, 153, 153, 310, 311, 333, 86,
1219 + 300, 334, 305, 62, 26, 225, 27, 352, 129, 129,
1220 + 353, 299, 325, 326, 26, 34, 27, 154, 154, 154,
1221 + 320, 322, 85, 355, 65, 34, 356, 81, 148, 327,
1222 + 242, 75, 175, 76, 176, 177, 87, 100, 178, 179,
1223 + 4, 5, 6, 88, -83, 7, -83, -29, 180, 9,
1224 + 4, 5, 6, 58, 144, 7, 89, 351, 11, 9,
1225 + 153, 90, 131, 131, 9, 121, 121, 345, 11, 335,
1226 + 336, 343, 344, 91, 92, 134, 339, 181, 357, 132,
1227 + 136, 358, 129, 129, 154, 182, 183, 137, 138, 139,
1228 + 141, 184, 148, 143, 277, 166, 175, 364, 176, 177,
1229 + 153, 100, 178, 179, 4, 5, 6, 171, 174, 7,
1230 + 100, 8, 180, 9, 205, 214, 367, 359, 10, 148,
1231 + 209, 329, 11, 175, 154, 176, 177, 216, 100, 178,
1232 + 179, 220, 221, 222, 231, 232, 237, 239, 238, 180,
1233 + 241, 181, 245, 251, 275, -212, 162, 148, 252, 182,
1234 + 183, 175, 276, 176, 177, 184, 100, 178, 179, 281,
1235 + 283, 288, 328, 314, 296, 308, 342, 180, 181, 323,
1236 + 324, 337, 341, 242, 148, 346, 182, 183, 175, 347,
1237 + 176, 177, 184, 100, 178, 179, 349, 350, 354, 366,
1238 + 363, 51, 52, 135, 180, 147, 181, 164, 361, 93,
1239 + 340, 57, 315, 365, 182, 183, 250, 96, 142, 316,
1240 + 184, 0, 97, 0, 98, 0, 317, 99, 100, 0,
1241 + 0, 0, 0, 181, 0, 0, 0, 0, 0, 0,
1242 + 0, 101, 0, 0, 0, 0, 102, 184, 103, 0,
1243 + 104, 96, 105, 58, -113, 0, 97, 0, 98, 0,
1244 + 0, 99, 100, 0, 0, 0, 0, 106, 0, 107,
1245 + 0, 0, -113, 0, 0, 101, 0, 0, 96, 0,
1246 + 102, -113, 103, 97, 104, 98, 105, 58, 99, 100,
1247 + -176, -176, -176, 259, 260, 261, -176, 0, 0, 262,
1248 + 0, 106, 101, 107, 0, 0, -113, 102, 0, 103,
1249 + 0, 104, 0, 105, 58, 0, -113, 0, 0, 0,
1250 + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0,
1251 + 107, 0, 0, -113, -176, -176, -176, 263, 264, 265,
1252 + 0, 0, 0, -176, -176, 0, 266, 267, 97, 0,
1253 + 98, 0, 0, 99, 100, 0, 0, 0, 0, 0,
1254 + 0, 0, 0, 0, 0, 0, 0, 101, 0, 0,
1255 + 0, 0, 102, 0, 103, 0, 104, 0, 105, 58,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1257 - 0, 0, 0, 104, 0, 105
1258 + 0, 0, 0, 106, 0, 107
1261 static const short yycheck[] =
1263 - 58, 89, 84, 58, 96, 113, 99, 137, 243, 84,
1264 - 178, 55, 104, 180, 181, 85, 48, 110, 18, 15,
1265 - 58, 38, 31, 15, 117, 5, 84, 171, 86, 18,
1266 - 2, 89, 4, 5, 6, 12, 37, 38, 27, 56,
1267 - 31, 30, 33, 38, 102, 19, 20, 56, 22, 93,
1268 - 12, 19, 20, 111, 22, 113, 111, 115, 113, 55,
1269 - 115, 56, 62, 55, 41, 59, 148, 149, 21, 60,
1270 - 50, 306, 4, 111, 3, 113, 169, 115, 21, 172,
1271 - 12, 173, 64, 12, 13, 67, 3, 179, 0, 182,
1272 - 148, 149, 222, 82, 164, 12, 70, 93, 206, 207,
1273 - 267, 93, 70, 247, 272, 4, 39, 60, 61, 56,
1274 - 203, 83, 347, 12, 37, 87, 88, 60, 61, 212,
1275 - 67, 214, 44, 56, 46, 218, 219, 220, 40, 41,
1276 - 42, 60, 61, 45, 38, 47, 111, 49, 1, 65,
1277 - 115, 56, 54, 56, 43, 49, 58, 10, 206, 207,
1278 - 243, 206, 207, 235, 236, 237, 249, 250, 1, 56,
1279 - 235, 64, 237, 64, 67, 295, 1, 10, 206, 207,
1280 - 56, 229, 280, 281, 1, 10, 1, 235, 236, 237,
1281 - 273, 274, 1, 10, 64, 10, 59, 67, 3, 282,
1282 - 5, 10, 7, 64, 9, 10, 67, 12, 13, 14,
1283 - 40, 41, 42, 56, 44, 45, 46, 37, 23, 49,
1284 - 40, 41, 42, 27, 56, 45, 30, 310, 58, 49,
1285 - 302, 49, 280, 281, 57, 280, 281, 302, 58, 63,
1286 - 64, 41, 63, 64, 12, 45, 294, 52, 331, 49,
1287 - 12, 334, 280, 281, 302, 60, 61, 56, 66, 56,
1288 - 56, 66, 3, 56, 5, 66, 7, 350, 9, 10,
1289 - 342, 12, 13, 14, 40, 41, 42, 66, 12, 45,
1290 - 66, 47, 23, 49, 26, 18, 364, 335, 54, 3,
1291 - 35, 5, 58, 7, 342, 9, 10, 64, 12, 13,
1292 - 14, 18, 62, 56, 65, 62, 62, 18, 56, 23,
1293 - 64, 52, 62, 33, 66, 66, 364, 3, 64, 60,
1294 - 61, 7, 27, 9, 10, 66, 12, 13, 14, 64,
1295 - 66, 33, 24, 65, 64, 5, 67, 23, 52, 67,
1296 - 67, 65, 63, 0, 3, 67, 60, 61, 7, 67,
1297 - 9, 10, 66, 12, 13, 14, 64, 67, 67, 0,
1298 - 67, 29, 10, 10, 23, 65, 52, 83, 342, 88,
1299 - 51, 295, 78, 15, 60, 61, 256, 1, 353, 174,
1300 - 66, 266, 6, 266, 8, -1, -1, 11, 12, -1,
1301 + 60, 91, 86, 60, 98, 115, 101, 139, 245, 86,
1302 + 180, 57, 106, 182, 183, 87, 5, 112, 18, 17,
1303 + 60, 0, 38, 17, 119, 21, 86, 173, 88, 20,
1304 + 4, 91, 6, 7, 8, 2, 12, 38, 29, 4,
1305 + 56, 32, 4, 31, 104, 12, 21, 12, 49, 95,
1306 + 12, 19, 20, 113, 22, 115, 113, 117, 115, 57,
1307 + 117, 50, 62, 57, 60, 61, 150, 151, 56, 19,
1308 + 20, 308, 22, 113, 3, 115, 171, 117, 43, 174,
1309 + 33, 175, 35, 12, 13, 60, 61, 181, 0, 184,
1310 + 150, 151, 224, 84, 166, 12, 38, 95, 208, 209,
1311 + 269, 95, 70, 249, 274, 39, 37, 56, 3, 62,
1312 + 205, 85, 349, 2, 56, 89, 90, 12, 67, 214,
1313 + 70, 216, 56, 12, 41, 220, 221, 222, 40, 41,
1314 + 42, 60, 61, 45, 2, 47, 113, 49, 64, 41,
1315 + 117, 67, 54, 45, 12, 48, 58, 49, 208, 209,
1316 + 245, 208, 209, 237, 238, 239, 251, 252, 64, 59,
1317 + 237, 67, 239, 56, 2, 297, 2, 64, 208, 209,
1318 + 67, 231, 282, 283, 12, 2, 12, 237, 238, 239,
1319 + 275, 276, 56, 64, 29, 12, 67, 32, 3, 284,
1320 + 5, 44, 7, 46, 9, 10, 56, 12, 13, 14,
1321 + 40, 41, 42, 65, 44, 45, 46, 37, 23, 49,
1322 + 40, 41, 42, 37, 38, 45, 64, 312, 58, 49,
1323 + 304, 56, 282, 283, 49, 282, 283, 304, 58, 63,
1324 + 64, 63, 64, 59, 56, 56, 296, 52, 333, 57,
1325 + 12, 336, 282, 283, 304, 60, 61, 12, 56, 66,
1326 + 56, 66, 3, 56, 5, 56, 7, 352, 9, 10,
1327 + 344, 12, 13, 14, 40, 41, 42, 66, 66, 45,
1328 + 12, 47, 23, 49, 66, 18, 366, 337, 54, 3,
1329 + 26, 5, 58, 7, 344, 9, 10, 35, 12, 13,
1330 + 14, 64, 18, 62, 65, 56, 62, 18, 62, 23,
1331 + 56, 52, 64, 66, 64, 62, 366, 3, 66, 60,
1332 + 61, 7, 64, 9, 10, 66, 12, 13, 14, 27,
1333 + 33, 66, 33, 67, 65, 64, 24, 23, 52, 67,
1334 + 67, 65, 63, 5, 3, 67, 60, 61, 7, 67,
1335 + 9, 10, 66, 12, 13, 14, 64, 67, 67, 29,
1336 + 67, 12, 12, 67, 23, 85, 52, 90, 344, 53,
1337 + 297, 17, 258, 355, 60, 61, 176, 1, 80, 268,
1338 + 66, -1, 6, -1, 8, -1, 268, 11, 12, -1,
1339 -1, -1, -1, 52, -1, -1, -1, -1, -1, -1,
1340 -1, 25, -1, -1, -1, -1, 30, 66, 32, -1,
1341 34, 1, 36, 37, 38, -1, 6, -1, 8, -1,
1342 @@ -700,144 +961,50 @@
1343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1344 -1, -1, -1, 51, -1, 53
1346 -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1347 -#line 3 "/usr/share/bison/bison.simple"
1349 -/* Skeleton output parser for bison,
1351 - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
1354 - This program is free software; you can redistribute it and/or modify
1355 - it under the terms of the GNU General Public License as published by
1356 - the Free Software Foundation; either version 2, or (at your option)
1357 - any later version.
1359 - This program is distributed in the hope that it will be useful,
1360 - but WITHOUT ANY WARRANTY; without even the implied warranty of
1361 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1362 - GNU General Public License for more details.
1364 - You should have received a copy of the GNU General Public License
1365 - along with this program; if not, write to the Free Software
1366 - Foundation, Inc., 59 Temple Place - Suite 330,
1367 - Boston, MA 02111-1307, USA. */
1369 -/* As a special exception, when this file is copied by Bison into a
1370 - Bison output file, you may use that output file without restriction.
1371 - This special exception was added by the Free Software Foundation
1372 - in version 1.24 of Bison. */
1374 -/* This is the parser code that is written into each bison parser when
1375 - the %semantic_parser declaration is not specified in the grammar.
1376 - It was written by Richard Stallman by simplifying the hairy parser
1377 - used when %semantic_parser is specified. */
1379 -/* All symbols defined below should begin with yy or YY, to avoid
1380 - infringing on user name space. This should be done even for local
1381 - variables, as they might otherwise be expanded by user macros.
1382 - There are some unavoidable exceptions within include files to
1383 - define necessary library symbols; they are noted "INFRINGES ON
1384 - USER NAME SPACE" below. */
1386 -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1388 -/* The parser invokes alloca or malloc; define the necessary symbols. */
1390 -# if YYSTACK_USE_ALLOCA
1391 -# define YYSTACK_ALLOC alloca
1393 -# ifndef YYSTACK_USE_ALLOCA
1394 -# if defined (alloca) || defined (_ALLOCA_H)
1395 -# define YYSTACK_ALLOC alloca
1398 -# define YYSTACK_ALLOC __builtin_alloca
1404 -# ifdef YYSTACK_ALLOC
1405 - /* Pacify GCC's `empty if-body' warning. */
1406 -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1408 -# if defined (__STDC__) || defined (__cplusplus)
1409 -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1410 -# define YYSIZE_T size_t
1412 -# define YYSTACK_ALLOC malloc
1413 -# define YYSTACK_FREE free
1415 -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1418 -#if (! defined (yyoverflow) \
1419 - && (! defined (__cplusplus) \
1420 - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1422 -/* A type that is properly aligned for any stack member. */
1430 +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1431 + symbol of state STATE-NUM. */
1432 +static const unsigned char yystos[] =
1434 + 0, 72, 73, 0, 40, 41, 42, 45, 47, 49,
1435 + 54, 58, 74, 75, 76, 77, 78, 79, 81, 83,
1436 + 84, 85, 89, 90, 91, 96, 107, 113, 114, 115,
1437 + 116, 117, 120, 121, 130, 131, 12, 92, 93, 192,
1438 + 108, 109, 110, 111, 192, 97, 98, 192, 192, 192,
1439 + 48, 75, 83, 41, 80, 116, 121, 131, 37, 134,
1440 + 135, 136, 56, 5, 50, 136, 86, 87, 88, 89,
1441 + 91, 96, 107, 113, 130, 44, 46, 118, 119, 122,
1442 + 123, 136, 86, 86, 132, 56, 59, 56, 65, 64,
1443 + 56, 59, 56, 108, 80, 82, 1, 6, 8, 11,
1444 + 12, 25, 30, 32, 34, 36, 51, 53, 134, 137,
1445 + 138, 139, 142, 144, 145, 146, 147, 148, 149, 150,
1446 + 151, 155, 157, 158, 160, 161, 164, 165, 166, 187,
1447 + 188, 191, 57, 86, 56, 88, 12, 12, 56, 66,
1448 + 124, 56, 124, 56, 38, 133, 134, 93, 3, 13,
1449 + 60, 61, 94, 95, 191, 109, 4, 43, 99, 100,
1450 + 101, 106, 191, 192, 98, 99, 56, 38, 80, 38,
1451 + 56, 66, 159, 159, 66, 7, 9, 10, 13, 14,
1452 + 23, 52, 60, 61, 66, 95, 155, 168, 170, 171,
1453 + 173, 174, 176, 177, 179, 180, 181, 183, 184, 185,
1454 + 187, 190, 191, 191, 159, 66, 182, 38, 56, 26,
1455 + 140, 143, 168, 137, 18, 138, 35, 137, 168, 156,
1456 + 64, 18, 62, 18, 41, 110, 125, 126, 127, 128,
1457 + 129, 65, 56, 95, 191, 95, 191, 62, 62, 18,
1458 + 112, 56, 5, 163, 168, 64, 162, 162, 168, 159,
1459 + 182, 66, 66, 176, 159, 173, 173, 168, 178, 15,
1460 + 16, 17, 21, 59, 60, 61, 68, 69, 169, 172,
1461 + 19, 20, 22, 70, 175, 64, 64, 5, 168, 138,
1462 + 138, 27, 141, 33, 31, 168, 168, 39, 66, 152,
1463 + 167, 168, 168, 168, 189, 110, 65, 56, 67, 191,
1464 + 94, 94, 102, 103, 104, 94, 163, 168, 64, 162,
1465 + 168, 168, 64, 67, 67, 152, 170, 171, 173, 176,
1466 + 168, 186, 168, 67, 67, 138, 138, 168, 33, 5,
1467 + 153, 154, 168, 64, 67, 63, 64, 65, 4, 191,
1468 + 126, 63, 24, 63, 64, 94, 67, 67, 163, 64,
1469 + 67, 168, 64, 67, 67, 64, 67, 168, 168, 191,
1470 + 105, 103, 163, 67, 168, 154, 29, 99
1473 -/* The size of the maximum gap between one aligned stack and the next. */
1474 -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1476 -/* The size of an array large to enough to hold all stacks, each with
1479 -# define YYSTACK_BYTES(N) \
1480 - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1481 - + 2 * YYSTACK_GAP_MAX)
1483 -# define YYSTACK_BYTES(N) \
1484 - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1485 - + YYSTACK_GAP_MAX)
1488 -/* Copy COUNT objects from FROM to TO. The source and destination do
1492 -# define YYCOPY(To, From, Count) \
1493 - __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1495 -# define YYCOPY(To, From, Count) \
1498 - register YYSIZE_T yyi; \
1499 - for (yyi = 0; yyi < (Count); yyi++) \
1500 - (To)[yyi] = (From)[yyi]; \
1506 -/* Relocate STACK from its old location to the new one. The
1507 - local variables YYSIZE and YYSTACKSIZE give the old and new number of
1508 - elements in the stack, and YYPTR gives the new location of the
1509 - stack. Advance YYPTR to a properly aligned location for the next
1511 -# define YYSTACK_RELOCATE(Stack) \
1514 - YYSIZE_T yynewbytes; \
1515 - YYCOPY (&yyptr->Stack, Stack, yysize); \
1516 - Stack = &yyptr->Stack; \
1517 - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
1518 - yyptr += yynewbytes / sizeof (*yyptr); \
1525 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1526 # define YYSIZE_T __SIZE_TYPE__
1528 @@ -856,29 +1023,34 @@
1530 #define yyerrok (yyerrstatus = 0)
1531 #define yyclearin (yychar = YYEMPTY)
1533 +#define YYEMPTY (-2)
1536 #define YYACCEPT goto yyacceptlab
1537 -#define YYABORT goto yyabortlab
1538 +#define YYABORT goto yyabortlab
1539 #define YYERROR goto yyerrlab1
1541 /* Like YYERROR except do call yyerror. This remains here temporarily
1542 to ease the transition to the new meaning of YYERROR, for GCC.
1543 Once GCC version 2 has supplanted version 1, this can go. */
1545 #define YYFAIL goto yyerrlab
1547 #define YYRECOVERING() (!!yyerrstatus)
1549 #define YYBACKUP(Token, Value) \
1551 if (yychar == YYEMPTY && yylen == 1) \
1555 - yychar1 = YYTRANSLATE (yychar); \
1556 + yytoken = YYTRANSLATE (yychar); \
1562 - yyerror ("syntax error: cannot back up"); \
1563 + yyerror ("syntax error: cannot back up");\
1567 @@ -886,41 +1058,24 @@
1569 #define YYERRCODE 256
1572 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1575 - When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1576 - first token. By default, to implement support for ranges, extend
1577 - its range to the last symbol. */
1580 #ifndef YYLLOC_DEFAULT
1581 -# define YYLLOC_DEFAULT(Current, Rhs, N) \
1582 - Current.last_line = Rhs[N].last_line; \
1583 - Current.last_column = Rhs[N].last_column;
1584 +# define YYLLOC_DEFAULT(Current, Rhs, N) \
1585 + Current.first_line = Rhs[1].first_line; \
1586 + Current.first_column = Rhs[1].first_column; \
1587 + Current.last_line = Rhs[N].last_line; \
1588 + Current.last_column = Rhs[N].last_column;
1592 /* YYLEX -- calling `yylex' with the right arguments. */
1596 -# ifdef YYLEX_PARAM
1597 -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1599 -# define YYLEX yylex (&yylval, &yylloc)
1601 -# else /* !YYLSP_NEEDED */
1602 -# ifdef YYLEX_PARAM
1603 -# define YYLEX yylex (&yylval, YYLEX_PARAM)
1605 -# define YYLEX yylex (&yylval)
1607 -# endif /* !YYLSP_NEEDED */
1608 -#else /* !YYPURE */
1609 -# define YYLEX yylex ()
1610 -#endif /* !YYPURE */
1613 +# define YYLEX yylex (YYLEX_PARAM)
1615 +# define YYLEX yylex ()
1618 /* Enable debugging if requested. */
1620 @@ -935,13 +1090,93 @@
1625 +# define YYDSYMPRINT(Args) \
1628 + yysymprint Args; \
1631 +# define YYDSYMPRINTF(Title, Token, Value, Location) \
1635 + YYFPRINTF (stderr, "%s ", Title); \
1636 + yysymprint (stderr, \
1638 + YYFPRINTF (stderr, "\n"); \
1642 +/*------------------------------------------------------------------.
1643 +| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1644 +| TOP (cinluded). |
1645 +`------------------------------------------------------------------*/
1647 +#if defined (__STDC__) || defined (__cplusplus)
1649 +yy_stack_print (short *bottom, short *top)
1652 +yy_stack_print (bottom, top)
1657 + YYFPRINTF (stderr, "Stack now");
1658 + for (/* Nothing. */; bottom <= top; ++bottom)
1659 + YYFPRINTF (stderr, " %d", *bottom);
1660 + YYFPRINTF (stderr, "\n");
1663 +# define YY_STACK_PRINT(Bottom, Top) \
1666 + yy_stack_print ((Bottom), (Top)); \
1670 +/*------------------------------------------------.
1671 +| Report that the YYRULE is going to be reduced. |
1672 +`------------------------------------------------*/
1674 +#if defined (__STDC__) || defined (__cplusplus)
1676 +yy_reduce_print (int yyrule)
1679 +yy_reduce_print (yyrule)
1684 + unsigned int yylineno = yyrline[yyrule];
1685 + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1686 + yyrule - 1, yylineno);
1687 + /* Print the symbols being reduced, and their result. */
1688 + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1689 + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1690 + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
1693 +# define YY_REDUCE_PRINT(Rule) \
1696 + yy_reduce_print (Rule); \
1699 /* Nonzero means print parse trace. It is left uninitialized so that
1700 multiple parsers can coexist. */
1702 #else /* !YYDEBUG */
1703 # define YYDPRINTF(Args)
1704 +# define YYDSYMPRINT(Args)
1705 +# define YYDSYMPRINTF(Title, Token, Value, Location)
1706 +# define YY_STACK_PRINT(Bottom, Top)
1707 +# define YY_REDUCE_PRINT(Rule)
1708 #endif /* !YYDEBUG */
1711 /* YYINITDEPTH -- initial size of the parser's stacks. */
1713 # define YYINITDEPTH 200
1714 @@ -961,8 +1196,10 @@
1716 # define YYMAXDEPTH 10000
1720 -#ifdef YYERROR_VERBOSE
1722 +#if YYERROR_VERBOSE
1725 # if defined (__GLIBC__) && defined (_STRING_H)
1726 @@ -1012,86 +1249,134 @@
1732 +#endif /* !YYERROR_VERBOSE */
1735 -#line 315 "/usr/share/bison/bison.simple"
1738 +/*--------------------------------.
1739 +| Print this symbol on YYOUTPUT. |
1740 +`--------------------------------*/
1742 +#if defined (__STDC__) || defined (__cplusplus)
1744 +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1747 +yysymprint (yyoutput, yytype, yyvaluep)
1750 + YYSTYPE *yyvaluep;
1753 + /* Pacify ``unused variable'' warnings. */
1756 + if (yytype < YYNTOKENS)
1758 + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1760 + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1764 + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1771 + YYFPRINTF (yyoutput, ")");
1774 +#endif /* ! YYDEBUG */
1775 +/*-----------------------------------------------.
1776 +| Release the memory associated to this symbol. |
1777 +`-----------------------------------------------*/
1779 +#if defined (__STDC__) || defined (__cplusplus)
1781 +yydestruct (int yytype, YYSTYPE *yyvaluep)
1784 +yydestruct (yytype, yyvaluep)
1786 + YYSTYPE *yyvaluep;
1789 + /* Pacify ``unused variable'' warnings. */
1801 -/* The user can define YYPARSE_PARAM as the name of an argument to be passed
1802 - into yyparse. The argument should have type void *.
1803 - It should actually point to an object.
1804 - Grammar actions can access the variable by casting it
1805 - to the proper pointer type. */
1806 +/* Prevent warnings from -Wmissing-prototypes. */
1808 #ifdef YYPARSE_PARAM
1809 # if defined (__STDC__) || defined (__cplusplus)
1810 -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1811 -# define YYPARSE_PARAM_DECL
1812 +int yyparse (void *YYPARSE_PARAM);
1814 -# define YYPARSE_PARAM_ARG YYPARSE_PARAM
1815 -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1818 -#else /* !YYPARSE_PARAM */
1819 -# define YYPARSE_PARAM_ARG
1820 -# define YYPARSE_PARAM_DECL
1821 -#endif /* !YYPARSE_PARAM */
1823 -/* Prevent warning if -Wstrict-prototypes. */
1825 -# ifdef YYPARSE_PARAM
1826 -int yyparse (void *);
1828 +#else /* ! YYPARSE_PARAM */
1829 +#if defined (__STDC__) || defined (__cplusplus)
1835 +#endif /* ! YYPARSE_PARAM */
1837 -/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1838 - variables are global, or local to YYPARSE. */
1840 -#define YY_DECL_NON_LSP_VARIABLES \
1841 -/* The lookahead symbol. */ \
1844 -/* The semantic value of the lookahead symbol. */ \
1847 -/* Number of parse errors so far. */ \
1851 -# define YY_DECL_VARIABLES \
1852 -YY_DECL_NON_LSP_VARIABLES \
1854 -/* Location data for the lookahead symbol. */ \
1857 -# define YY_DECL_VARIABLES \
1858 -YY_DECL_NON_LSP_VARIABLES
1860 +/* The lookahead symbol. */
1863 +/* The semantic value of the lookahead symbol. */
1866 -/* If nonreentrant, generate the variables here. */
1867 +/* Number of syntax errors so far. */
1872 -#endif /* !YYPURE */
1879 +#ifdef YYPARSE_PARAM
1880 +# if defined (__STDC__) || defined (__cplusplus)
1881 +int yyparse (void *YYPARSE_PARAM)
1883 +int yyparse (YYPARSE_PARAM)
1884 + void *YYPARSE_PARAM;
1886 +#else /* ! YYPARSE_PARAM */
1887 +#if defined (__STDC__) || defined (__cplusplus)
1889 -yyparse (YYPARSE_PARAM_ARG)
1890 - YYPARSE_PARAM_DECL
1892 - /* If reentrant, generate the variables here. */
1895 -#endif /* !YYPURE */
1905 register int yystate;
1908 /* Number of tokens to shift before error messages enabled. */
1910 /* Lookahead token as an internal (translated) token number. */
1914 /* Three stacks and their tools:
1915 `yyss': related to states,
1916 @@ -1101,7 +1386,7 @@
1917 Refer to the stacks thru separate pointers, to allow yyoverflow
1918 to reallocate them elsewhere. */
1920 - /* The state stack. */
1921 + /* The state stack. */
1922 short yyssa[YYINITDEPTH];
1923 short *yyss = yyssa;
1924 register short *yyssp;
1925 @@ -1111,31 +1396,19 @@
1926 YYSTYPE *yyvs = yyvsa;
1927 register YYSTYPE *yyvsp;
1930 - /* The location stack. */
1931 - YYLTYPE yylsa[YYINITDEPTH];
1932 - YYLTYPE *yyls = yylsa;
1937 -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1939 -# define YYPOPSTACK (yyvsp--, yyssp--)
1942 - YYSIZE_T yystacksize = YYINITDEPTH;
1943 +#define YYPOPSTACK (yyvsp--, yyssp--)
1945 + YYSIZE_T yystacksize = YYINITDEPTH;
1947 /* The variables used to return semantic value and location from the
1955 /* When reducing, the number of symbols on the RHS of the reduced
1960 YYDPRINTF ((stderr, "Starting parse\n"));
1961 @@ -1152,9 +1425,7 @@
1971 /*------------------------------------------------------------.
1972 @@ -1169,7 +1440,7 @@
1976 - if (yyssp >= yyss + yystacksize - 1)
1977 + if (yyss + yystacksize - 1 <= yyssp)
1979 /* Get the current used size of the three stacks, in elements. */
1980 YYSIZE_T yysize = yyssp - yyss + 1;
1981 @@ -1182,24 +1453,17 @@
1982 YYSTYPE *yyvs1 = yyvs;
1983 short *yyss1 = yyss;
1986 /* Each stack pointer address is followed by the size of the
1987 - data in use in that stack, in bytes. */
1989 - YYLTYPE *yyls1 = yyls;
1990 - /* This used to be a conditional around just the two extra args,
1991 - but that might be undefined if yyoverflow is a macro. */
1992 - yyoverflow ("parser stack overflow",
1993 - &yyss1, yysize * sizeof (*yyssp),
1994 - &yyvs1, yysize * sizeof (*yyvsp),
1995 - &yyls1, yysize * sizeof (*yylsp),
1999 + data in use in that stack, in bytes. This used to be a
2000 + conditional around just the two extra args, but that might
2001 + be undefined if yyoverflow is a macro. */
2002 yyoverflow ("parser stack overflow",
2003 &yyss1, yysize * sizeof (*yyssp),
2004 &yyvs1, yysize * sizeof (*yyvsp),
2012 @@ -1208,10 +1472,10 @@
2015 /* Extend the stack our own way. */
2016 - if (yystacksize >= YYMAXDEPTH)
2017 + if (YYMAXDEPTH <= yystacksize)
2020 - if (yystacksize > YYMAXDEPTH)
2021 + if (YYMAXDEPTH < yystacksize)
2022 yystacksize = YYMAXDEPTH;
2025 @@ -1222,10 +1486,8 @@
2027 YYSTACK_RELOCATE (yyss);
2028 YYSTACK_RELOCATE (yyvs);
2030 - YYSTACK_RELOCATE (yyls);
2032 -# undef YYSTACK_RELOCATE
2034 +# undef YYSTACK_RELOCATE
2036 YYSTACK_FREE (yyss1);
2038 @@ -1234,14 +1496,12 @@
2040 yyssp = yyss + yysize - 1;
2041 yyvsp = yyvs + yysize - 1;
2043 - yylsp = yyls + yysize - 1;
2047 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2048 (unsigned long int) yystacksize));
2050 - if (yyssp >= yyss + yystacksize - 1)
2051 + if (yyss + yystacksize - 1 <= yyssp)
2055 @@ -1249,7 +1509,6 @@
2063 @@ -1262,88 +1521,55 @@
2064 /* First try to decide what to do without reference to lookahead token. */
2066 yyn = yypact[yystate];
2067 - if (yyn == YYFLAG)
2068 + if (yyn == YYPACT_NINF)
2071 /* Not known => get a lookahead token if don't already have one. */
2073 - /* yychar is either YYEMPTY or YYEOF
2074 - or a valid token in external form. */
2076 + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2077 if (yychar == YYEMPTY)
2079 YYDPRINTF ((stderr, "Reading a token: "));
2083 - /* Convert token to internal form (in yychar1) for indexing tables with */
2085 - if (yychar <= 0) /* This means end of input. */
2086 + if (yychar <= YYEOF)
2089 - yychar = YYEOF; /* Don't call YYLEX any more */
2091 + yychar = yytoken = YYEOF;
2092 YYDPRINTF ((stderr, "Now at end of input.\n"));
2096 - yychar1 = YYTRANSLATE (yychar);
2099 - /* We have to keep this `#if YYDEBUG', since we use variables
2100 - which are defined only if `YYDEBUG' is set. */
2103 - YYFPRINTF (stderr, "Next token is %d (%s",
2104 - yychar, yytname[yychar1]);
2105 - /* Give the individual parser a way to print the precise
2106 - meaning of a token, for further debugging info. */
2108 - YYPRINT (stderr, yychar, yylval);
2110 - YYFPRINTF (stderr, ")\n");
2113 + yytoken = YYTRANSLATE (yychar);
2114 + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
2118 - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2119 + /* If the proper action on seeing token YYTOKEN is to reduce or to
2120 + detect an error, take that action. */
2122 + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2127 - /* yyn is what to do for this token type in this state.
2128 - Negative => reduce, -yyn is rule number.
2129 - Positive => shift, yyn is new state.
2130 - New state is final state => don't bother to shift,
2131 - just return success.
2132 - 0, or most negative number => error. */
2137 - if (yyn == YYFLAG)
2138 + if (yyn == 0 || yyn == YYTABLE_NINF)
2143 - else if (yyn == 0)
2149 /* Shift the lookahead token. */
2150 - YYDPRINTF ((stderr, "Shifting token %d (%s), ",
2151 - yychar, yytname[yychar1]));
2152 + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
2154 /* Discard the token being shifted unless it is eof. */
2155 if (yychar != YYEOF)
2160 - *++yylsp = yylloc;
2164 /* Count tokens shifted since error; after three, turn off error
2166 @@ -1374,42 +1600,20 @@
2167 /* If YYLEN is nonzero, implement the default value of the action:
2170 - Otherwise, the following line sets YYVAL to the semantic value of
2171 - the lookahead token. This behavior is undocumented and Bison
2172 + Otherwise, the following line sets YYVAL to garbage.
2173 + This behavior is undocumented and Bison
2174 users should not rely upon it. Assigning to YYVAL
2175 unconditionally makes the parser a bit smaller, and it avoids a
2176 GCC warning that YYVAL may be used uninitialized. */
2177 yyval = yyvsp[1-yylen];
2180 - /* Similarly for the default location. Let the user run additional
2181 - commands if for instance locations are ranges. */
2182 - yyloc = yylsp[1-yylen];
2183 - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2187 - /* We have to keep this `#if YYDEBUG', since we use variables which
2188 - are defined only if `YYDEBUG' is set. */
2193 - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
2194 - yyn, yyrline[yyn]);
2196 - /* Print the symbols being reduced, and their result. */
2197 - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
2198 - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
2199 - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2206 + YY_REDUCE_PRINT (yyn);
2210 #line 146 "bapascal.y"
2214 tab[ob_tix].adr = lc; /* outerblock entry pt */
2215 for (i = 0; i <= mon; i++){
2216 @@ -1422,27 +1626,30 @@
2217 process_var_inits(level);
2223 #line 159 "bapascal.y"
2226 if (!making_objfile&&!main_declared)
2227 yyerror("No 'main' function declared");
2235 #line 166 "bapascal.y"
2238 if (!making_objfile&&!main_declared)
2239 yyerror("No 'main' function declared");
2247 #line 175 "bapascal.y"
2251 enter(outerblock_name,outerblock,level,level);
2253 @@ -1454,40 +1661,47 @@
2254 display[last_btab] = level;
2260 #line 207 "bapascal.y"
2267 #line 211 "bapascal.y"
2276 #line 217 "bapascal.y"
2283 #line 221 "bapascal.y"
2284 -{ leave_block(&level); }
2285 + { leave_block(&level); }
2290 #line 223 "bapascal.y"
2291 -{ leave_block(&level); }
2292 + { leave_block(&level); }
2297 #line 227 "bapascal.y"
2300 tab[yyvsp[-3]].adr = -1;
2303 leave_block(&level);
2309 #line 240 "bapascal.y"
2314 /* need to backpatch location of outer block code */
2315 @@ -1505,18 +1719,20 @@
2316 process_var_inits(level-1);
2322 #line 261 "bapascal.y"
2325 tab[yyvsp[-2]].adr = lc; /* main pgm entry point */
2326 process_var_inits(level); /* process any var inits */
2327 outer_call_lc = lc; /* loc of SHORTCALL instr */
2328 emit(SHORTCALL); /* target addr is backpatched later */
2334 #line 270 "bapascal.y"
2335 -{ /* pgm name is last symbol in outer scope */
2336 + { /* pgm name is last symbol in outer scope */
2340 @@ -1527,9 +1743,10 @@
2341 btab[last_btab].lastpar = last_tab; /* no parms */
2347 #line 299 "bapascal.y"
2350 if (strcmp(laststring,infile[curr_infile].fname) == 0)
2351 yyerror("Recursive file inclusion");
2353 @@ -1539,15 +1756,17 @@
2360 #line 311 "bapascal.y"
2369 #line 317 "bapascal.y"
2372 if (strcmp(laststring,infile[curr_infile].fname) == 0)
2373 yyerror("Recursive file inclusion");
2375 @@ -1557,33 +1776,39 @@
2382 #line 336 "bapascal.y"
2385 tab[last_tab].typ = consttype;
2386 tab[last_tab].adr = yyvsp[0];
2387 tab[last_tab].ref = 0;
2393 #line 344 "bapascal.y"
2394 -{ consttype = ints; }
2395 + { consttype = ints; }
2400 #line 346 "bapascal.y"
2401 -{ yyval = yyvsp[0]; consttype = ints; }
2402 + { yyval = yyvsp[0]; consttype = ints; }
2407 #line 348 "bapascal.y"
2408 -{ yyval = - yyvsp[0]; consttype = ints; }
2409 + { yyval = - yyvsp[0]; consttype = ints; }
2414 #line 350 "bapascal.y"
2415 -{ yyval = get_constant(lastident,level,&consttype); }
2416 + { yyval = get_constant(lastident,level,&consttype); }
2421 #line 352 "bapascal.y"
2422 -{ yyval = get_constant(lastident,level,&consttype);
2423 + { yyval = get_constant(lastident,level,&consttype);
2424 if (consttype != ints) {
2425 sprintf(pbuf,"Identifier '%s' not INTEGER type",lastident);
2427 @@ -1591,9 +1816,10 @@
2434 #line 360 "bapascal.y"
2435 -{ yyval = - get_constant(lastident,level,&consttype);
2436 + { yyval = - get_constant(lastident,level,&consttype);
2437 if (consttype != ints) {
2438 sprintf(pbuf,"Identifier '%s' not INTEGER type",lastident);
2440 @@ -1601,17 +1827,20 @@
2447 #line 368 "bapascal.y"
2448 -{ consttype = chars; yyval = laststring[0]; }
2449 + { consttype = chars; yyval = laststring[0]; }
2454 #line 372 "bapascal.y"
2455 -{yyval = strtoi(numbertext,numberbase);}
2456 + {yyval = strtoi(numbertext,numberbase);}
2461 #line 383 "bapascal.y"
2464 tab[yyvsp[-2]].obj = type;
2465 if (expr[yyvsp[0]].typ == arrays) {
2466 tab[yyvsp[-2]].typ = arrays;
2467 @@ -1628,9 +1857,10 @@
2468 free_expr(yyvsp[0]);
2474 #line 407 "bapascal.y"
2477 if (yyvsp[0] != 0) {
2478 if ((tab[yyvsp[0]].obj != type)||(tab[yyvsp[0]].typ == notyp)){
2479 sprintf(pbuf,"Identifier '%s' is not a valid type",lastident);
2480 @@ -1652,9 +1882,10 @@
2487 #line 432 "bapascal.y"
2492 int elsize,elref,last;
2493 @@ -1695,9 +1926,10 @@
2494 free_expr(yyvsp[0]);
2500 #line 481 "bapascal.y"
2503 if (consttype != atab[last_atab].inxtyp)
2504 yyerror("Array index type mismatch");
2506 @@ -1712,9 +1944,10 @@
2513 #line 498 "bapascal.y"
2516 if (last_atab == AMAX)
2517 cfatal("Array table full with %d entries",AMAX);
2518 atab[++last_atab].inxtyp = consttype;
2519 @@ -1722,13 +1955,15 @@
2520 yyval = last_atab; /* pass the array start up the parse tree */
2526 #line 508 "bapascal.y"
2527 -{ yyval = last_atab; }
2528 + { yyval = last_atab; }
2533 #line 512 "bapascal.y"
2537 if (consttype != ints)
2538 yyerror("Size of 'string' type must be an integer");
2539 @@ -1741,9 +1976,10 @@
2546 #line 534 "bapascal.y"
2549 int i,vartyp,varref,varsize,dx = btab[display[level]].vsize;
2551 if (yyvsp[0] != NO_EXPR) {
2552 @@ -1806,66 +2042,76 @@
2553 free_expr(yyvsp[-1]); free_expr(yyvsp[0]);
2559 #line 602 "bapascal.y"
2560 -{ yyval = yyvsp[0]; }
2561 + { yyval = yyvsp[0]; }
2566 #line 606 "bapascal.y"
2567 -{ yyval = NO_EXPR; }
2568 + { yyval = NO_EXPR; }
2573 #line 608 "bapascal.y"
2577 expr[yyval].typ = consttype;
2578 expr[yyval].adr = yyvsp[0];
2584 #line 619 "bapascal.y"
2587 if (tab[yyvsp[-2]].mon) emit(EXITMON);
2589 leave_block(&level);
2596 #line 626 "bapascal.y"
2599 if (tab[yyvsp[-2]].mon) emit(EXITMON);
2601 leave_block(&level);
2608 #line 635 "bapascal.y"
2611 tab[yyvsp[-1]].adr = (external? -1 : lc);
2612 if (tab[yyvsp[-1]].mon) emit1(ENTERMON,tab[yyvsp[-1]].mon);
2613 process_var_inits(level);
2619 #line 643 "bapascal.y"
2623 tab[yyvsp[-1]].atomic = atomic;
2629 #line 650 "bapascal.y"
2630 -{ atomic = FALSE; }
2631 + { atomic = FALSE; }
2636 #line 652 "bapascal.y"
2638 + { atomic = TRUE; }
2643 #line 660 "bapascal.y"
2644 -{ int vis_level,real_level;
2645 + { int vis_level,real_level;
2649 @@ -1880,24 +2126,27 @@
2650 enter_block(&last_btab,&level,prt);
2656 #line 677 "bapascal.y"
2659 tab[yyvsp[-1]].adr = (external? -1 : lc);
2660 if (tab[yyvsp[-1]].mon) emit1(ENTERMON,tab[yyvsp[-1]].mon);
2661 process_var_inits(level);
2667 #line 685 "bapascal.y"
2670 tab[yyvsp[-1]].atomic = atomic;
2677 #line 692 "bapascal.y"
2678 -{ TYPES ft = tab[yyvsp[0]].typ;
2679 + { TYPES ft = tab[yyvsp[0]].typ;
2680 if (tab[yyvsp[0]].obj != type){
2681 sprintf(pbuf,"'%s' is not a valid type",tab[yyvsp[0]].name);
2683 @@ -1907,9 +2156,10 @@
2684 tab[yyvsp[-3]].typ = tab[yyvsp[0]].typ;
2690 #line 704 "bapascal.y"
2691 -{ int vis_level,real_level;
2692 + { int vis_level,real_level;
2696 @@ -1924,17 +2174,20 @@
2697 enter_block(&last_btab,&level,prt);
2703 #line 721 "bapascal.y"
2704 -{ btab[display[level]].lastpar = last_tab;}
2705 + { btab[display[level]].lastpar = last_tab;}
2710 #line 723 "bapascal.y"
2711 -{ btab[display[level]].lastpar = last_tab;}
2712 + { btab[display[level]].lastpar = last_tab;}
2717 #line 736 "bapascal.y"
2718 -{ int i,dx,dv,j,elem_size,stack_dx;
2719 + { int i,dx,dv,j,elem_size,stack_dx;
2720 if (tab[yyvsp[0]].obj != type) {
2721 sprintf(pbuf,"'%s' is not a valid type",tab[yyvsp[0]].name);
2723 @@ -1956,9 +2209,10 @@
2724 btab[j].vsize = dx + dv;
2730 #line 760 "bapascal.y"
2731 -{ int i,dx,dv,j,elem_size;
2732 + { int i,dx,dv,j,elem_size;
2733 if (tab[yyvsp[0]].obj != type) {
2734 sprintf(pbuf,"'%s' is not a valid type",tab[yyvsp[0]].name);
2736 @@ -1980,9 +2234,10 @@
2737 btab[j].vsize = dx + dv;
2743 #line 784 "bapascal.y"
2744 -{ int i,dx,dv,j,stack_dx;
2745 + { int i,dx,dv,j,stack_dx;
2747 stack_dx = 1; /* strings always pass by reference */
2749 @@ -2000,9 +2255,10 @@
2750 btab[j].vsize = dx + dv;
2756 #line 804 "bapascal.y"
2759 if (tab[mtab[mon]].obj == monitor) {
2760 /* don't do the following for ext_monitor objects */
2761 /* main pgm will CALL_MONINIT, even if no init code */
2762 @@ -2011,9 +2267,10 @@
2763 leave_block(&level);
2769 #line 815 "bapascal.y"
2773 cfatal("No more than %d monitors can be declared",MAXMON);
2775 @@ -2030,24 +2287,27 @@
2776 btab[last_btab].lastpar = last_tab; /* no parms */
2782 #line 834 "bapascal.y"
2785 in_mon_decl = 0; /* optional declarations are over */
2786 in_mon_init = 1; /* could have some init code */
2792 #line 841 "bapascal.y"
2795 tab[mtab[mon]].adr = lc;
2796 process_var_inits(level);
2803 #line 853 "bapascal.y"
2806 if (in_mon_init) { /* beginning of the mon init code */
2807 tab[mtab[mon]].adr = lc;
2808 process_var_inits(level);
2809 @@ -2055,65 +2315,80 @@
2816 #line 868 "bapascal.y"
2823 #line 870 "bapascal.y"
2830 #line 879 "bapascal.y"
2831 -{ code[yyvsp[-1]].y = yyvsp[0]; }
2832 + { code[yyvsp[-1]].y = yyvsp[0]; }
2837 #line 881 "bapascal.y"
2838 -{ code[yyvsp[-3]].y = yyvsp[-1]; code[yyvsp[-2]].y = lc; }
2839 + { code[yyvsp[-3]].y = yyvsp[-1]; code[yyvsp[-2]].y = lc; }
2844 #line 883 "bapascal.y"
2845 -{ emit1(JUMP,yyvsp[-3]); code[yyvsp[-2]].y = lc; }
2846 + { emit1(JUMP,yyvsp[-3]); code[yyvsp[-2]].y = lc; }
2851 #line 885 "bapascal.y"
2852 -{ gen_exprval(yyvsp[0]); emit1(JZER,yyvsp[-3]); free_expr(yyvsp[0]); }
2853 + { gen_exprval(yyvsp[0]); emit1(JZER,yyvsp[-3]); free_expr(yyvsp[0]); }
2858 #line 887 "bapascal.y"
2859 -{ emit1(ENDFOR,1+yyvsp[-1]); code[yyvsp[-1]].y = lc; }
2860 + { emit1(ENDFOR,1+yyvsp[-1]); code[yyvsp[-1]].y = lc; }
2865 #line 889 "bapascal.y"
2866 -{ if (level == 1) emit(COEND); in_cobegin = 0; }
2867 + { if (level == 1) emit(COEND); in_cobegin = 0; }
2872 #line 893 "bapascal.y"
2873 -{ gen_exprval(yyvsp[0]); yyval = lc; emit(JZER); free_expr(yyvsp[0]); }
2874 + { gen_exprval(yyvsp[0]); yyval = lc; emit(JZER); free_expr(yyvsp[0]); }
2879 #line 897 "bapascal.y"
2886 #line 901 "bapascal.y"
2887 -{ emit(JUMP); yyval = lc; }
2888 + { emit(JUMP); yyval = lc; }
2893 #line 905 "bapascal.y"
2900 #line 909 "bapascal.y"
2901 -{ gen_exprval(yyvsp[0]); free_expr(yyvsp[0]); yyval = lc; emit(JZER);}
2902 + { gen_exprval(yyvsp[0]); free_expr(yyvsp[0]); yyval = lc; emit(JZER);}
2907 #line 913 "bapascal.y"
2914 #line 917 "bapascal.y"
2918 if (tab[yyvsp[0]].obj != variable)
2919 yyerror("FOR loop index must be a VARIABLE");
2920 @@ -2125,9 +2400,10 @@
2921 yyerror("FOR loop index must be of type INTEGER, BOOLEAN, or CHAR");
2927 #line 931 "bapascal.y"
2930 if (expr[yyvsp[-3]].typ != expr[yyvsp[-1]].typ)
2931 yyerror("Type mismatch in FOR loop limits");
2932 gen_exprval(yyvsp[-1]);
2933 @@ -2135,18 +2411,20 @@
2934 free_expr(yyvsp[-3]); free_expr(yyvsp[-1]);
2940 #line 941 "bapascal.y"
2943 if ((tab[yyvsp[-2]].typ != expr[yyvsp[0]].typ)&&(tab[yyvsp[-2]].typ != notyp))
2944 yyerror("Type mismatch in FOR loop limits");
2945 gen_exprval(yyvsp[0]);
2946 yyval = yyvsp[0]; /* pass expr index back to previous rule for type chk*/
2952 #line 950 "bapascal.y"
2956 yyerror("COBEGIN-COEND block allowed only in main program");
2957 else if (in_cobegin)
2958 @@ -2156,9 +2434,10 @@
2965 #line 962 "bapascal.y"
2968 gen_exprval(yyvsp[0]);
2969 if (tab[yyvsp[-1]].typ == expr[yyvsp[0]].typ) {
2970 if ((tab[yyvsp[-1]].typ == sems)||(tab[yyvsp[-1]].typ == bsems)||
2971 @@ -2174,9 +2453,10 @@
2972 free_expr(yyvsp[0]);
2978 #line 978 "bapascal.y"
2981 gen_exprval(yyvsp[0]);
2982 if (expr[yyvsp[-2]].typ == expr[yyvsp[0]].typ) {
2983 if ((expr[yyvsp[-2]].typ == sems)||(expr[yyvsp[-2]].typ == bsems)||
2984 @@ -2192,9 +2472,10 @@
2985 free_expr(yyvsp[-2]); free_expr(yyvsp[0]);
2991 #line 996 "bapascal.y"
2994 switch (tab[yyvsp[-1]].obj) {
2997 @@ -2217,9 +2498,10 @@
3004 #line 1021 "bapascal.y"
3007 if ((tab[yyvsp[-2]].obj == procedure)||
3008 (tab[yyvsp[-2]].obj == ext_procedure)) {
3009 if (tab[yyvsp[-2]].lev == -1) { /* std proc unfinished business */
3010 @@ -2253,9 +2535,10 @@
3017 #line 1065 "bapascal.y"
3020 parmct = ++pfstack[toppfs].pct;
3021 if (tab[last_pf].lev == -1)
3022 stdproc_parm(last_pf,yyvsp[0],parmct);
3023 @@ -2264,28 +2547,27 @@
3024 free_expr(yyvsp[0]);
3030 #line 1074 "bapascal.y"
3031 -{ int tmp = store_string(laststring,&stab_size);
3032 + { int tmp = store_string(laststring,&stab_size);
3033 if ((tab[last_pf].lev == -1)&&
3034 ((tab[last_pf].adr == SP_WRITE)||
3035 (tab[last_pf].adr == SP_WRITELN))){
3036 emit1(WRITE_RAWSTRING,tmp);
3038 - else if (first_stringerr){
3039 - yyerror("RAW STRING parameter not allowed");
3040 - first_stringerr = 0;
3046 -#line 1089 "bapascal.y"
3047 -{ yyval = last_pfv = yyvsp[0]; }
3050 +#line 1085 "bapascal.y"
3051 + { yyval = last_pfv = yyvsp[0]; }
3054 -#line 1093 "bapascal.y"
3058 +#line 1089 "bapascal.y"
3060 if ((tab[last_pfv].obj == procedure)||
3061 (tab[last_pfv].obj == ext_procedure)){
3062 if ((++toppfs) > 0){
3063 @@ -2296,7 +2578,7 @@
3065 pfstack[toppfs].tix = last_pf = last_pfv;
3066 pfstack[toppfs].pct = parmct = 0;
3067 - first_stringerr = first_parmcterr = 1;
3068 + first_parmcterr = 1;
3069 if (tab[last_pf].lev != -1){ /* regular proc call */
3070 if ((tab[last_pf].mon)&&(tab[prt].mon)&&
3071 (tab[last_pf].mon != tab[prt].mon))
3072 @@ -2310,9 +2592,10 @@
3077 -#line 1127 "bapascal.y"
3081 +#line 1123 "bapascal.y"
3084 expr[yyval].obj = function;
3085 expr[yyval].typ = ints;
3086 @@ -2337,13 +2620,15 @@
3087 free_expr(yyvsp[-3]); free_expr(yyvsp[-1]);
3091 -#line 1154 "bapascal.y"
3092 -{ yyval = yyvsp[0]; }
3095 -#line 1156 "bapascal.y"
3099 +#line 1150 "bapascal.y"
3100 + { yyval = yyvsp[0]; }
3104 +#line 1152 "bapascal.y"
3106 if (expr[yyvsp[0]].typ == strings) {
3107 /* left parm is a string. If it's not an array elt, */
3108 /* put the address of the string n the stack */
3109 @@ -2355,9 +2640,10 @@
3114 -#line 1170 "bapascal.y"
3118 +#line 1166 "bapascal.y"
3120 if (expr[yyvsp[0]].typ == rawstrings) /* raw str message */
3121 emit1(BROADCAST_RAWSTRING,expr[yyvsp[0]].adr);
3122 else if (expr[yyvsp[0]].typ == strings) /* msg is a string var */
3123 @@ -2369,9 +2655,10 @@
3124 free_expr(yyvsp[0]);
3128 -#line 1184 "bapascal.y"
3132 +#line 1180 "bapascal.y"
3134 if (expr[yyvsp[-1]].typ != strings)
3135 yyerror("left parameter is not of type 'string'");
3136 yyval = NO_EXPR; /* for free_expr() call up the parse tree */
3137 @@ -2382,9 +2669,10 @@
3138 free_expr(yyvsp[-1]); free_expr(yyvsp[0]);
3142 -#line 1197 "bapascal.y"
3146 +#line 1193 "bapascal.y"
3148 if (expr[yyvsp[-1]].typ != strings) {
3149 yyerror("right parameter is not of type 'string'");
3151 @@ -2396,13 +2684,15 @@
3156 -#line 1209 "bapascal.y"
3157 -{ yyval = yyvsp[-1]; }
3160 +#line 1205 "bapascal.y"
3161 + { yyval = yyvsp[-1]; }
3164 -#line 1213 "bapascal.y"
3168 +#line 1209 "bapascal.y"
3171 expr[yyval].obj = variable;
3172 expr[yyval].typ = rawstrings;
3173 @@ -2412,9 +2702,10 @@
3174 expr[yyval].tix = -1;
3178 -#line 1226 "bapascal.y"
3182 +#line 1222 "bapascal.y"
3184 if (expr[yyvsp[-1]].typ != strings)
3185 yyerror("left parameter is not of type 'string'");
3186 yyval = NO_EXPR; /* for free_expr() call up the parse tree */
3187 @@ -2425,17 +2716,19 @@
3188 free_expr(yyvsp[-1]); free_expr(yyvsp[0]);
3192 -#line 1239 "bapascal.y"
3196 +#line 1235 "bapascal.y"
3198 /* push the parm count for interp's SPRINTF_OP to use */
3199 emit1(PUSH_LIT,sprintf_cnt);
3200 emit1(SPRINTF_OP,yyvsp[-3]);
3204 -#line 1247 "bapascal.y"
3208 +#line 1243 "bapascal.y"
3210 if (expr[yyvsp[-2]].typ != strings)
3211 yyerror("Leftmost sprintf parameter must be of type 'string'");
3212 yyval = expr[yyvsp[0]].adr; /* pass raw string index up the tree */
3213 @@ -2444,9 +2737,10 @@
3218 -#line 1258 "bapascal.y"
3222 +#line 1254 "bapascal.y"
3224 if ((expr[yyvsp[0]].typ != ints)&&(expr[yyvsp[0]].typ != strings))
3226 "sprintf parameter must be either of type 'int' or type 'string'");
3227 @@ -2458,9 +2752,10 @@
3228 free_expr(yyvsp[0]);
3232 -#line 1270 "bapascal.y"
3236 +#line 1266 "bapascal.y"
3238 if ((expr[yyvsp[0]].typ != ints)&&(expr[yyvsp[0]].typ != strings))
3240 "sprintf parameter must be either of type 'int' or type 'string'");
3241 @@ -2472,9 +2767,10 @@
3242 free_expr(yyvsp[0]);
3246 -#line 1285 "bapascal.y"
3250 +#line 1281 "bapascal.y"
3252 gen_exprval(yyvsp[0]);
3253 if (expr[yyvsp[-2]].typ == expr[yyvsp[0]].typ){
3254 if ((expr[yyvsp[-2]].typ == ints)||(expr[yyvsp[-2]].typ == bools)||
3255 @@ -2489,33 +2785,40 @@
3256 free_expr(yyvsp[0]);
3262 +#line 1297 "bapascal.y"
3263 + { yyval = TEST_EQ; }
3267 +#line 1298 "bapascal.y"
3268 + { yyval = TEST_LT; }
3272 +#line 1299 "bapascal.y"
3273 + { yyval = TEST_GT; }
3277 +#line 1300 "bapascal.y"
3278 + { yyval = TEST_LE; }
3282 #line 1301 "bapascal.y"
3283 -{ yyval = TEST_EQ; }
3284 + { yyval = TEST_GE; }
3289 #line 1302 "bapascal.y"
3290 -{ yyval = TEST_LT; }
3291 + { yyval = TEST_NE; }
3294 -#line 1303 "bapascal.y"
3295 -{ yyval = TEST_GT; }
3298 -#line 1304 "bapascal.y"
3299 -{ yyval = TEST_LE; }
3302 -#line 1305 "bapascal.y"
3303 -{ yyval = TEST_GE; }
3306 -#line 1306 "bapascal.y"
3307 -{ yyval = TEST_NE; }
3310 -#line 1311 "bapascal.y"
3314 +#line 1307 "bapascal.y"
3318 if ((expr[yyval].typ != ints)&&(expr[yyval].typ != notyp)){
3319 @@ -2524,9 +2827,10 @@
3324 -#line 1320 "bapascal.y"
3328 +#line 1316 "bapascal.y"
3332 if ((expr[yyval].typ != ints)&&(expr[yyval].typ != notyp)){
3333 @@ -2537,9 +2841,10 @@
3338 -#line 1331 "bapascal.y"
3342 +#line 1327 "bapascal.y"
3344 gen_exprval(yyvsp[0]);
3345 switch (yyvsp[-1]) {
3347 @@ -2560,25 +2865,30 @@
3348 free_expr(yyvsp[0]);
3354 +#line 1350 "bapascal.y"
3355 + { gen_exprval(yyvsp[0]); }
3359 +#line 1353 "bapascal.y"
3360 + { yyval = DO_ADD; }
3364 #line 1354 "bapascal.y"
3365 -{ gen_exprval(yyvsp[0]); }
3366 + { yyval = DO_SUB; }
3369 -#line 1357 "bapascal.y"
3370 -{ yyval = DO_ADD; }
3373 -#line 1358 "bapascal.y"
3374 -{ yyval = DO_SUB; }
3377 -#line 1359 "bapascal.y"
3381 +#line 1355 "bapascal.y"
3382 + { yyval = DO_OR; }
3385 -#line 1364 "bapascal.y"
3389 +#line 1360 "bapascal.y"
3391 gen_exprval(yyvsp[0]);
3394 @@ -2603,29 +2913,35 @@
3395 free_expr(yyvsp[0]);
3401 +#line 1387 "bapascal.y"
3402 + { gen_exprval(yyvsp[0]); }
3406 +#line 1390 "bapascal.y"
3407 + { yyval = DO_MUL; }
3411 #line 1391 "bapascal.y"
3412 -{ gen_exprval(yyvsp[0]); }
3413 + { yyval = DO_DIV; }
3416 -#line 1394 "bapascal.y"
3417 -{ yyval = DO_MUL; }
3420 -#line 1395 "bapascal.y"
3421 -{ yyval = DO_DIV; }
3424 -#line 1396 "bapascal.y"
3425 -{ yyval = DO_MOD; }
3428 -#line 1397 "bapascal.y"
3429 -{ yyval = DO_AND; }
3432 +#line 1392 "bapascal.y"
3433 + { yyval = DO_MOD; }
3436 -#line 1402 "bapascal.y"
3440 +#line 1393 "bapascal.y"
3441 + { yyval = DO_AND; }
3445 +#line 1398 "bapascal.y"
3448 expr[yyval].obj = constant;
3449 expr[yyval].adr = yyvsp[0];
3450 @@ -2633,9 +2949,10 @@
3451 expr[yyval].lev = level;
3455 -#line 1410 "bapascal.y"
3459 +#line 1406 "bapascal.y"
3462 expr[yyval].obj = constant;
3463 expr[yyval].adr = laststring[0];
3464 @@ -2643,13 +2960,15 @@
3465 expr[yyval].lev = level;
3469 -#line 1417 "bapascal.y"
3470 -{ yyval = yyvsp[-1];}
3473 +#line 1413 "bapascal.y"
3474 + { yyval = yyvsp[-1];}
3477 -#line 1419 "bapascal.y"
3481 +#line 1415 "bapascal.y"
3485 if (expr[yyval].typ == bools)
3486 @@ -2660,9 +2979,10 @@
3491 -#line 1432 "bapascal.y"
3495 +#line 1428 "bapascal.y"
3498 expr[yyval].obj = tab[yyvsp[-2]].obj;
3499 expr[yyval].typ = tab[yyvsp[-2]].typ;
3500 @@ -2712,9 +3032,10 @@
3505 -#line 1487 "bapascal.y"
3509 +#line 1483 "bapascal.y"
3511 if ((tab[last_pfv].obj == function)||
3512 (tab[last_pfv].obj == ext_function)) {
3513 if ((++toppfs) == MAXPFNEST)
3514 @@ -2722,7 +3043,7 @@
3515 else{ /* legal func call */
3516 pfstack[toppfs].tix = last_pf = last_pfv;
3517 pfstack[toppfs].pct = parmct = 0;
3518 - first_stringerr = first_parmcterr = 1;
3519 + first_parmcterr = 1;
3520 if (tab[last_pf].lev != -1){ /* regular proc call */
3521 if ((tab[last_pf].mon)&&(tab[prt].mon)&&
3522 (tab[last_pf].mon != tab[prt].mon))
3523 @@ -2733,9 +3054,10 @@
3528 -#line 1514 "bapascal.y"
3532 +#line 1510 "bapascal.y"
3534 if (expr[yyvsp[-1]].typ != strings)
3535 yyerror("left parameter is not of type 'string'");
3537 @@ -2752,9 +3074,10 @@
3538 free_expr(yyvsp[0]);
3542 -#line 1533 "bapascal.y"
3546 +#line 1529 "bapascal.y"
3549 expr[yyval].obj = function;
3550 expr[yyval].typ = ints;
3551 @@ -2771,9 +3094,10 @@
3552 free_expr(yyvsp[0]);
3556 -#line 1552 "bapascal.y"
3560 +#line 1548 "bapascal.y"
3562 if (expr[yyvsp[-1]].typ == strings) {
3563 if (!expr[yyvsp[-1]].arelt)
3564 /* addr of array ref is already on the stack */
3565 @@ -2784,9 +3108,10 @@
3566 /* parent rule will free_expr($2) */
3570 -#line 1563 "bapascal.y"
3574 +#line 1559 "bapascal.y"
3577 expr[yyval].obj = variable;
3578 expr[yyval].typ = rawstrings;
3579 @@ -2796,9 +3121,10 @@
3580 expr[yyval].tix = -1;
3584 -#line 1575 "bapascal.y"
3588 +#line 1571 "bapascal.y"
3590 if (expr[yyvsp[-1]].typ != strings)
3591 yyerror("Left parameter must be of type 'string'");
3593 @@ -2812,9 +3138,10 @@
3594 expr[yyval].adr = expr[yyval].lev = -1;
3598 -#line 1589 "bapascal.y"
3602 +#line 1585 "bapascal.y"
3604 if (expr[yyvsp[-3]].typ != strings)
3605 yyerror("Left parameter must be of type 'string'");
3606 /* implements receive(string,int&) call */
3607 @@ -2837,9 +3164,10 @@
3608 expr[yyval].adr = expr[yyval].lev = -1;
3612 -#line 1614 "bapascal.y"
3616 +#line 1610 "bapascal.y"
3619 expr[yyval].obj = function;
3620 expr[yyval].typ = ints;
3621 @@ -2852,9 +3180,10 @@
3622 emit1(SSCANF_OP,yyvsp[-3]);
3626 -#line 1629 "bapascal.y"
3630 +#line 1625 "bapascal.y"
3632 if (expr[yyvsp[-2]].typ != strings)
3633 yyerror("Leftmost sscanf parameter must be of type 'string'");
3634 yyval = expr[yyvsp[0]].adr; /* pass rawstring index up the tree */
3635 @@ -2863,9 +3192,10 @@
3640 -#line 1640 "bapascal.y"
3644 +#line 1636 "bapascal.y"
3646 if ((expr[yyvsp[0]].typ != ints)&&(expr[yyvsp[0]].typ != strings))
3648 "sscanf parameter must be either of type 'int' or type 'string'");
3649 @@ -2874,9 +3204,10 @@
3650 free_expr(yyvsp[0]);
3654 -#line 1649 "bapascal.y"
3658 +#line 1645 "bapascal.y"
3660 if ((expr[yyvsp[0]].typ != ints)&&(expr[yyvsp[0]].typ != strings))
3662 "sscanf parameter must be either of type 'int' or type 'string'");
3663 @@ -2885,9 +3216,10 @@
3664 free_expr(yyvsp[0]);
3668 -#line 1660 "bapascal.y"
3672 +#line 1656 "bapascal.y"
3674 expr[yyvsp[-3]].ref = sizeof(int)*atab[last_aref].elsize;
3675 expr[yyvsp[-3]].arelt = 1;
3676 expr[yyvsp[-3]].typ = last_eltyp;
3677 @@ -2898,9 +3230,10 @@
3682 -#line 1673 "bapascal.y"
3686 +#line 1669 "bapascal.y"
3688 if (tab[yyvsp[0]].typ != arrays) {
3689 sprintf(pbuf,"'%s' is not of type ARRAY",tab[yyvsp[0]].name);
3691 @@ -2929,9 +3262,10 @@
3692 expr[yyval].normal = tab[yyvsp[0]].normal;
3696 -#line 1704 "bapascal.y"
3700 +#line 1700 "bapascal.y"
3702 gen_exprval(yyvsp[0]);
3703 last_aref = arstack[topars].aref;
3704 last_eltyp = arstack[topars].eltyp;
3705 @@ -2941,9 +3275,10 @@
3706 free_expr(yyvsp[0]);
3710 -#line 1714 "bapascal.y"
3714 +#line 1710 "bapascal.y"
3716 gen_exprval(yyvsp[0]);
3717 last_aref = arstack[topars].aref;
3718 last_eltyp = arstack[topars].eltyp;
3719 @@ -2953,47 +3288,39 @@
3720 free_expr(yyvsp[0]);
3724 -#line 1726 "bapascal.y"
3728 +#line 1722 "bapascal.y"
3730 expr[yyvsp[-1]].typ = ints;
3735 -#line 1733 "bapascal.y"
3736 -{ yyval = loc(lastident,level); }
3739 +#line 1729 "bapascal.y"
3740 + { yyval = loc(lastident,level); }
3743 -#line 1737 "bapascal.y"
3744 -{ yyval = enter(lastident,constant,level,level); }
3747 +#line 1733 "bapascal.y"
3748 + { yyval = enter(lastident,constant,level,level); }
3752 -#line 705 "/usr/share/bison/bison.simple"
3756 +/* Line 991 of yacc.c. */
3757 +#line 3314 "y.tab.c"
3768 - short *yyssp1 = yyss - 1;
3769 - YYFPRINTF (stderr, "state stack now");
3770 - while (yyssp1 != yyssp)
3771 - YYFPRINTF (stderr, " %d", *++yyssp1);
3772 - YYFPRINTF (stderr, "\n");
3776 + YY_STACK_PRINT (yyss, yyssp);
3784 /* Now `shift' the result of the reduction. Determine what state
3785 that goes to, based on the state we popped back to and the rule
3786 @@ -3001,11 +3328,11 @@
3790 - yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3791 - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3792 + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3793 + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3794 yystate = yytable[yystate];
3796 - yystate = yydefgoto[yyn - YYNTBASE];
3797 + yystate = yydefgoto[yyn - YYNTOKENS];
3801 @@ -3018,13 +3345,13 @@
3806 -#ifdef YYERROR_VERBOSE
3807 +#if YYERROR_VERBOSE
3808 yyn = yypact[yystate];
3810 - if (yyn > YYFLAG && yyn < YYLAST)
3811 + if (YYPACT_NINF < yyn && yyn < YYLAST)
3813 YYSIZE_T yysize = 0;
3814 + int yytype = YYTRANSLATE (yychar);
3818 @@ -3033,15 +3360,15 @@
3820 for (yyx = yyn < 0 ? -yyn : 0;
3821 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
3822 - if (yycheck[yyx + yyn] == yyx)
3823 + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3824 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
3825 - yysize += yystrlen ("parse error, unexpected ") + 1;
3826 - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
3827 + yysize += yystrlen ("syntax error, unexpected ") + 1;
3828 + yysize += yystrlen (yytname[yytype]);
3829 yymsg = (char *) YYSTACK_ALLOC (yysize);
3832 - char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
3833 - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
3834 + char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
3835 + yyp = yystpcpy (yyp, yytname[yytype]);
3839 @@ -3049,7 +3376,7 @@
3840 for (yyx = yyn < 0 ? -yyn : 0;
3841 yyx < (int) (sizeof (yytname) / sizeof (char *));
3843 - if (yycheck[yyx + yyn] == yyx)
3844 + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3846 const char *yyq = ! yycount ? ", expecting " : " or ";
3847 yyp = yystpcpy (yyp, yyq);
3848 @@ -3061,102 +3388,93 @@
3849 YYSTACK_FREE (yymsg);
3852 - yyerror ("parse error; also virtual memory exhausted");
3853 + yyerror ("syntax error; also virtual memory exhausted");
3856 -#endif /* defined (YYERROR_VERBOSE) */
3857 - yyerror ("parse error");
3858 +#endif /* YYERROR_VERBOSE */
3859 + yyerror ("syntax error");
3864 -/*--------------------------------------------------.
3865 -| yyerrlab1 -- error raised explicitly by an action |
3866 -`--------------------------------------------------*/
3869 if (yyerrstatus == 3)
3871 /* If just tried and failed to reuse lookahead token after an
3872 error, discard it. */
3874 - /* return failure if at end of input */
3875 + /* Return failure if at end of input. */
3876 if (yychar == YYEOF)
3878 - YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3879 - yychar, yytname[yychar1]));
3881 + /* Pop the error token. */
3883 + /* Pop the rest of the stack. */
3884 + while (yyss < yyssp)
3886 + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
3887 + yydestruct (yystos[*yyssp], yyvsp);
3893 + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
3894 + yydestruct (yytoken, &yylval);
3899 /* Else will try to reuse lookahead token after shifting the error
3903 - yyerrstatus = 3; /* Each real token shifted decrements this */
3906 +/*----------------------------------------------------.
3907 +| yyerrlab1 -- error raised explicitly by an action. |
3908 +`----------------------------------------------------*/
3911 + /* Suppress GCC warning that yyerrlab1 is unused when no action
3912 + invokes YYERROR. */
3913 +#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
3914 + && !defined __cplusplus
3915 + __attribute__ ((__unused__))
3918 -/*-------------------------------------------------------------------.
3919 -| yyerrdefault -- current state does not do anything special for the |
3921 -`-------------------------------------------------------------------*/
3924 - /* This is wrong; only states that explicitly want error tokens
3925 - should shift them. */
3927 - /* If its default is to accept any token, ok. Otherwise pop it. */
3928 - yyn = yydefact[yystate];
3935 /*---------------------------------------------------------------.
3936 -| yyerrpop -- pop the current state because it cannot handle the |
3938 +| yyerrlab2 -- pop states until the error token can be shifted. |
3939 `---------------------------------------------------------------*/
3941 - if (yyssp == yyss)
3944 - yystate = *--yyssp;
3949 + yyerrstatus = 3; /* Each real token shifted decrements this. */
3955 - short *yyssp1 = yyss - 1;
3956 - YYFPRINTF (stderr, "Error: state stack now");
3957 - while (yyssp1 != yyssp)
3958 - YYFPRINTF (stderr, " %d", *++yyssp1);
3959 - YYFPRINTF (stderr, "\n");
3962 + yyn = yypact[yystate];
3963 + if (yyn != YYPACT_NINF)
3966 + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3968 + yyn = yytable[yyn];
3978 - yyn = yypact[yystate];
3979 - if (yyn == YYFLAG)
3980 - goto yyerrdefault;
3981 + /* Pop the current state because it cannot handle the error token. */
3982 + if (yyssp == yyss)
3986 - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3987 - goto yyerrdefault;
3988 + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
3989 + yydestruct (yystos[yystate], yyvsp);
3991 + yystate = *--yyssp;
3993 - yyn = yytable[yyn];
3996 - if (yyn == YYFLAG)
4000 + YY_STACK_PRINT (yyss, yyssp);
4002 - else if (yyn == 0)
4007 @@ -3164,9 +3482,7 @@
4008 YYDPRINTF ((stderr, "Shifting error token, "));
4012 - *++yylsp = yylloc;
4018 @@ -3186,13 +3502,15 @@
4022 -/*---------------------------------------------.
4023 -| yyoverflowab -- parser overflow comes here. |
4024 -`---------------------------------------------*/
4026 +/*----------------------------------------------.
4027 +| yyoverflowlab -- parser overflow comes here. |
4028 +`----------------------------------------------*/
4030 yyerror ("parser stack overflow");
4037 @@ -3201,7 +3519,9 @@
4041 -#line 1741 "bapascal.y"
4044 +#line 1737 "bapascal.y"
4045 /*start of routines*/
4047 void process_var_inits(int levl)
4048 @@ -3237,6 +3557,9 @@
4052 + * Revision 2.17 2005/10/27 12:58:24 bynum
4053 + * remove first_stringerr, correct minor errors
4055 * Revision 2.16 2003/05/13 14:01:23 bynum
4056 * add boolean initializers, fix proc nesting
4058 @@ -3345,3 +3668,4 @@
4063 diff -ur bacisrc.old/pascomp/lex.c bacisrc/pascomp/lex.c
4064 --- bacisrc.old/pascomp/lex.c 2004-04-15 13:31:24.000000000 +0200
4065 +++ bacisrc/pascomp/lex.c 2005-10-27 15:02:05.000000000 +0200
4067 #define YY_FLEX_MINOR_VERSION 5
4071 -#include <unistd.h>
4075 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
4081 +#include <unistd.h>
4084 /* Use prototypes in function declarations. */
4085 #define YY_USE_PROTOS
4089 register yy_state_type yy_current_state;
4090 - register char *yy_cp = NULL, *yy_bp = NULL;
4091 + register char *yy_cp, *yy_bp;
4092 register int yy_act;
4094 #line 91 "bapascal.l"
4095 @@ -1600,7 +1600,6 @@
4096 #endif /* ifndef YY_NO_UNPUT */
4099 -#ifndef YY_NO_INPUT
4101 static int yyinput()
4103 @@ -1672,7 +1671,7 @@
4107 -#endif /* YY_NO_INPUT */
4110 #ifdef YY_USE_PROTOS
4111 void yyrestart( FILE *input_file )
4112 @@ -1783,6 +1782,11 @@
4116 +#ifndef YY_ALWAYS_INTERACTIVE
4117 +#ifndef YY_NEVER_INTERACTIVE
4118 +extern int isatty YY_PROTO(( int ));
4122 #ifdef YY_USE_PROTOS
4123 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
4124 @@ -2251,7 +2255,7 @@
4128 - return ((esc < 256) ? esc : 0x20);
4132 void get_string(char termch)
4133 @@ -2300,6 +2304,9 @@
4137 + * Revision 2.11 2005/10/27 12:56:33 bynum
4138 + * remove extraneous test in get_escape
4140 * Revision 2.10 2004/04/13 15:43:15 bynum
4141 * add \r case to get rid of errors when readin MS-DOS/WIN prepared source
4143 diff -ur bacisrc.old/pascomp/ytab.h bacisrc/pascomp/ytab.h
4144 --- bacisrc.old/pascomp/ytab.h 2004-04-15 13:31:24.000000000 +0200
4145 +++ bacisrc/pascomp/ytab.h 2005-10-27 15:02:05.000000000 +0200
4147 -#ifndef BISON_Y_TAB_H
4148 -# define BISON_Y_TAB_H
4149 +/* A Bison parser, made by GNU Bison 1.875. */
4152 -# define YYSTYPE int
4153 -# define YYSTYPE_IS_TRIVIAL 1
4155 -# define UNSIGNED_INT 257
4156 -# define STRING 258
4157 -# define RAWSTRING 259
4158 -# define STRINGCONCAT 260
4159 -# define STRINGCOMPARE 261
4160 -# define STRINGCOPY 262
4161 -# define STRINGLENGTH 263
4162 -# define SSCANF 264
4163 -# define SPRINTF 265
4164 -# define IDENTIFIER 266
4170 -# define BECOMES 272
4176 -# define DOTDOT 278
4182 -# define REPEAT 284
4188 -# define CBEGIN 290
4189 -# define SBEGIN 291
4196 -# define FUNCTION 298
4197 -# define MONITOR 299
4198 -# define PROCEDURE 300
4199 -# define PROGRAM 301
4200 -# define INCLUDE 302
4201 -# define ATOMIC 303
4202 -# define FNSTRING 304
4204 -# define RECEIVE 306
4205 -# define BROADCAST 307
4206 -# define EXTERNAL 308
4207 -# define LOWER_THAN_ELSE 309
4208 +/* Skeleton parser for Yacc-like parsing with Bison,
4209 + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
4211 + This program is free software; you can redistribute it and/or modify
4212 + it under the terms of the GNU General Public License as published by
4213 + the Free Software Foundation; either version 2, or (at your option)
4214 + any later version.
4216 + This program is distributed in the hope that it will be useful,
4217 + but WITHOUT ANY WARRANTY; without even the implied warranty of
4218 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4219 + GNU General Public License for more details.
4221 + You should have received a copy of the GNU General Public License
4222 + along with this program; if not, write to the Free Software
4223 + Foundation, Inc., 59 Temple Place - Suite 330,
4224 + Boston, MA 02111-1307, USA. */
4226 +/* As a special exception, when this file is copied by Bison into a
4227 + Bison output file, you may use that output file without restriction.
4228 + This special exception was added by the Free Software Foundation
4229 + in version 1.24 of Bison. */
4232 +#ifndef YYTOKENTYPE
4233 +# define YYTOKENTYPE
4234 + /* Put the tokens into the symbol table, so that GDB and other debuggers
4235 + know about them. */
4236 + enum yytokentype {
4237 + UNSIGNED_INT = 258,
4240 + STRINGCONCAT = 261,
4241 + STRINGCOMPARE = 262,
4243 + STRINGLENGTH = 264,
4289 + LOWER_THAN_ELSE = 310
4292 +#define UNSIGNED_INT 258
4294 +#define RAWSTRING 260
4295 +#define STRINGCONCAT 261
4296 +#define STRINGCOMPARE 262
4297 +#define STRINGCOPY 263
4298 +#define STRINGLENGTH 264
4300 +#define SPRINTF 266
4301 +#define IDENTIFIER 267
4307 +#define BECOMES 273
4333 +#define FUNCTION 299
4334 +#define MONITOR 300
4335 +#define PROCEDURE 301
4336 +#define PROGRAM 302
4337 +#define INCLUDE 303
4339 +#define FNSTRING 305
4341 +#define RECEIVE 307
4342 +#define BROADCAST 308
4343 +#define EXTERNAL 309
4344 +#define LOWER_THAN_ELSE 310
4349 +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
4350 +typedef int YYSTYPE;
4351 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */
4352 +# define YYSTYPE_IS_DECLARED 1
4353 +# define YYSTYPE_IS_TRIVIAL 1
4356 extern YYSTYPE yylval;
4358 -#endif /* not BISON_Y_TAB_H */