1 /* A Bison parser, made by GNU Bison 2.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
61 /* Substitute the variable and function names. */
62 #define yyparse __reginaparse
63 #define yylex __reginalex
64 #define yyerror __reginaerror
65 #define yylval __reginalval
66 #define yychar __reginachar
67 #define yydebug __reginadebug
68 #define yynerrs __reginanerrs
74 /* Put the tokens into the symbol table, so that GDB and other debuggers
122 ASSIGNMENTVARIABLE
= 303,
200 #define INTERPRET 272
210 #define PROCEDURE 282
220 #define OTHERWISE 292
231 #define ASSIGNMENTVARIABLE 303
237 #define SCIENTIFIC 309
238 #define ENGINEERING 310
240 #define CONCATENATE 312
246 #define DIFFERENT 318
247 #define EQUALEQUAL 319
248 #define NOTEQUALEQUAL 320
253 #define PLACEHOLDER 325
255 #define CONSYMBOL 327
256 #define SIMSYMBOL 328
257 #define EXFUNCNAME 329
258 #define INFUNCNAME 330
260 #define DOVARIABLE 332
261 #define HEXSTRING 333
268 #define BINSTRING 340
270 #define ENVIRONMENT 342
271 #define LOSTDIGITS 343
296 /* Copy the first part of user declarations. */
297 #line 1 "./yaccsrc.y"
300 * The Regina Rexx Interpreter
301 * Copyright (C) 1992-1994 Anders Christensen <anders@pvv.unit.no>
303 * This library is free software; you can redistribute it and/or
304 * modify it under the terms of the GNU Library General Public
305 * License as published by the Free Software Foundation; either
306 * version 2 of the License, or (at your option) any later version.
308 * This library is distributed in the hope that it will be useful,
309 * but WITHOUT ANY WARRANTY; without even the implied warranty of
310 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
311 * Library General Public License for more details.
313 * You should have received a copy of the GNU Library General Public
314 * License along with this library; if not, write to the Free
315 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
321 #if defined(HAVE_MALLOC_H)
325 #if defined(HAVE_ALLOCA_H)
334 #if defined(_MSC_VER) || defined(MAC)
335 # define __STDC__ 1 /* Hack to allow const since it is not defined */
338 #define YYSTYPE nodeptr
340 /* locals, they are protected by regina_parser (see lexsrc.l) */
341 static int tmplno
, /* lineno of current instruction */
342 tmpchr
, /* character position of current instruction */
343 level
, /* nested do/if/select depth */
344 start_parendepth
; /* see below at parendepth */
347 * parendepth regulates the action which happens detecting a comma or an
348 * empty expression. A negative values indicates an error; both a comma
349 * and an empty expression raise an error.
350 * We regulate the enumeration of arguments with this semantical flag.
351 * Look at "call subroutine args" and "function args". Function itself
352 * contains a parentheses pair, so starting with a depth of just allows
353 * the enumeration. subroutine starts with either 0 or 1. The latter one
354 * is allowed for the support request of "call subroutine(a,b,c)" which
355 * isn't allowed by ANSI but can be enabled for backward compatibility.
357 static int parendepth
;
359 static nodeptr current
, with
= NULL
;
361 static char *nullptr = NULL
; /* for C++ compilation */
363 typedef enum { IS_UNKNOWN
,
367 IS_COMP_SYMBOL
} node_type
;
369 typedef enum { REDUCE_CALL
,
372 REDUCE_SUBEXPR
} reduce_mode
;
374 static node_type
gettypeof( nodeptr thisptr
) ;
375 static void checkconst( nodeptr thisptr
) ;
376 static nodeptr
reduce_expr_list( nodeptr thisptr
, reduce_mode mode
);
377 static void transform( nodeptr thisptr
) ;
378 static nodeptr
create_head( const char *name
) ;
379 static nodeptr
makenode( int type
, int numb
, ... ) ;
380 static void checkdosyntax( cnodeptr thisptr
) ;
381 void newlabel( const tsd_t
*TSD
, internal_parser_type
*ipt
, nodeptr thisptr
) ;
382 static nodeptr
optgluelast( nodeptr p1
, nodeptr p2
);
383 static void move_labels( nodeptr front
, nodeptr end
, int level
);
385 #define IS_EXPRLIST(x) ( ( (x) != NULL ) \
386 && ( ( (x)->type == X_CEXPRLIST ) \
387 || ( (x)->type == X_EXPRLIST ) ) )
389 #define IS_FUNCTION(x) ( ( (x) != NULL ) \
390 && ( ( (x)->type == X_EX_FUNC ) \
391 || ( (x)->type == X_IN_FUNC ) ) )
393 #define AUTO_REDUCE(x,y) { if ( parendepth == 1 ) \
395 x = reduce_expr_list( x, REDUCE_EXPR ); \
396 /* detect "call s (a,b)<op>" and */ \
397 /* "call s ()<op>" */ \
398 if ( IS_EXPRLIST( x ) ) \
401 exiterror( ERR_INVALID_EXPRESSION, 1, y ); \
402 else if ( (x)->p[0] == NULL ) \
403 exiterror( ERR_UNEXPECTED_PARAN, 0 ); \
405 exiterror( ERR_UNEXPECTED_PARAN, 1 ); \
409 #line 149 "./yaccsrc.y"
418 /* Enabling traces. */
423 /* Enabling verbose error messages. */
424 #ifdef YYERROR_VERBOSE
425 # undef YYERROR_VERBOSE
426 # define YYERROR_VERBOSE 1
428 # define YYERROR_VERBOSE 0
431 /* Enabling the token table. */
432 #ifndef YYTOKEN_TABLE
433 # define YYTOKEN_TABLE 0
436 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
438 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
439 # define YYSTYPE_IS_DECLARED 1
440 # define YYSTYPE_IS_TRIVIAL 1
445 /* Copy the second part of user declarations. */
448 /* Line 216 of yacc.c. */
449 #line 455 "./yaccsrc.c"
456 typedef YYTYPE_UINT8 yytype_uint8
;
458 typedef unsigned char yytype_uint8
;
462 typedef YYTYPE_INT8 yytype_int8
;
463 #elif (defined __STDC__ || defined __C99__FUNC__ \
464 || defined __cplusplus || defined _MSC_VER)
465 typedef signed char yytype_int8
;
467 typedef short int yytype_int8
;
471 typedef YYTYPE_UINT16 yytype_uint16
;
473 typedef unsigned short int yytype_uint16
;
477 typedef YYTYPE_INT16 yytype_int16
;
479 typedef short int yytype_int16
;
483 # ifdef __SIZE_TYPE__
484 # define YYSIZE_T __SIZE_TYPE__
485 # elif defined size_t
486 # define YYSIZE_T size_t
487 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
488 || defined __cplusplus || defined _MSC_VER)
489 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
490 # define YYSIZE_T size_t
492 # define YYSIZE_T unsigned int
496 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
501 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
502 # define YY_(msgid) dgettext ("bison-runtime", msgid)
506 # define YY_(msgid) msgid
510 /* Suppress unused-variable warnings by "using" E. */
511 #if ! defined lint || defined __GNUC__
512 # define YYUSE(e) ((void) (e))
514 # define YYUSE(e) /* empty */
517 /* Identity function, used to suppress warnings about constant conditions. */
521 #if (defined __STDC__ || defined __C99__FUNC__ \
522 || defined __cplusplus || defined _MSC_VER)
535 #if ! defined yyoverflow || YYERROR_VERBOSE
537 /* The parser invokes alloca or malloc; define the necessary symbols. */
539 # ifdef YYSTACK_USE_ALLOCA
540 # if YYSTACK_USE_ALLOCA
542 # define YYSTACK_ALLOC __builtin_alloca
543 # elif defined __BUILTIN_VA_ARG_INCR
544 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
546 # define YYSTACK_ALLOC __alloca
547 # elif defined _MSC_VER
548 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
549 # define alloca _alloca
551 # define YYSTACK_ALLOC alloca
552 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
553 || defined __cplusplus || defined _MSC_VER)
554 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
563 # ifdef YYSTACK_ALLOC
564 /* Pacify GCC's `empty if-body' warning. */
565 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
566 # ifndef YYSTACK_ALLOC_MAXIMUM
567 /* The OS might guarantee only one guard page at the bottom of the stack,
568 and a page size can be as small as 4096 bytes. So we cannot safely
569 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
570 to allow for a few compiler-allocated temporary stack slots. */
571 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
574 # define YYSTACK_ALLOC YYMALLOC
575 # define YYSTACK_FREE YYFREE
576 # ifndef YYSTACK_ALLOC_MAXIMUM
577 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
579 # if (defined __cplusplus && ! defined _STDLIB_H \
580 && ! ((defined YYMALLOC || defined malloc) \
581 && (defined YYFREE || defined free)))
582 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
588 # define YYMALLOC malloc
589 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
590 || defined __cplusplus || defined _MSC_VER)
592 /* This came from malloc.h */
594 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
600 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
601 || defined __cplusplus || defined _MSC_VER)
603 /* This came from malloc.h */
605 void free (void *); /* INFRINGES ON USER NAME SPACE */
610 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
613 #if (! defined yyoverflow \
614 && (! defined __cplusplus \
615 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
617 /* A type that is properly aligned for any stack member. */
624 /* The size of the maximum gap between one aligned stack and the next. */
625 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
627 /* The size of an array large to enough to hold all stacks, each with
629 # define YYSTACK_BYTES(N) \
630 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
631 + YYSTACK_GAP_MAXIMUM)
633 /* Copy COUNT objects from FROM to TO. The source and destination do
636 # if defined __GNUC__ && 1 < __GNUC__
637 # define YYCOPY(To, From, Count) \
638 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
640 # define YYCOPY(To, From, Count) \
644 for (yyi = 0; yyi < (Count); yyi++) \
645 (To)[yyi] = (From)[yyi]; \
651 /* Relocate STACK from its old location to the new one. The
652 local variables YYSIZE and YYSTACKSIZE give the old and new number of
653 elements in the stack, and YYPTR gives the new location of the
654 stack. Advance YYPTR to a properly aligned location for the next
656 # define YYSTACK_RELOCATE(Stack) \
659 YYSIZE_T yynewbytes; \
660 YYCOPY (&yyptr->Stack, Stack, yysize); \
661 Stack = &yyptr->Stack; \
662 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
663 yyptr += yynewbytes / sizeof (*yyptr); \
669 /* YYFINAL -- State number of the termination state. */
671 /* YYLAST -- Last index in YYTABLE. */
674 /* YYNTOKENS -- Number of terminals. */
675 #define YYNTOKENS 120
676 /* YYNNTS -- Number of nonterminals. */
678 /* YYNRULES -- Number of rules. */
680 /* YYNRULES -- Number of states. */
681 #define YYNSTATES 611
683 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
685 #define YYMAXUTOK 363
687 #define YYTRANSLATE(YYX) \
688 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
690 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
691 static const yytype_uint8 yytranslate
[] =
693 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
694 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
695 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
696 2, 2, 2, 2, 2, 2, 2, 114, 107, 2,
697 117, 118, 112, 110, 119, 111, 2, 113, 2, 2,
698 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
699 2, 108, 2, 2, 2, 2, 2, 2, 2, 2,
700 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
701 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
702 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
703 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
704 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
705 2, 2, 2, 2, 106, 2, 2, 2, 2, 2,
706 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
707 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
708 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
709 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
710 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
711 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
712 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
713 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
714 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
715 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
716 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
717 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
718 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
719 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
720 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
721 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
722 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
723 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
724 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
725 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
726 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
727 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
728 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
733 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
735 static const yytype_uint16 yyprhs
[] =
737 0, 0, 3, 4, 7, 10, 12, 15, 17, 20,
738 23, 25, 27, 31, 33, 35, 39, 42, 45, 47,
739 50, 51, 53, 55, 56, 59, 62, 64, 66, 68,
740 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
741 90, 92, 94, 96, 98, 100, 102, 104, 106, 108,
742 110, 112, 114, 116, 118, 120, 122, 124, 126, 128,
743 130, 132, 134, 136, 138, 140, 142, 144, 146, 148,
744 150, 152, 154, 156, 158, 160, 162, 164, 166, 168,
745 170, 172, 173, 177, 181, 183, 184, 185, 189, 193,
746 199, 202, 203, 208, 209, 214, 218, 222, 227, 233,
747 238, 242, 247, 251, 253, 255, 257, 260, 262, 264,
748 267, 269, 273, 280, 288, 295, 301, 306, 309, 312,
749 315, 316, 318, 320, 322, 323, 326, 327, 330, 334,
750 337, 339, 341, 343, 345, 348, 351, 354, 357, 361,
751 364, 368, 370, 373, 377, 380, 384, 386, 389, 393,
752 396, 400, 402, 407, 411, 416, 420, 425, 429, 431,
753 433, 435, 438, 441, 444, 447, 449, 452, 455, 458,
754 461, 464, 467, 470, 473, 474, 478, 479, 483, 485,
755 486, 488, 490, 492, 494, 496, 500, 504, 508, 512,
756 516, 517, 521, 524, 528, 531, 534, 541, 551, 561,
757 568, 571, 576, 579, 582, 585, 588, 592, 594, 596,
758 598, 601, 605, 607, 609, 612, 616, 619, 624, 628,
759 631, 636, 640, 643, 647, 650, 652, 654, 657, 662,
760 666, 670, 673, 675, 678, 681, 683, 686, 689, 691,
761 695, 697, 699, 701, 703, 705, 707, 709, 712, 716,
762 719, 721, 724, 728, 733, 737, 740, 743, 746, 749,
763 752, 755, 759, 761, 767, 772, 777, 780, 784, 790,
764 793, 795, 797, 804, 812, 815, 818, 820, 822, 825,
765 829, 830, 834, 838, 841, 845, 849, 854, 860, 865,
766 869, 874, 878, 880, 882, 884, 887, 890, 892, 894,
767 896, 898, 900, 902, 904, 906, 908, 910, 912, 914,
768 918, 921, 925, 928, 930, 933, 935, 936, 940, 941,
769 946, 947, 952, 953, 958, 960, 961, 966, 968, 969,
770 974, 976, 977, 982, 984, 985, 990, 992, 993, 998,
771 1000, 1001, 1006, 1008, 1009, 1014, 1016, 1017, 1022, 1024,
772 1025, 1030, 1032, 1035, 1037, 1038, 1043, 1045, 1046, 1051,
773 1053, 1054, 1059, 1061, 1062, 1067, 1069, 1070, 1075, 1077,
774 1078, 1083, 1085, 1086, 1091, 1093, 1094, 1099, 1101, 1102,
775 1107, 1109, 1110, 1115, 1117, 1118, 1123, 1125, 1126, 1131,
776 1133, 1134, 1139, 1141, 1142, 1147, 1149, 1151, 1153, 1155,
777 1157, 1159, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1181,
778 1183, 1186, 1189, 1190, 1193, 1195, 1197, 1201, 1203, 1205,
779 1208, 1211, 1213, 1216, 1220, 1225, 1230, 1235, 1237, 1239,
780 1241, 1243, 1245, 1247, 1250, 1253, 1254, 1255, 1260, 1262,
781 1264, 1265, 1268, 1270, 1275, 1279, 1281, 1283
784 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
785 static const yytype_int16 yyrhs
[] =
787 121, 0, -1, -1, 122, 123, -1, 130, 124, -1,
788 130, -1, 124, 126, -1, 126, -1, 125, 132, -1,
789 132, 133, -1, 132, -1, 127, -1, 133, 176, 129,
790 -1, 125, -1, 133, -1, 129, 49, 131, -1, 49,
791 131, -1, 131, 129, -1, 131, -1, 131, 215, -1,
792 -1, 134, -1, 237, -1, -1, 133, 135, -1, 136,
793 129, -1, 210, -1, 211, -1, 212, -1, 164, -1,
794 174, -1, 168, -1, 169, -1, 177, -1, 207, -1,
795 209, -1, 213, -1, 214, -1, 217, -1, 218, -1,
796 219, -1, 221, -1, 222, -1, 226, -1, 227, -1,
797 228, -1, 229, -1, 231, -1, 230, -1, 233, -1,
798 239, -1, 247, -1, 208, -1, 249, -1, 5, -1,
799 6, -1, 12, -1, 13, -1, 16, -1, 18, -1,
800 32, -1, 33, -1, 3, -1, 4, -1, 36, -1,
801 17, -1, 76, -1, 19, -1, 20, -1, 86, -1,
802 21, -1, 27, -1, 29, -1, 30, -1, 31, -1,
803 34, -1, 38, -1, 35, -1, 37, -1, 45, -1,
804 47, -1, -1, 145, 165, 166, -1, 25, 251, 180,
805 -1, 182, -1, -1, -1, 1, 167, 180, -1, 179,
806 293, 180, -1, 117, 251, 118, 200, 180, -1, 146,
807 224, -1, -1, 137, 172, 170, 173, -1, -1, 137,
808 289, 171, 173, -1, 137, 243, 1, -1, 137, 244,
809 1, -1, 137, 243, 245, 1, -1, 137, 243, 245,
810 241, 1, -1, 137, 243, 245, 241, -1, 137, 243,
811 245, -1, 137, 244, 245, 1, -1, 137, 244, 245,
812 -1, 242, -1, 1, -1, 291, -1, 291, 118, -1,
813 251, -1, 46, -1, 175, 296, -1, 175, -1, 175,
814 296, 1, -1, 138, 178, 206, 129, 128, 176, -1,
815 204, 108, 251, 200, 205, 205, 205, -1, 204, 108,
816 251, 200, 205, 205, -1, 204, 108, 251, 200, 205,
817 -1, 204, 108, 251, 200, -1, 50, 200, -1, 50,
818 1, -1, 251, 200, -1, -1, 72, -1, 73, -1,
819 79, -1, -1, 181, 182, -1, -1, 26, 183, -1,
820 26, 183, 1, -1, 26, 200, -1, 184, -1, 185,
821 -1, 186, -1, 1, -1, 190, 187, -1, 191, 188,
822 -1, 192, 189, -1, 191, 200, -1, 191, 192, 200,
823 -1, 192, 200, -1, 192, 191, 200, -1, 200, -1,
824 190, 200, -1, 190, 192, 200, -1, 192, 200, -1,
825 192, 190, 200, -1, 200, -1, 190, 200, -1, 190,
826 191, 200, -1, 191, 200, -1, 191, 190, 200, -1,
827 200, -1, 200, 95, 200, 193, -1, 200, 95, 1,
828 -1, 200, 96, 200, 194, -1, 200, 96, 1, -1,
829 200, 41, 200, 194, -1, 200, 41, 1, -1, 195,
830 -1, 97, -1, 195, -1, 98, 195, -1, 98, 1,
831 -1, 99, 195, -1, 99, 1, -1, 97, -1, 100,
832 198, -1, 100, 1, -1, 101, 196, -1, 101, 1,
833 -1, 102, 198, -1, 102, 1, -1, 103, 198, -1,
834 103, 1, -1, -1, 197, 200, 202, -1, -1, 199,
835 200, 201, -1, 67, -1, -1, 202, -1, 203, -1,
836 295, -1, 289, -1, 77, -1, 7, 251, 200, -1,
837 9, 251, 200, -1, 8, 251, 200, -1, 10, 251,
838 200, -1, 11, 251, 200, -1, -1, 147, 294, 1,
839 -1, 147, 294, -1, 163, 294, 1, -1, 163, 294,
840 -1, 139, 293, -1, 140, 251, 130, 14, 130, 126,
841 -1, 140, 251, 130, 14, 130, 126, 15, 130, 126,
842 -1, 140, 251, 130, 14, 130, 126, 15, 130, 1,
843 -1, 140, 251, 130, 14, 130, 1, -1, 140, 129,
844 -1, 140, 251, 130, 1, -1, 133, 14, -1, 133,
845 15, -1, 148, 251, -1, 141, 296, -1, 141, 296,
846 1, -1, 141, -1, 216, -1, 149, -1, 142, 296,
847 -1, 142, 296, 1, -1, 142, -1, 150, -1, 150,
848 1, -1, 151, 51, 251, -1, 151, 51, -1, 151,
849 52, 220, 1, -1, 151, 52, 220, -1, 151, 52,
850 -1, 151, 52, 25, 251, -1, 151, 52, 1, -1,
851 151, 53, -1, 151, 53, 251, -1, 151, 1, -1,
852 54, -1, 55, -1, 152, 293, -1, 153, 223, 225,
853 224, -1, 153, 225, 224, -1, 153, 223, 1, -1,
854 153, 1, -1, 47, -1, 47, 105, -1, 105, 47,
855 -1, 104, -1, 104, 105, -1, 105, 104, -1, 105,
856 -1, 224, 119, 286, -1, 286, -1, 4, -1, 81,
857 -1, 22, -1, 80, -1, 29, -1, 23, -1, 24,
858 296, -1, 25, 293, 26, -1, 25, 1, -1, 154,
859 -1, 154, 1, -1, 154, 28, 1, -1, 154, 28,
860 294, 1, -1, 154, 28, 294, -1, 155, 286, -1,
861 156, 293, -1, 157, 293, -1, 143, 293, -1, 144,
862 293, -1, 46, 296, -1, 46, 296, 1, -1, 46,
863 -1, 158, 129, 234, 238, 232, -1, 158, 129, 46,
864 1, -1, 158, 129, 161, 1, -1, 158, 1, -1,
865 158, 129, 14, -1, 158, 129, 234, 161, 1, -1,
866 234, 235, -1, 235, -1, 1, -1, 160, 251, 130,
867 14, 130, 132, -1, 160, 251, 130, 14, 130, 132,
868 14, -1, 160, 251, -1, 160, 1, -1, 160, -1,
869 161, -1, 133, 236, -1, 161, 130, 128, -1, -1,
870 159, 25, 251, -1, 159, 240, 1, -1, 159, 240,
871 -1, 159, 243, 1, -1, 159, 244, 1, -1, 159,
872 243, 246, 1, -1, 159, 243, 246, 241, 1, -1,
873 159, 243, 246, 241, -1, 159, 243, 246, -1, 159,
874 244, 246, 1, -1, 159, 244, 246, -1, 242, -1,
875 79, -1, 1, -1, 83, 73, -1, 83, 1, -1,
876 72, -1, 73, -1, 39, -1, 40, -1, 41, -1,
877 43, -1, 71, -1, 84, -1, 245, -1, 44, -1,
878 42, -1, 88, -1, 162, 25, 251, -1, 162, 251,
879 -1, 162, 248, 1, -1, 162, 248, -1, 82, -1,
880 250, 293, -1, 48, -1, -1, 117, 252, 279, -1,
881 -1, 251, 110, 253, 251, -1, -1, 251, 111, 254,
882 251, -1, -1, 251, 112, 255, 251, -1, 112, -1,
883 -1, 251, 113, 256, 251, -1, 113, -1, -1, 251,
884 58, 257, 251, -1, 58, -1, -1, 251, 114, 258,
885 251, -1, 114, -1, -1, 251, 106, 259, 251, -1,
886 106, -1, -1, 251, 107, 260, 251, -1, 107, -1,
887 -1, 251, 69, 261, 251, -1, 69, -1, -1, 251,
888 68, 262, 251, -1, 68, -1, -1, 251, 67, 263,
889 251, -1, 67, -1, -1, 251, 57, 264, 251, -1,
890 57, -1, 56, 251, -1, 56, -1, -1, 251, 108,
891 265, 251, -1, 108, -1, -1, 251, 59, 266, 251,
892 -1, 59, -1, -1, 251, 61, 267, 251, -1, 61,
893 -1, -1, 251, 60, 268, 251, -1, 60, -1, -1,
894 251, 62, 269, 251, -1, 62, -1, -1, 251, 63,
895 270, 251, -1, 63, -1, -1, 251, 64, 271, 251,
896 -1, 64, -1, -1, 251, 65, 272, 251, -1, 65,
897 -1, -1, 251, 89, 273, 251, -1, 89, -1, -1,
898 251, 90, 274, 251, -1, 90, -1, -1, 251, 91,
899 275, 251, -1, 91, -1, -1, 251, 92, 276, 251,
900 -1, 92, -1, -1, 251, 93, 277, 251, -1, 93,
901 -1, -1, 251, 94, 278, 251, -1, 94, -1, 280,
902 -1, 72, -1, 78, -1, 85, -1, 79, -1, 281,
903 -1, 110, 251, -1, 111, 251, -1, 110, 1, -1,
904 111, 1, -1, 291, 118, -1, 291, 1, -1, 49,
905 -1, 73, -1, 285, 282, -1, 284, 282, -1, -1,
906 283, 279, -1, 75, -1, 74, -1, 290, 287, 286,
907 -1, 290, -1, 1, -1, 111, 288, -1, 110, 288,
908 -1, 288, -1, 108, 288, -1, 117, 280, 118, -1,
909 111, 117, 280, 118, -1, 110, 117, 280, 118, -1,
910 108, 117, 280, 118, -1, 289, -1, 66, -1, 72,
911 -1, 79, -1, 78, -1, 85, -1, 70, 290, -1,
912 280, 290, -1, -1, -1, 293, 119, 292, 291, -1,
913 293, -1, 251, -1, -1, 295, 294, -1, 295, -1,
914 117, 295, 118, 294, -1, 117, 295, 118, -1, 73,
918 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
919 static const yytype_uint16 yyrline
[] =
921 0, 159, 159, 159, 169, 172, 178, 180, 183, 185,
922 188, 189, 192, 197, 198, 201, 202, 205, 206, 209,
923 210, 213, 214, 217, 221, 224, 225, 226, 227, 230,
924 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
925 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
926 251, 252, 253, 254, 257, 261, 266, 270, 275, 279,
927 283, 287, 291, 295, 299, 303, 307, 311, 315, 319,
928 323, 327, 331, 335, 339, 343, 348, 352, 356, 360,
929 364, 368, 368, 372, 375, 376, 377, 377, 379, 383,
930 389, 395, 395, 400, 400, 406, 407, 408, 409, 410,
931 416, 421, 422, 428, 429, 432, 440, 443, 449, 455,
932 457, 458, 461, 482, 486, 490, 494, 497, 498, 499,
933 501, 504, 505, 506, 509, 509, 515, 518, 519, 520,
934 523, 524, 525, 526, 529, 533, 537, 541, 542, 543,
935 544, 545, 548, 549, 550, 551, 552, 555, 556, 557,
936 558, 559, 562, 563, 566, 567, 570, 571, 574, 575,
937 580, 581, 583, 584, 585, 586, 591, 599, 600, 613,
938 614, 618, 619, 623, 626, 626, 630, 630, 634, 635,
939 638, 639, 642, 650, 658, 661, 662, 663, 666, 667,
940 668, 671, 672, 676, 677, 681, 685, 693, 703, 705,
941 707, 708, 711, 714, 717, 722, 724, 725, 728, 736,
942 740, 742, 743, 746, 747, 750, 753, 754, 755, 758,
943 760, 762, 763, 764, 767, 770, 771, 774, 777, 783,
944 789, 790, 793, 795, 797, 799, 801, 803, 805, 809,
945 811, 814, 815, 816, 817, 818, 819, 820, 822, 823,
946 826, 827, 828, 829, 830, 834, 838, 842, 846, 850,
947 854, 855, 856, 859, 864, 865, 867, 868, 869, 873,
948 874, 875, 878, 884, 886, 887, 890, 891, 894, 897,
949 901, 907, 910, 911, 913, 914, 915, 916, 917, 923,
950 927, 928, 934, 935, 936, 939, 940, 943, 944, 947,
951 950, 953, 954, 955, 956, 959, 960, 961, 962, 965,
952 967, 969, 970, 974, 978, 994, 1001, 1001, 1034, 1034,
953 1037, 1037, 1040, 1040, 1043, 1044, 1044, 1047, 1048, 1048,
954 1051, 1052, 1052, 1055, 1056, 1056, 1059, 1060, 1060, 1063,
955 1064, 1064, 1067, 1068, 1068, 1071, 1072, 1072, 1075, 1076,
956 1076, 1079, 1080, 1082, 1083, 1083, 1087, 1088, 1088, 1092,
957 1093, 1093, 1097, 1098, 1098, 1102, 1103, 1103, 1107, 1108,
958 1108, 1112, 1113, 1113, 1116, 1117, 1117, 1120, 1121, 1121,
959 1124, 1125, 1125, 1128, 1129, 1129, 1132, 1133, 1133, 1136,
960 1137, 1137, 1140, 1141, 1141, 1144, 1145, 1146, 1148, 1152,
961 1156, 1158, 1159, 1161, 1163, 1164, 1167, 1168, 1169, 1172,
962 1176, 1178, 1182, 1182, 1189, 1192, 1195, 1196, 1197, 1200,
963 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1220, 1221,
964 1230, 1231, 1235, 1241, 1242, 1243, 1253, 1253, 1333, 1377,
965 1378, 1381, 1383, 1385, 1387, 1391, 1394, 1395
969 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
970 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
971 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
972 static const char *const yytname
[] =
974 "$end", "error", "$undefined", "ADDRESS", "ARG", "CALL", "DO", "TO",
975 "BY", "FOR", "WHILE", "UNTIL", "EXIT", "IF", "THEN", "ELSE", "ITERATE",
976 "INTERPRET", "LEAVE", "NOP", "NUMERIC", "PARSE", "EXTERNAL", "SOURCE",
977 "VAR", "VALUE", "WITH", "PROCEDURE", "EXPOSE", "PULL", "PUSH", "QUEUE",
978 "SAY", "RETURN", "SELECT", "WHEN", "DROP", "OTHERWISE", "SIGNAL", "ON",
979 "OFF", "ERROR", "SYNTAX", "HALT", "NOVALUE", "TRACE", "END", "UPPER",
980 "ASSIGNMENTVARIABLE", "STATSEP", "FOREVER", "DIGITS", "FORM", "FUZZ",
981 "SCIENTIFIC", "ENGINEERING", "NOT", "CONCATENATE", "MODULUS", "GTE",
982 "GT", "LTE", "LT", "DIFFERENT", "EQUALEQUAL", "NOTEQUALEQUAL", "OFFSET",
983 "SPACE", "EXP", "XOR", "PLACEHOLDER", "NOTREADY", "CONSYMBOL",
984 "SIMSYMBOL", "EXFUNCNAME", "INFUNCNAME", "LABEL", "DOVARIABLE",
985 "HEXSTRING", "STRING", "VERSION", "LINEIN", "WHATEVER", "NAME",
986 "FAILURE", "BINSTRING", "OPTIONS", "ENVIRONMENT", "LOSTDIGITS", "GTGT",
987 "LTLT", "NOTGTGT", "NOTLTLT", "GTGTE", "LTLTE", "INPUT", "OUTPUT",
988 "NORMAL", "APPEND", "REPLACE", "STREAM", "STEM", "LIFO", "FIFO", "LOWER",
989 "CASELESS", "'|'", "'&'", "'='", "CCAT", "'+'", "'-'", "'*'", "'/'",
990 "'%'", "UPLUS", "UMINUS", "'('", "')'", "','", "$accept", "start", "@1",
991 "prog", "stats", "xstats", "ystatement", "lonely_end", "nxstats", "ncl",
992 "nlncl", "optLabels", "statement", "gruff", "mttstatement",
993 "mtstatement", "nclstatement", "call", "do", "exit", "if", "iterate",
994 "leave", "say", "return", "address", "arg", "drop", "interpret", "label",
995 "nop", "numeric", "options", "parse", "proc", "pull", "push", "queue",
996 "select", "signal", "when", "otherwise", "trace", "upper",
997 "address_stat", "@2", "address_stat2", "@3", "arg_stat", "call_stat",
998 "@4", "@5", "call_name", "call_args", "expr_stat", "end_stat", "end",
999 "do_stat", "repetitor", "nvir", "naddr_with", "@6", "addr_with",
1000 "connection", "inputstmts", "outputstmts", "errorstmts", "adeo", "adei",
1001 "adio", "inputstmt", "outputstmt", "errorstmt", "resourcei", "resourceo",
1002 "resources", "nsimsymb", "@7", "nnvir", "@8", "nspace", "addrAll",
1003 "addrSim", "addrString", "dovar", "tobyfor", "conditional", "drop_stat",
1004 "upper_stat", "exit_stat", "if_stat", "unexp_then", "unexp_else",
1005 "ipret_stat", "iterate_stat", "label_stat", "labelname", "leave_stat",
1006 "nop_stat", "numeric_stat", "form_expr", "options_stat", "parse_stat",
1007 "parse_flags", "templs", "parse_param", "proc_stat", "pull_stat",
1008 "push_stat", "queue_stat", "say_stat", "return_stat", "sel_end",
1009 "select_stat", "when_stats", "when_stat", "when_or_other",
1010 "ex_when_stat", "otherwise_stat", "signal_stat", "signal_name",
1011 "namespec", "asymbol", "on", "off", "c_action", "s_action", "trace_stat",
1012 "whatever", "assignment", "ass_part", "expr", "@9", "@10", "@11", "@12",
1013 "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", "@21", "@22",
1014 "@23", "@24", "@25", "@26", "@27", "@28", "@29", "@30", "@31", "@32",
1015 "@33", "@34", "@35", "exprs_sub", "symbtree", "function", "func_args",
1016 "@36", "intfunc", "extfunc", "template", "solid", "offset", "string",
1017 "pv", "exprs", "@37", "nexpr", "anyvars", "xsimsymb", "simsymb", 0
1022 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1024 static const yytype_uint16 yytoknum
[] =
1026 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1027 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1028 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1029 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1030 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1031 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1032 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1033 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1034 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1035 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1036 355, 356, 357, 358, 359, 360, 124, 38, 61, 361,
1037 43, 45, 42, 47, 37, 362, 363, 40, 41, 44
1041 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1042 static const yytype_uint16 yyr1
[] =
1044 0, 120, 122, 121, 123, 123, 124, 124, 125, 125,
1045 126, 126, 127, 128, 128, 129, 129, 130, 130, 131,
1046 131, 132, 132, 133, 134, 135, 135, 135, 135, 136,
1047 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1048 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
1049 136, 136, 136, 136, 137, 138, 139, 140, 141, 142,
1050 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
1051 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1052 163, 165, 164, 166, 166, 166, 167, 166, 166, 166,
1053 168, 170, 169, 171, 169, 169, 169, 169, 169, 169,
1054 169, 169, 169, 172, 172, 173, 173, 174, 175, 176,
1055 176, 176, 177, 178, 178, 178, 178, 178, 178, 178,
1056 178, 179, 179, 179, 181, 180, 180, 182, 182, 182,
1057 183, 183, 183, 183, 184, 185, 186, 187, 187, 187,
1058 187, 187, 188, 188, 188, 188, 188, 189, 189, 189,
1059 189, 189, 190, 190, 191, 191, 192, 192, 193, 193,
1060 194, 194, 194, 194, 194, 194, 195, 195, 195, 195,
1061 195, 195, 195, 195, 197, 196, 199, 198, 200, 200,
1062 201, 201, 202, 203, 204, 205, 205, 205, 206, 206,
1063 206, 207, 207, 208, 208, 209, 210, 210, 210, 210,
1064 210, 210, 211, 212, 213, 214, 214, 214, 215, 216,
1065 217, 217, 217, 218, 218, 219, 219, 219, 219, 219,
1066 219, 219, 219, 219, 219, 220, 220, 221, 222, 222,
1067 222, 222, 223, 223, 223, 223, 223, 223, 223, 224,
1068 224, 225, 225, 225, 225, 225, 225, 225, 225, 225,
1069 226, 226, 226, 226, 226, 227, 228, 229, 230, 231,
1070 232, 232, 232, 233, 233, 233, 233, 233, 233, 234,
1071 234, 234, 235, 235, 235, 235, 236, 236, 237, 238,
1072 238, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1073 239, 239, 240, 240, 240, 241, 241, 242, 242, 243,
1074 244, 245, 245, 245, 245, 246, 246, 246, 246, 247,
1075 247, 247, 247, 248, 249, 250, 252, 251, 253, 251,
1076 254, 251, 255, 251, 251, 256, 251, 251, 257, 251,
1077 251, 258, 251, 251, 259, 251, 251, 260, 251, 251,
1078 261, 251, 251, 262, 251, 251, 263, 251, 251, 264,
1079 251, 251, 251, 251, 265, 251, 251, 266, 251, 251,
1080 267, 251, 251, 268, 251, 251, 269, 251, 251, 270,
1081 251, 251, 271, 251, 251, 272, 251, 251, 273, 251,
1082 251, 274, 251, 251, 275, 251, 251, 276, 251, 251,
1083 277, 251, 251, 278, 251, 251, 251, 251, 251, 251,
1084 251, 251, 251, 251, 251, 251, 279, 279, 279, 280,
1085 281, 281, 283, 282, 284, 285, 286, 286, 286, 287,
1086 287, 287, 287, 287, 287, 287, 287, 287, 288, 288,
1087 289, 289, 289, 290, 290, 290, 292, 291, 291, 293,
1088 293, 294, 294, 294, 294, 295, 296, 296
1091 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1092 static const yytype_uint8 yyr2
[] =
1094 0, 2, 0, 2, 2, 1, 2, 1, 2, 2,
1095 1, 1, 3, 1, 1, 3, 2, 2, 1, 2,
1096 0, 1, 1, 0, 2, 2, 1, 1, 1, 1,
1097 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1098 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1099 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1100 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1101 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1102 1, 0, 3, 3, 1, 0, 0, 3, 3, 5,
1103 2, 0, 4, 0, 4, 3, 3, 4, 5, 4,
1104 3, 4, 3, 1, 1, 1, 2, 1, 1, 2,
1105 1, 3, 6, 7, 6, 5, 4, 2, 2, 2,
1106 0, 1, 1, 1, 0, 2, 0, 2, 3, 2,
1107 1, 1, 1, 1, 2, 2, 2, 2, 3, 2,
1108 3, 1, 2, 3, 2, 3, 1, 2, 3, 2,
1109 3, 1, 4, 3, 4, 3, 4, 3, 1, 1,
1110 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
1111 2, 2, 2, 2, 0, 3, 0, 3, 1, 0,
1112 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
1113 0, 3, 2, 3, 2, 2, 6, 9, 9, 6,
1114 2, 4, 2, 2, 2, 2, 3, 1, 1, 1,
1115 2, 3, 1, 1, 2, 3, 2, 4, 3, 2,
1116 4, 3, 2, 3, 2, 1, 1, 2, 4, 3,
1117 3, 2, 1, 2, 2, 1, 2, 2, 1, 3,
1118 1, 1, 1, 1, 1, 1, 1, 2, 3, 2,
1119 1, 2, 3, 4, 3, 2, 2, 2, 2, 2,
1120 2, 3, 1, 5, 4, 4, 2, 3, 5, 2,
1121 1, 1, 6, 7, 2, 2, 1, 1, 2, 3,
1122 0, 3, 3, 2, 3, 3, 4, 5, 4, 3,
1123 4, 3, 1, 1, 1, 2, 2, 1, 1, 1,
1124 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1125 2, 3, 2, 1, 2, 1, 0, 3, 0, 4,
1126 0, 4, 0, 4, 1, 0, 4, 1, 0, 4,
1127 1, 0, 4, 1, 0, 4, 1, 0, 4, 1,
1128 0, 4, 1, 0, 4, 1, 0, 4, 1, 0,
1129 4, 1, 2, 1, 0, 4, 1, 0, 4, 1,
1130 0, 4, 1, 0, 4, 1, 0, 4, 1, 0,
1131 4, 1, 0, 4, 1, 0, 4, 1, 0, 4,
1132 1, 0, 4, 1, 0, 4, 1, 0, 4, 1,
1133 0, 4, 1, 0, 4, 1, 1, 1, 1, 1,
1134 1, 1, 2, 2, 2, 2, 2, 2, 1, 1,
1135 2, 2, 0, 2, 1, 1, 3, 1, 1, 2,
1136 2, 1, 2, 3, 4, 4, 4, 1, 1, 1,
1137 1, 1, 1, 2, 2, 0, 0, 4, 1, 1,
1138 0, 2, 1, 4, 3, 1, 1, 1
1141 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1142 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1143 means the default is an error. */
1144 static const yytype_uint16 yydefact
[] =
1146 2, 0, 20, 1, 3, 23, 18, 23, 7, 11,
1147 10, 23, 21, 22, 20, 66, 17, 209, 19, 208,
1148 6, 62, 63, 54, 55, 56, 57, 58, 65, 59,
1149 67, 68, 70, 71, 72, 73, 74, 60, 61, 75,
1150 77, 64, 78, 76, 79, 108, 80, 315, 353, 351,
1151 330, 359, 365, 362, 368, 371, 374, 377, 348, 345,
1152 342, 397, 409, 415, 414, 398, 400, 399, 69, 380,
1153 383, 386, 389, 392, 395, 336, 339, 356, 0, 0,
1154 324, 327, 333, 316, 0, 24, 0, 0, 120, 440,
1155 0, 0, 0, 440, 440, 81, 0, 0, 0, 0,
1156 0, 440, 0, 0, 0, 440, 440, 0, 0, 276,
1157 277, 0, 0, 29, 31, 32, 30, 0, 0, 33,
1158 34, 52, 35, 26, 27, 28, 36, 37, 38, 39,
1159 40, 41, 42, 43, 44, 45, 46, 48, 47, 49,
1160 278, 50, 51, 53, 440, 107, 396, 401, 412, 412,
1161 16, 20, 352, 404, 402, 405, 403, 440, 202, 203,
1162 25, 104, 299, 300, 297, 298, 431, 430, 432, 91,
1163 103, 0, 0, 93, 0, 184, 190, 0, 179, 439,
1164 195, 200, 20, 447, 446, 0, 0, 258, 259, 0,
1165 418, 435, 90, 435, 240, 417, 445, 0, 0, 442,
1166 204, 214, 224, 216, 0, 222, 227, 231, 241, 243,
1167 246, 0, 0, 245, 232, 244, 242, 235, 238, 0,
1168 0, 251, 0, 255, 256, 257, 266, 0, 294, 0,
1169 293, 0, 292, 0, 0, 0, 313, 0, 310, 0,
1170 0, 12, 314, 349, 328, 357, 363, 360, 366, 369,
1171 372, 375, 346, 343, 340, 378, 381, 384, 387, 390,
1172 393, 334, 337, 354, 318, 320, 322, 325, 331, 411,
1173 440, 410, 15, 408, 317, 0, 438, 440, 95, 301,
1174 302, 303, 304, 0, 96, 0, 440, 118, 178, 117,
1175 0, 0, 0, 0, 346, 119, 0, 206, 211, 86,
1176 0, 0, 121, 122, 123, 0, 82, 440, 84, 433,
1177 0, 434, 428, 429, 0, 0, 0, 0, 0, 421,
1178 427, 0, 191, 441, 215, 221, 0, 225, 226, 0,
1179 223, 247, 249, 0, 233, 236, 234, 237, 230, 0,
1180 229, 252, 0, 271, 267, 0, 0, 0, 280, 270,
1181 281, 282, 284, 307, 306, 308, 305, 0, 285, 0,
1182 309, 311, 193, 111, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1185 413, 407, 406, 436, 92, 105, 97, 0, 0, 101,
1186 94, 179, 179, 23, 179, 201, 20, 124, 124, 133,
1187 0, 130, 131, 132, 179, 179, 179, 129, 0, 124,
1188 239, 0, 422, 0, 420, 0, 419, 0, 416, 444,
1189 220, 217, 248, 228, 253, 264, 275, 20, 265, 0,
1190 269, 0, 286, 0, 290, 350, 329, 358, 364, 361,
1191 367, 370, 373, 376, 347, 344, 341, 379, 382, 385,
1192 388, 391, 394, 335, 338, 355, 319, 321, 323, 326,
1193 332, 440, 106, 296, 295, 98, 188, 189, 23, 0,
1194 23, 23, 116, 0, 87, 0, 83, 128, 134, 179,
1195 179, 141, 135, 179, 179, 146, 136, 179, 179, 151,
1196 0, 0, 0, 179, 88, 0, 0, 0, 423, 443,
1197 0, 268, 23, 0, 263, 287, 437, 8, 23, 112,
1198 9, 0, 0, 0, 115, 199, 196, 125, 179, 137,
1199 179, 139, 179, 142, 179, 144, 179, 147, 179, 149,
1200 157, 0, 153, 0, 155, 0, 124, 426, 425, 424,
1201 20, 279, 0, 179, 179, 179, 114, 20, 138, 140,
1202 143, 145, 148, 150, 165, 0, 0, 0, 0, 0,
1203 0, 156, 160, 159, 152, 158, 154, 89, 23, 261,
1204 185, 187, 186, 113, 0, 162, 161, 164, 163, 167,
1205 166, 179, 169, 168, 179, 171, 170, 173, 172, 272,
1206 198, 197, 0, 0, 273, 177, 180, 181, 183, 182,
1210 /* YYDEFGOTO[NTERM-NUM]. */
1211 static const yytype_int16 yydefgoto
[] =
1213 -1, 1, 2, 4, 7, 478, 8, 9, 479, 16,
1214 5, 6, 10, 11, 12, 85, 86, 87, 88, 89,
1215 90, 91, 92, 93, 94, 95, 96, 97, 98, 17,
1216 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1217 109, 110, 111, 112, 113, 189, 306, 407, 114, 115,
1218 277, 286, 169, 394, 116, 117, 118, 119, 176, 307,
1219 484, 485, 308, 410, 411, 412, 413, 488, 492, 496,
1220 414, 415, 416, 574, 571, 572, 593, 594, 590, 591,
1221 289, 605, 606, 607, 177, 524, 292, 120, 121, 122,
1222 123, 124, 125, 126, 127, 18, 19, 128, 129, 130,
1223 329, 131, 132, 219, 192, 220, 133, 134, 135, 136,
1224 137, 138, 514, 139, 348, 349, 140, 13, 441, 141,
1225 231, 398, 170, 171, 172, 356, 357, 142, 237, 143,
1226 144, 179, 157, 385, 386, 387, 388, 365, 389, 382,
1227 383, 375, 374, 373, 364, 384, 366, 368, 367, 369,
1228 370, 371, 372, 376, 377, 378, 379, 380, 381, 274,
1229 146, 147, 269, 270, 148, 149, 194, 318, 319, 173,
1230 195, 275, 471, 276, 198, 199, 185
1233 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1235 #define YYPACT_NINF -493
1236 static const yytype_int16 yypact
[] =
1238 -493, 59, -493, -493, -493, 63, -8, 90, -493, -493,
1239 -493, 1133, -493, -493, -493, -493, -4, -493, -493, -493,
1240 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1241 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1242 -493, -493, -493, -493, -493, -493, -493, -493, 405, -493,
1243 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1244 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1245 -493, -493, -493, -493, -493, -493, -493, -493, 888, 953,
1246 -493, -493, -493, -493, 247, -493, 3, 268, 1679, 1804,
1247 1548, 28, 37, 1804, 1804, -493, 39, 177, 1804, 45,
1248 252, 1804, 33, 167, 82, 1804, 1804, 168, 270, -493,
1249 -493, 1425, 177, -493, -493, -493, -493, 214, 3, -493,
1250 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1251 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1252 -493, -493, -493, -493, 1804, 1927, -493, -493, -493, -493,
1253 70, -493, -493, -493, -493, -493, -493, 1614, -493, -493,
1254 -4, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1255 -493, 52, 391, -493, 334, -493, 56, 83, 1985, 1927,
1256 -493, -4, 1927, -493, -493, 257, 265, -493, -493, 47,
1257 -493, -19, 84, -19, -493, 2092, -493, 135, 299, 177,
1258 1927, -493, -493, 1804, 456, 1804, -493, -493, -493, -493,
1259 -493, 34, 823, -493, 128, -493, -493, 149, -5, 414,
1260 39, -493, 48, -493, -493, -493, -493, 1526, -493, 1804,
1261 -493, 381, -493, 205, 231, 1804, -493, 404, 1927, 409,
1262 416, -4, -493, -493, -493, -493, -493, -493, -493, -493,
1263 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1264 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1265 1614, -493, 70, -493, -493, 26, 140, 1804, -493, -493,
1266 -493, -493, -493, 42, -493, 418, 1804, -493, -493, -493,
1267 1804, 1804, 3, 1804, 556, -493, 46, -493, -493, -493,
1268 1804, 161, -493, -493, -493, 1804, -493, 1804, -493, -493,
1269 39, -493, -493, -493, -1, 10, 211, 194, 39, -493,
1270 -493, 147, -493, -493, 1927, -493, 1804, -493, -493, 420,
1271 1927, -493, -493, 262, -493, -493, -493, -493, -493, 39,
1272 84, -493, 440, -493, -493, 289, 1018, 291, 192, -493,
1273 1927, -493, -493, -493, -493, -493, -493, 49, -493, 447,
1274 1927, -493, -493, -493, 1804, 1804, 1804, 1804, 1804, 1804,
1275 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
1276 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
1277 -493, -493, -493, -493, -493, 179, -493, 35, 455, -493,
1278 -493, 1985, 1985, -4, 1985, -493, -493, 267, 1745, -493,
1279 458, -493, -493, -493, 251, 251, 251, 184, 1865, 267,
1280 -493, 194, -493, 194, -493, 194, -493, 202, -493, 177,
1281 1927, -493, -493, 84, -493, -493, -493, 1488, -493, 524,
1282 -493, 285, -493, 472, -493, 406, 286, 387, 387, 387,
1283 387, 387, 387, 387, 406, -493, 2043, 387, 387, 387,
1284 387, 387, 387, 2043, 2055, 387, 435, 435, 286, 286,
1285 286, 1804, -493, -493, -493, -493, -493, -493, 343, 360,
1286 -493, 1248, 316, 639, -493, 383, -493, -493, -493, 251,
1287 251, 125, -493, 251, 251, 156, -493, 251, 251, 190,
1288 73, 138, 86, 251, -493, 298, 302, 304, -493, -493,
1289 412, -493, -493, 277, -493, -493, -493, -493, 1363, -493,
1290 -493, 1804, 1804, 1804, 316, -493, 408, -493, 251, 399,
1291 251, 332, 251, 399, 251, 347, 251, 332, 251, 347,
1292 -493, 591, -493, 522, -493, 591, 267, -493, -493, -493,
1293 -493, -493, 484, 1985, 1985, 1985, 316, -493, -493, -493,
1294 -493, -493, -493, -493, -493, 77, 142, 134, 30, 254,
1295 329, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1296 -493, -493, -493, -493, 754, -493, -493, -493, -493, -493,
1297 -493, 251, -493, -493, 251, -493, -493, -493, -493, 432,
1298 -493, -493, 548, 135, -493, -493, -493, -493, -493, -493,
1302 /* YYPGOTO[NTERM-NUM]. */
1303 static const yytype_int16 yypgoto
[] =
1305 -493, -493, -493, -493, -493, -493, -7, -493, -65, -74,
1306 -169, 0, -378, -10, -493, -493, -493, -493, -493, -493,
1307 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1308 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1309 -207, -206, -493, -493, -493, -493, -493, -493, -493, -493,
1310 -493, -493, -493, 163, -493, -493, -16, -493, -493, -493,
1311 -389, -493, -25, -493, -493, -493, -493, -493, -493, -493,
1312 -234, -286, -330, -493, -79, -214, -493, -493, -185, -493,
1313 -103, -493, -121, -493, -493, -492, -493, -493, -493, -493,
1314 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1315 -493, -493, -493, -493, -194, 273, -493, -493, -493, -493,
1316 -493, -493, -493, -493, -493, 139, -493, -493, -493, -493,
1317 -493, 129, 398, 407, 415, 232, 290, -493, -493, -493,
1318 -493, -9, -493, -493, -493, -493, -493, -493, -493, -493,
1319 -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
1320 -493, -493, -493, -493, -493, -493, -493, -493, -493, 256,
1321 -87, -493, 382, -493, -493, -493, -96, -493, 260, -191,
1322 43, -262, -493, -83, -107, -190, -89
1325 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1326 positive, shift that token. If negative, reduce the rule which
1327 number is the opposite. If zero, do what YYDEFACT says.
1328 If YYTABLE_NINF, syntax error. */
1329 #define YYTABLE_NINF -441
1330 static const yytype_int16 yytable
[] =
1332 20, 84, 145, 186, 320, 239, 180, 321, 223, 193,
1333 187, 188, 160, 296, 150, 395, 181, 193, 206, 486,
1334 346, 347, 224, 225, 395, 480, 340, 391, 240, 183,
1335 504, 592, 556, 227, 207, 183, 473, 208, 183, 152,
1336 190, 14, 336, 396, 241, 151, 201, 405, 299, 341,
1337 442, 191, 14, 278, 62, 209, 210, 211, 212, 3,
1338 406, 242, 213, -5, 583, 312, 290, 291, 15, 154,
1339 156, 313, 300, 301, 540, 295, 312, -207, 585, 178,
1340 214, 182, 313, 190, 490, 494, -212, 544, -435, 200,
1341 -4, -100, 323, 279, -213, 280, -85, -174, -289, 337,
1342 517, 184, 238, -174, 193, -435, 193, 184, 474, 191,
1343 184, -435, 62, 215, 216, 342, 421, -435, -435, 302,
1344 303, 196, 331, 281, -435, 397, 304, 423, 489, 333,
1345 498, -435, 397, 193, 480, 589, 282, 217, 218, 542,
1346 288, 346, 439, 587, 392, 433, 15, -435, -435, -435,
1347 -435, 272, 191, 288, -435, 62, -435, 577, -435, 528,
1348 -435, -435, 409, 532, 305, 197, 500, -435, 221, 226,
1349 -179, -179, -179, -179, -179, -179, -179, 567, 568, 569,
1350 570, 493, 497, -179, -179, -179, -179, -179, -179, -179,
1351 -435, 293, -435, -435, 324, 222, 330, 500, 417, -435,
1352 599, -176, -179, 310, 530, 288, 352, -176, 196, 516,
1353 -179, 536, -176, -176, 420, 183, -250, 14, 403, -176,
1354 350, 502, 428, 193, 419, 500, 360, 40, 288, 42,
1355 427, 193, 358, 334, 309, -179, 311, 483, -179, -179,
1356 -179, -179, 567, 568, 569, 570, 279, 353, 280, 354,
1357 196, 501, 193, 202, 335, 595, -179, -179, 297, 393,
1358 534, 158, 159, -110, 538, 429, 298, 62, 510, 161,
1359 512, 228, 279, 353, 280, 354, 281, 312, 183, 501,
1360 502, 401, 402, 313, 404, 501, 502, 184, 432, 282,
1361 435, 408, 438, 355, 197, 229, 418, 472, 476, 477,
1362 322, 482, 281, 203, 204, 205, -205, 162, 163, 162,
1363 163, 491, 495, 499, -210, 282, -126, 430, 288, 355,
1364 508, -176, 509, 521, 522, 523, -262, -176, 425, 575,
1365 597, 513, -176, -176, 505, 287, 506, 437, 507, -176,
1366 164, 165, 164, 165, -179, -179, 166, 167, -192, 230,
1367 184, 586, 588, 168, 253, 445, 446, 447, 448, 449,
1368 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
1369 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
1370 470, 578, 351, -179, 596, 598, 529, 531, 584, -13,
1371 533, 535, 284, 481, 537, 539, -176, 541, 543, 545,
1372 546, 288, -176, 283, 285, 361, 45, -176, -176, 301,
1373 362, 608, 609, 609, -176, 338, 547, 363, 208, 399,
1374 548, 431, 549, 557, 552, 558, 550, 559, 502, 560,
1375 -283, 561, 279, 562, 280, 563, 209, 210, 211, 212,
1376 500, 434, 501, 213, 243, 244, 604, 551, 444, 400,
1377 580, 581, 582, -312, 252, 253, 475, 325, -194, 487,
1378 527, 48, 281, 519, 244, -109, 576, -102, 518, -218,
1379 520, 84, 145, 515, 253, 282, 526, 61, 62, 63,
1380 64, 326, 610, 65, 66, 579, 443, 440, 602, -254,
1381 67, 603, 339, 244, 215, 216, -291, 264, 265, 266,
1382 267, 268, 481, 253, -99, -219, 232, -127, 84, 145,
1383 327, 328, 553, 554, 555, 233, 264, 265, 266, 267,
1384 268, -288, 83, 234, 359, 511, 390, -20, -20, -20,
1385 -20, 271, 0, -260, 0, 0, -20, -20, -20, -20,
1386 -20, -20, -20, -20, -20, -20, 0, 266, 267, 268,
1387 0, -20, 0, -20, -20, -20, -20, -20, -20, -20,
1388 -20, -20, -20, -178, -178, -178, -178, -178, 518, -20,
1389 -20, -20, -20, -20, 422, 424, 426, 601, 0, 0,
1390 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
1391 0, -20, -20, -20, 0, 0, -20, -20, -20, -20,
1392 -20, 0, -20, -20, 0, -178, 0, 0, 0, -20,
1393 -20, 0, 0, -20, -20, -20, -20, -20, -20, 573,
1394 0, 196, 567, 568, 569, 570, 166, 167, 0, 0,
1395 -20, -20, -20, 168, -20, -20, -20, -20, -20, 0,
1396 525, -20, -23, -23, -23, -23, 0, 0, 0, 0,
1397 0, -23, -23, -23, -23, -23, -23, -23, -23, -23,
1398 -23, 0, 0, 0, 0, 0, -23, 0, -23, -23,
1399 -23, -23, -23, -23, -23, -23, -23, -23, 0, 0,
1400 0, 0, 0, 0, -23, -23, -23, -23, 564, 565,
1401 566, 567, 568, 569, 570, -23, -23, -23, -23, -23,
1402 -23, -23, -23, -23, -23, 0, -23, -23, -23, 0,
1403 0, -23, -23, -23, -23, 0, 0, -23, -23, 0,
1404 0, 0, 0, 0, -23, -23, 0, 0, -23, -23,
1405 -23, -23, -23, -23, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, -23, -23, -23, 0, -23,
1407 -23, -23, -23, -23, 0, 600, -23, -23, -23, -23,
1408 -23, 0, 0, 0, 0, 0, -23, -23, -23, -23,
1409 -23, -23, -23, -23, -23, -23, 0, 0, 0, 0,
1410 0, -23, 0, -23, -23, -23, -23, -23, -23, -23,
1411 -23, -23, -23, 0, 0, 0, 0, 0, 0, -23,
1412 -23, -23, -23, 0, 0, 0, 0, 0, 0, 0,
1413 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
1414 0, -23, -23, -23, 332, 0, -23, -23, -23, -23,
1415 0, 0, -23, -23, 0, 0, 0, 0, 0, -23,
1416 -23, 0, 0, -23, -23, -23, -23, -23, -23, -440,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 -23, -23, -23, 0, -23, -23, -23, -23, -23, 0,
1419 0, -23, 0, 0, 0, 0, 0, 0, 0, 48,
1420 49, 50, 51, 52, 53, 54, 55, 56, 57, 153,
1421 58, 59, 60, 0, 0, 61, 62, 63, 64, 0,
1422 0, 65, 66, 0, 0, 0, 0, 0, 67, 0,
1423 0, 0, 69, 70, 71, 72, 73, 74, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
1425 76, 77, 0, 78, 79, 80, 81, 82, 0, 0,
1426 83, 0, 0, 0, 48, 49, 50, 51, 52, 53,
1427 54, 55, 56, 57, 155, 58, 59, 60, 0, 0,
1428 61, 62, 63, 64, 0, 0, 65, 66, 0, 0,
1429 0, 0, 0, 67, 0, 0, 0, 69, 70, 71,
1430 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 75, 76, 77, 0, 78, 79,
1432 80, 81, 82, 0, 0, 83, 0, 0, 0, 48,
1433 49, 50, 51, 52, 53, 54, 55, 56, 57, 436,
1434 58, 59, 60, 0, 0, 61, 62, 63, 64, 0,
1435 0, 65, 66, 0, 0, 0, 0, 0, 67, 0,
1436 0, 0, 69, 70, 71, 72, 73, 74, 0, 0,
1437 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
1438 76, 77, 0, 78, 79, 80, 81, 82, 0, 0,
1439 83, 0, 0, 0, 48, 49, 50, 51, 52, 53,
1440 54, 55, 56, 57, 0, 58, 59, 60, 0, 0,
1441 61, 62, 63, 64, 0, 0, 65, 66, 0, 0,
1442 0, 0, 0, 67, 0, 0, 0, 69, 70, 71,
1443 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 75, 76, 77, 0, 78, 79,
1445 80, 81, 82, 0, 0, 83, 21, 22, 23, 24,
1446 0, 0, 0, 0, 0, 25, 26, 0, 0, 27,
1447 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1448 33, 0, 34, 35, 36, 37, 38, 39, 40, 41,
1449 42, 43, 0, 0, 0, 0, 0, 0, 44, 45,
1450 46, 47, 0, 0, 0, 0, 0, 0, 0, 48,
1451 49, 50, 51, 52, 53, 54, 55, 56, 57, 0,
1452 58, 59, 60, 0, 0, 61, 62, 63, 64, 0,
1453 0, 65, 66, 0, 0, 0, 0, 0, 67, 68,
1454 0, 0, 69, 70, 71, 72, 73, 74, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
1456 76, 77, 0, 78, 79, 80, 81, 82, 0, 0,
1457 83, 21, 22, 23, 24, 0, 0, 0, 0, 0,
1458 25, 26, 0, 0, 27, 28, 29, 30, 31, 32,
1459 0, 0, 0, 0, 0, 33, 0, 34, 35, 36,
1460 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
1461 0, 0, 0, 44, -14, 46, 47, 0, 0, 0,
1462 0, 0, 0, 0, 48, 49, 50, 51, 52, 53,
1463 54, 55, 56, 57, 0, 58, 59, 60, 0, 0,
1464 61, 62, 63, 64, 0, 0, 65, 66, 0, 0,
1465 0, 0, 0, 67, 68, 0, 0, 69, 70, 71,
1466 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 75, 76, 77, 0, 78, 79,
1468 80, 81, 82, 0, 0, 83, 21, 22, 23, 24,
1469 0, 0, 0, 0, 0, 25, 26, 0, 0, 27,
1470 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1471 33, 0, 34, 35, 36, 37, 38, 39, 40, 41,
1472 42, 43, 0, 0, 0, 0, 0, 0, 44, 0,
1473 46, 47, 0, 0, 0, 0, 0, 0, 0, 48,
1474 49, 50, 51, 52, 53, 54, 55, 56, 57, 0,
1475 58, 59, 60, 0, 0, 61, 62, 63, 64, 0,
1476 0, 65, 66, 0, 0, 0, 0, 0, 67, 68,
1477 235, 0, 69, 70, 71, 72, 73, 74, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
1479 76, 77, 0, 78, 79, 80, 81, 82, 0, 0,
1480 83, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1481 57, 0, 58, 59, 60, 0, 0, 61, 62, 63,
1482 64, 0, 0, 65, 66, 0, 0, 236, 0, 0,
1483 67, 0, 0, 0, 69, 70, 71, 72, 73, 74,
1484 0, 0, 0, -274, 0, -274, 0, 343, 0, 0,
1485 0, 75, 76, 77, -274, 78, 79, 80, 81, 82,
1486 344, 0, 83, 0, 0, 243, 244, 245, 246, 247,
1487 248, 249, 250, 251, 0, 252, 253, 254, 0, 0,
1488 0, 40, 0, 42, 0, 0, 0, 0, 0, 0,
1489 0, 0, 345, 0, 0, 151, 0, 255, 256, 257,
1490 258, 259, 260, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 261, 262, 263, 14, 264, 265,
1492 266, 267, 268, 0, 48, 49, 50, 51, 52, 53,
1493 54, 55, 56, 57, 0, 58, 59, 60, 0, 0,
1494 61, 62, 63, 64, 0, 0, 65, 66, 0, 0,
1495 0, 0, 0, 67, 0, 0, 0, 69, 70, 71,
1496 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 75, 76, 77, 0, 78, 79,
1498 80, 81, 82, 273, 0, 83, 0, 0, 0, 0,
1499 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1500 0, 58, 59, 60, 0, 0, 61, 62, 63, 64,
1501 0, 0, 65, 66, 0, 0, 0, 0, 0, 67,
1502 0, 0, 0, 69, 70, 71, 72, 73, 74, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 75, 76, 77, 0, 78, 79, 80, 81, 82, 174,
1505 0, 83, 0, 0, 0, 48, 49, 50, 51, 52,
1506 53, 54, 55, 56, 57, 0, 58, 59, 60, 0,
1507 0, 61, 62, 63, 64, 0, 175, 65, 66, 0,
1508 0, 0, 0, 0, 67, 0, 0, 0, 69, 70,
1509 71, 72, 73, 74, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 75, 76, 77, 0, 78,
1511 79, 80, 81, 82, -126, 0, 83, 0, 0, 0,
1512 0, 0, 243, 244, 245, 246, 247, 248, 249, 250,
1513 251, 0, 252, 253, 254, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 255, 256, 257, 258, 259, 260,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 261, 262, 263, 0, 264, 265, 266, 267, 268,
1518 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1519 0, 58, 59, 60, 0, 0, 61, 62, 63, 64,
1520 0, 0, 65, 66, 0, 0, 0, 0, 0, 67,
1521 0, 0, 0, 69, 70, 71, 72, 73, 74, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 75, 76, 77, 0, 78, 79, 80, 81, 82, 0,
1524 0, 83, 243, 244, 245, 246, 247, 248, 249, 250,
1525 251, 0, 252, 253, 254, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 0, 255, 256, 257, 258, 259, 260,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 261, 262, 263, 0, 264, 265, 266, 267, 268,
1530 0, 0, 0, 503, 243, 244, 245, 246, 247, 248,
1531 249, 250, 251, 0, 252, 253, 254, 0, 0, 0,
1532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 0, 0, 0, 255, 256, 257, 258,
1534 259, 260, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 261, 262, 263, 0, 264, 265, 266,
1536 267, 268, 243, 244, 245, 246, 247, 248, 249, 250,
1537 251, 0, 294, 253, 254, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 255, 256, 257, 258, 259, 260,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 261, 262, 263, 0, 264, 265, 266, 267, 268,
1542 243, 244, 245, 246, 247, 248, 249, 250, 251, 0,
1543 252, 253, 243, 244, 245, 246, 247, 248, 249, 250,
1544 251, 0, 252, 253, 0, 0, 0, 0, 0, 0,
1545 0, 0, 255, 256, 257, 258, 259, 260, 0, 0,
1546 0, 0, 0, 0, 255, 256, 257, 258, 259, 260,
1547 262, 263, 0, 264, 265, 266, 267, 268, 312, 0,
1548 0, 0, 0, 263, 313, 264, 265, 266, 267, 268,
1549 166, 167, 0, 0, 0, 0, 0, 168, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 314, 0, 315, 316, 0, 0, 0, 0, 0, 317
1555 static const yytype_int16 yycheck
[] =
1557 7, 11, 11, 92, 195, 112, 89, 197, 104, 96,
1558 93, 94, 86, 182, 14, 277, 90, 104, 101, 408,
1559 227, 227, 105, 106, 286, 403, 220, 1, 117, 1,
1560 419, 1, 524, 107, 1, 1, 1, 4, 1, 48,
1561 1, 49, 47, 1, 118, 49, 1, 1, 1, 1,
1562 1, 70, 49, 1, 73, 22, 23, 24, 25, 0,
1563 14, 144, 29, 0, 556, 66, 10, 11, 76, 78,
1564 79, 72, 25, 26, 1, 178, 66, 49, 1, 88,
1565 47, 90, 72, 1, 414, 415, 49, 1, 49, 98,
1566 0, 49, 199, 41, 49, 43, 49, 67, 49, 104,
1567 478, 73, 111, 73, 191, 66, 193, 73, 73, 70,
1568 73, 72, 73, 80, 81, 222, 117, 78, 79, 72,
1569 73, 73, 211, 71, 85, 83, 79, 117, 414, 212,
1570 416, 49, 83, 220, 512, 1, 84, 104, 105, 1,
1571 67, 348, 348, 1, 118, 339, 76, 108, 66, 110,
1572 111, 151, 70, 67, 72, 73, 117, 546, 119, 489,
1573 78, 79, 1, 493, 117, 117, 41, 85, 1, 1,
1574 97, 98, 99, 100, 101, 102, 103, 100, 101, 102,
1575 103, 415, 416, 97, 98, 99, 100, 101, 102, 103,
1576 108, 108, 110, 111, 203, 28, 205, 41, 301, 117,
1577 578, 67, 41, 119, 490, 67, 1, 73, 73, 471,
1578 49, 497, 78, 79, 310, 1, 49, 49, 292, 85,
1579 229, 96, 318, 310, 307, 41, 235, 35, 67, 37,
1580 317, 318, 1, 105, 191, 97, 193, 406, 100, 101,
1581 102, 103, 100, 101, 102, 103, 41, 42, 43, 44,
1582 73, 95, 339, 1, 105, 1, 95, 96, 1, 119,
1583 494, 14, 15, 49, 498, 118, 1, 73, 437, 1,
1584 439, 1, 41, 42, 43, 44, 71, 66, 1, 95,
1585 96, 290, 291, 72, 293, 95, 96, 73, 26, 84,
1586 1, 300, 1, 88, 117, 25, 305, 118, 401, 402,
1587 1, 404, 71, 51, 52, 53, 49, 39, 40, 39,
1588 40, 414, 415, 416, 49, 84, 49, 326, 67, 88,
1589 118, 67, 429, 7, 8, 9, 49, 73, 117, 543,
1590 1, 46, 78, 79, 421, 1, 423, 346, 425, 85,
1591 72, 73, 72, 73, 10, 11, 78, 79, 49, 79,
1592 73, 565, 566, 85, 68, 364, 365, 366, 367, 368,
1593 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
1594 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
1595 389, 550, 1, 49, 569, 570, 489, 490, 557, 46,
1596 493, 494, 1, 403, 497, 498, 67, 500, 501, 502,
1597 503, 67, 73, 171, 172, 1, 46, 78, 79, 26,
1598 1, 602, 602, 603, 85, 1, 118, 1, 4, 1,
1599 118, 1, 118, 15, 513, 528, 14, 530, 96, 532,
1600 49, 534, 41, 536, 43, 538, 22, 23, 24, 25,
1601 41, 1, 95, 29, 57, 58, 14, 512, 1, 286,
1602 553, 554, 555, 49, 67, 68, 1, 1, 49, 1,
1603 485, 56, 71, 479, 58, 49, 545, 49, 478, 49,
1604 480, 481, 481, 1, 68, 84, 483, 72, 73, 74,
1605 75, 25, 603, 78, 79, 1, 357, 348, 591, 49,
1606 85, 594, 219, 58, 80, 81, 49, 110, 111, 112,
1607 113, 114, 512, 68, 49, 49, 108, 49, 518, 518,
1608 54, 55, 521, 522, 523, 108, 110, 111, 112, 113,
1609 114, 49, 117, 108, 234, 1, 270, 3, 4, 5,
1610 6, 149, -1, 49, -1, -1, 12, 13, 14, 15,
1611 16, 17, 18, 19, 20, 21, -1, 112, 113, 114,
1612 -1, 27, -1, 29, 30, 31, 32, 33, 34, 35,
1613 36, 37, 38, 7, 8, 9, 10, 11, 578, 45,
1614 46, 47, 48, 49, 314, 315, 316, 584, -1, -1,
1615 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1616 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75,
1617 76, -1, 78, 79, -1, 49, -1, -1, -1, 85,
1618 86, -1, -1, 89, 90, 91, 92, 93, 94, 97,
1619 -1, 73, 100, 101, 102, 103, 78, 79, -1, -1,
1620 106, 107, 108, 85, 110, 111, 112, 113, 114, -1,
1621 1, 117, 3, 4, 5, 6, -1, -1, -1, -1,
1622 -1, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1623 21, -1, -1, -1, -1, -1, 27, -1, 29, 30,
1624 31, 32, 33, 34, 35, 36, 37, 38, -1, -1,
1625 -1, -1, -1, -1, 45, 46, 47, 48, 97, 98,
1626 99, 100, 101, 102, 103, 56, 57, 58, 59, 60,
1627 61, 62, 63, 64, 65, -1, 67, 68, 69, -1,
1628 -1, 72, 73, 74, 75, -1, -1, 78, 79, -1,
1629 -1, -1, -1, -1, 85, 86, -1, -1, 89, 90,
1630 91, 92, 93, 94, -1, -1, -1, -1, -1, -1,
1631 -1, -1, -1, -1, -1, 106, 107, 108, -1, 110,
1632 111, 112, 113, 114, -1, 1, 117, 3, 4, 5,
1633 6, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1634 16, 17, 18, 19, 20, 21, -1, -1, -1, -1,
1635 -1, 27, -1, 29, 30, 31, 32, 33, 34, 35,
1636 36, 37, 38, -1, -1, -1, -1, -1, -1, 45,
1637 46, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1638 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1639 -1, 67, 68, 69, 1, -1, 72, 73, 74, 75,
1640 -1, -1, 78, 79, -1, -1, -1, -1, -1, 85,
1641 86, -1, -1, 89, 90, 91, 92, 93, 94, 26,
1642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1643 106, 107, 108, -1, 110, 111, 112, 113, 114, -1,
1644 -1, 117, -1, -1, -1, -1, -1, -1, -1, 56,
1645 57, 58, 59, 60, 61, 62, 63, 64, 65, 1,
1646 67, 68, 69, -1, -1, 72, 73, 74, 75, -1,
1647 -1, 78, 79, -1, -1, -1, -1, -1, 85, -1,
1648 -1, -1, 89, 90, 91, 92, 93, 94, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1650 107, 108, -1, 110, 111, 112, 113, 114, -1, -1,
1651 117, -1, -1, -1, 56, 57, 58, 59, 60, 61,
1652 62, 63, 64, 65, 1, 67, 68, 69, -1, -1,
1653 72, 73, 74, 75, -1, -1, 78, 79, -1, -1,
1654 -1, -1, -1, 85, -1, -1, -1, 89, 90, 91,
1655 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1656 -1, -1, -1, -1, 106, 107, 108, -1, 110, 111,
1657 112, 113, 114, -1, -1, 117, -1, -1, -1, 56,
1658 57, 58, 59, 60, 61, 62, 63, 64, 65, 1,
1659 67, 68, 69, -1, -1, 72, 73, 74, 75, -1,
1660 -1, 78, 79, -1, -1, -1, -1, -1, 85, -1,
1661 -1, -1, 89, 90, 91, 92, 93, 94, -1, -1,
1662 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1663 107, 108, -1, 110, 111, 112, 113, 114, -1, -1,
1664 117, -1, -1, -1, 56, 57, 58, 59, 60, 61,
1665 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1666 72, 73, 74, 75, -1, -1, 78, 79, -1, -1,
1667 -1, -1, -1, 85, -1, -1, -1, 89, 90, 91,
1668 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, -1, 106, 107, 108, -1, 110, 111,
1670 112, 113, 114, -1, -1, 117, 3, 4, 5, 6,
1671 -1, -1, -1, -1, -1, 12, 13, -1, -1, 16,
1672 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
1673 27, -1, 29, 30, 31, 32, 33, 34, 35, 36,
1674 37, 38, -1, -1, -1, -1, -1, -1, 45, 46,
1675 47, 48, -1, -1, -1, -1, -1, -1, -1, 56,
1676 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
1677 67, 68, 69, -1, -1, 72, 73, 74, 75, -1,
1678 -1, 78, 79, -1, -1, -1, -1, -1, 85, 86,
1679 -1, -1, 89, 90, 91, 92, 93, 94, -1, -1,
1680 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1681 107, 108, -1, 110, 111, 112, 113, 114, -1, -1,
1682 117, 3, 4, 5, 6, -1, -1, -1, -1, -1,
1683 12, 13, -1, -1, 16, 17, 18, 19, 20, 21,
1684 -1, -1, -1, -1, -1, 27, -1, 29, 30, 31,
1685 32, 33, 34, 35, 36, 37, 38, -1, -1, -1,
1686 -1, -1, -1, 45, 46, 47, 48, -1, -1, -1,
1687 -1, -1, -1, -1, 56, 57, 58, 59, 60, 61,
1688 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1689 72, 73, 74, 75, -1, -1, 78, 79, -1, -1,
1690 -1, -1, -1, 85, 86, -1, -1, 89, 90, 91,
1691 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, 106, 107, 108, -1, 110, 111,
1693 112, 113, 114, -1, -1, 117, 3, 4, 5, 6,
1694 -1, -1, -1, -1, -1, 12, 13, -1, -1, 16,
1695 17, 18, 19, 20, 21, -1, -1, -1, -1, -1,
1696 27, -1, 29, 30, 31, 32, 33, 34, 35, 36,
1697 37, 38, -1, -1, -1, -1, -1, -1, 45, -1,
1698 47, 48, -1, -1, -1, -1, -1, -1, -1, 56,
1699 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
1700 67, 68, 69, -1, -1, 72, 73, 74, 75, -1,
1701 -1, 78, 79, -1, -1, -1, -1, -1, 85, 86,
1702 25, -1, 89, 90, 91, 92, 93, 94, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1704 107, 108, -1, 110, 111, 112, 113, 114, -1, -1,
1705 117, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1706 65, -1, 67, 68, 69, -1, -1, 72, 73, 74,
1707 75, -1, -1, 78, 79, -1, -1, 82, -1, -1,
1708 85, -1, -1, -1, 89, 90, 91, 92, 93, 94,
1709 -1, -1, -1, 35, -1, 37, -1, 1, -1, -1,
1710 -1, 106, 107, 108, 46, 110, 111, 112, 113, 114,
1711 14, -1, 117, -1, -1, 57, 58, 59, 60, 61,
1712 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1713 -1, 35, -1, 37, -1, -1, -1, -1, -1, -1,
1714 -1, -1, 46, -1, -1, 49, -1, 89, 90, 91,
1715 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1716 -1, -1, -1, -1, 106, 107, 108, 49, 110, 111,
1717 112, 113, 114, -1, 56, 57, 58, 59, 60, 61,
1718 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1719 72, 73, 74, 75, -1, -1, 78, 79, -1, -1,
1720 -1, -1, -1, 85, -1, -1, -1, 89, 90, 91,
1721 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1722 -1, -1, -1, -1, 106, 107, 108, -1, 110, 111,
1723 112, 113, 114, 49, -1, 117, -1, -1, -1, -1,
1724 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1725 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75,
1726 -1, -1, 78, 79, -1, -1, -1, -1, -1, 85,
1727 -1, -1, -1, 89, 90, 91, 92, 93, 94, -1,
1728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1729 106, 107, 108, -1, 110, 111, 112, 113, 114, 50,
1730 -1, 117, -1, -1, -1, 56, 57, 58, 59, 60,
1731 61, 62, 63, 64, 65, -1, 67, 68, 69, -1,
1732 -1, 72, 73, 74, 75, -1, 77, 78, 79, -1,
1733 -1, -1, -1, -1, 85, -1, -1, -1, 89, 90,
1734 91, 92, 93, 94, -1, -1, -1, -1, -1, -1,
1735 -1, -1, -1, -1, -1, 106, 107, 108, -1, 110,
1736 111, 112, 113, 114, 49, -1, 117, -1, -1, -1,
1737 -1, -1, 57, 58, 59, 60, 61, 62, 63, 64,
1738 65, -1, 67, 68, 69, -1, -1, -1, -1, -1,
1739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1740 -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
1741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1742 -1, 106, 107, 108, -1, 110, 111, 112, 113, 114,
1743 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1744 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75,
1745 -1, -1, 78, 79, -1, -1, -1, -1, -1, 85,
1746 -1, -1, -1, 89, 90, 91, 92, 93, 94, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1748 106, 107, 108, -1, 110, 111, 112, 113, 114, -1,
1749 -1, 117, 57, 58, 59, 60, 61, 62, 63, 64,
1750 65, -1, 67, 68, 69, -1, -1, -1, -1, -1,
1751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1752 -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
1753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1754 -1, 106, 107, 108, -1, 110, 111, 112, 113, 114,
1755 -1, -1, -1, 118, 57, 58, 59, 60, 61, 62,
1756 63, 64, 65, -1, 67, 68, 69, -1, -1, -1,
1757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1758 -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
1759 93, 94, -1, -1, -1, -1, -1, -1, -1, -1,
1760 -1, -1, -1, 106, 107, 108, -1, 110, 111, 112,
1761 113, 114, 57, 58, 59, 60, 61, 62, 63, 64,
1762 65, -1, 67, 68, 69, -1, -1, -1, -1, -1,
1763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1764 -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
1765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1766 -1, 106, 107, 108, -1, 110, 111, 112, 113, 114,
1767 57, 58, 59, 60, 61, 62, 63, 64, 65, -1,
1768 67, 68, 57, 58, 59, 60, 61, 62, 63, 64,
1769 65, -1, 67, 68, -1, -1, -1, -1, -1, -1,
1770 -1, -1, 89, 90, 91, 92, 93, 94, -1, -1,
1771 -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
1772 107, 108, -1, 110, 111, 112, 113, 114, 66, -1,
1773 -1, -1, -1, 108, 72, 110, 111, 112, 113, 114,
1774 78, 79, -1, -1, -1, -1, -1, 85, -1, -1,
1775 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1777 108, -1, 110, 111, -1, -1, -1, -1, -1, 117
1780 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1781 symbol of state STATE-NUM. */
1782 static const yytype_uint16 yystos
[] =
1784 0, 121, 122, 0, 123, 130, 131, 124, 126, 127,
1785 132, 133, 134, 237, 49, 76, 129, 149, 215, 216,
1786 126, 3, 4, 5, 6, 12, 13, 16, 17, 18,
1787 19, 20, 21, 27, 29, 30, 31, 32, 33, 34,
1788 35, 36, 37, 38, 45, 46, 47, 48, 56, 57,
1789 58, 59, 60, 61, 62, 63, 64, 65, 67, 68,
1790 69, 72, 73, 74, 75, 78, 79, 85, 86, 89,
1791 90, 91, 92, 93, 94, 106, 107, 108, 110, 111,
1792 112, 113, 114, 117, 133, 135, 136, 137, 138, 139,
1793 140, 141, 142, 143, 144, 145, 146, 147, 148, 150,
1794 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1795 161, 162, 163, 164, 168, 169, 174, 175, 176, 177,
1796 207, 208, 209, 210, 211, 212, 213, 214, 217, 218,
1797 219, 221, 222, 226, 227, 228, 229, 230, 231, 233,
1798 236, 239, 247, 249, 250, 251, 280, 281, 284, 285,
1799 131, 49, 251, 1, 251, 1, 251, 252, 14, 15,
1800 129, 1, 39, 40, 72, 73, 78, 79, 85, 172,
1801 242, 243, 244, 289, 50, 77, 178, 204, 251, 251,
1802 293, 129, 251, 1, 73, 296, 296, 293, 293, 165,
1803 1, 70, 224, 280, 286, 290, 73, 117, 294, 295,
1804 251, 1, 1, 51, 52, 53, 293, 1, 4, 22,
1805 23, 24, 25, 29, 47, 80, 81, 104, 105, 223,
1806 225, 1, 28, 286, 293, 293, 1, 129, 1, 25,
1807 79, 240, 242, 243, 244, 25, 82, 248, 251, 294,
1808 296, 129, 293, 57, 58, 59, 60, 61, 62, 63,
1809 64, 65, 67, 68, 69, 89, 90, 91, 92, 93,
1810 94, 106, 107, 108, 110, 111, 112, 113, 114, 282,
1811 283, 282, 131, 49, 279, 291, 293, 170, 1, 41,
1812 43, 71, 84, 245, 1, 245, 171, 1, 67, 200,
1813 10, 11, 206, 108, 67, 200, 130, 1, 1, 1,
1814 25, 26, 72, 73, 79, 117, 166, 179, 182, 290,
1815 119, 290, 66, 72, 108, 110, 111, 117, 287, 288,
1816 289, 295, 1, 294, 251, 1, 25, 54, 55, 220,
1817 251, 296, 1, 293, 105, 105, 47, 104, 1, 225,
1818 224, 1, 294, 1, 14, 46, 160, 161, 234, 235,
1819 251, 1, 1, 42, 44, 88, 245, 246, 1, 246,
1820 251, 1, 1, 1, 264, 257, 266, 268, 267, 269,
1821 270, 271, 272, 263, 262, 261, 273, 274, 275, 276,
1822 277, 278, 259, 260, 265, 253, 254, 255, 256, 258,
1823 279, 1, 118, 119, 173, 291, 1, 83, 241, 1,
1824 173, 251, 251, 129, 251, 1, 14, 167, 251, 1,
1825 183, 184, 185, 186, 190, 191, 192, 200, 251, 293,
1826 286, 117, 288, 117, 288, 117, 288, 280, 286, 118,
1827 251, 1, 26, 224, 1, 1, 1, 251, 1, 161,
1828 235, 238, 1, 241, 1, 251, 251, 251, 251, 251,
1829 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1830 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1831 251, 292, 118, 1, 73, 1, 200, 200, 125, 128,
1832 132, 133, 200, 130, 180, 181, 180, 1, 187, 191,
1833 192, 200, 188, 190, 192, 200, 189, 190, 191, 200,
1834 41, 95, 96, 118, 180, 280, 280, 280, 118, 294,
1835 130, 1, 130, 46, 232, 1, 291, 132, 133, 176,
1836 133, 7, 8, 9, 205, 1, 126, 182, 192, 200,
1837 191, 200, 192, 200, 190, 200, 191, 200, 190, 200,
1838 1, 200, 1, 200, 1, 200, 200, 118, 118, 118,
1839 14, 128, 296, 251, 251, 251, 205, 15, 200, 200,
1840 200, 200, 200, 200, 97, 98, 99, 100, 101, 102,
1841 103, 194, 195, 97, 193, 195, 194, 180, 130, 1,
1842 200, 200, 200, 205, 130, 1, 195, 1, 195, 1,
1843 198, 199, 1, 196, 197, 1, 198, 1, 198, 132,
1844 1, 126, 200, 200, 14, 201, 202, 203, 289, 295,
1848 #define yyerrok (yyerrstatus = 0)
1849 #define yyclearin (yychar = YYEMPTY)
1850 #define YYEMPTY (-2)
1853 #define YYACCEPT goto yyacceptlab
1854 #define YYABORT goto yyabortlab
1855 #define YYERROR goto yyerrorlab
1858 /* Like YYERROR except do call yyerror. This remains here temporarily
1859 to ease the transition to the new meaning of YYERROR, for GCC.
1860 Once GCC version 2 has supplanted version 1, this can go. */
1862 #define YYFAIL goto yyerrlab
1864 #define YYRECOVERING() (!!yyerrstatus)
1866 #define YYBACKUP(Token, Value) \
1868 if (yychar == YYEMPTY && yylen == 1) \
1872 yytoken = YYTRANSLATE (yychar); \
1878 yyerror (YY_("syntax error: cannot back up")); \
1885 #define YYERRCODE 256
1888 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1889 If N is 0, then set CURRENT to the empty location which ends
1890 the previous symbol: RHS[0] (always defined). */
1892 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1893 #ifndef YYLLOC_DEFAULT
1894 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1898 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1899 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1900 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1901 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1905 (Current).first_line = (Current).last_line = \
1906 YYRHSLOC (Rhs, 0).last_line; \
1907 (Current).first_column = (Current).last_column = \
1908 YYRHSLOC (Rhs, 0).last_column; \
1914 /* YY_LOCATION_PRINT -- Print the location on the stream.
1915 This macro was not mandated originally: define only if we know
1916 we won't break user code: when these are the locations we know. */
1918 #ifndef YY_LOCATION_PRINT
1919 # if YYLTYPE_IS_TRIVIAL
1920 # define YY_LOCATION_PRINT(File, Loc) \
1921 fprintf (File, "%d.%d-%d.%d", \
1922 (Loc).first_line, (Loc).first_column, \
1923 (Loc).last_line, (Loc).last_column)
1925 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1930 /* YYLEX -- calling `yylex' with the right arguments. */
1933 # define YYLEX yylex (YYLEX_PARAM)
1935 # define YYLEX yylex ()
1938 /* Enable debugging if requested. */
1942 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1943 # define YYFPRINTF fprintf
1946 # define YYDPRINTF(Args) \
1952 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1956 YYFPRINTF (stderr, "%s ", Title); \
1957 yy_symbol_print (stderr, \
1959 YYFPRINTF (stderr, "\n"); \
1964 /*--------------------------------.
1965 | Print this symbol on YYOUTPUT. |
1966 `--------------------------------*/
1969 #if (defined __STDC__ || defined __C99__FUNC__ \
1970 || defined __cplusplus || defined _MSC_VER)
1972 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
)
1975 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
)
1978 YYSTYPE
const * const yyvaluep
;
1984 if (yytype
< YYNTOKENS
)
1985 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
1997 /*--------------------------------.
1998 | Print this symbol on YYOUTPUT. |
1999 `--------------------------------*/
2001 #if (defined __STDC__ || defined __C99__FUNC__ \
2002 || defined __cplusplus || defined _MSC_VER)
2004 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
)
2007 yy_symbol_print (yyoutput
, yytype
, yyvaluep
)
2010 YYSTYPE
const * const yyvaluep
;
2013 if (yytype
< YYNTOKENS
)
2014 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2016 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2018 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
);
2019 YYFPRINTF (yyoutput
, ")");
2022 /*------------------------------------------------------------------.
2023 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2025 `------------------------------------------------------------------*/
2027 #if (defined __STDC__ || defined __C99__FUNC__ \
2028 || defined __cplusplus || defined _MSC_VER)
2030 yy_stack_print (yytype_int16
*bottom
, yytype_int16
*top
)
2033 yy_stack_print (bottom
, top
)
2034 yytype_int16
*bottom
;
2038 YYFPRINTF (stderr
, "Stack now");
2039 for (; bottom
<= top
; ++bottom
)
2040 YYFPRINTF (stderr
, " %d", *bottom
);
2041 YYFPRINTF (stderr
, "\n");
2044 # define YY_STACK_PRINT(Bottom, Top) \
2047 yy_stack_print ((Bottom), (Top)); \
2051 /*------------------------------------------------.
2052 | Report that the YYRULE is going to be reduced. |
2053 `------------------------------------------------*/
2055 #if (defined __STDC__ || defined __C99__FUNC__ \
2056 || defined __cplusplus || defined _MSC_VER)
2058 yy_reduce_print (YYSTYPE
*yyvsp
, int yyrule
)
2061 yy_reduce_print (yyvsp
, yyrule
)
2066 int yynrhs
= yyr2
[yyrule
];
2068 unsigned long int yylno
= yyrline
[yyrule
];
2069 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2071 /* The symbols being reduced. */
2072 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2074 fprintf (stderr
, " $%d = ", yyi
+ 1);
2075 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2076 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2078 fprintf (stderr
, "\n");
2082 # define YY_REDUCE_PRINT(Rule) \
2085 yy_reduce_print (yyvsp, Rule); \
2088 /* Nonzero means print parse trace. It is left uninitialized so that
2089 multiple parsers can coexist. */
2091 #else /* !YYDEBUG */
2092 # define YYDPRINTF(Args)
2093 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2094 # define YY_STACK_PRINT(Bottom, Top)
2095 # define YY_REDUCE_PRINT(Rule)
2096 #endif /* !YYDEBUG */
2099 /* YYINITDEPTH -- initial size of the parser's stacks. */
2101 # define YYINITDEPTH 200
2104 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2105 if the built-in stack extension method is used).
2107 Do not make this value too large; the results are undefined if
2108 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2109 evaluated with infinite-precision integer arithmetic. */
2112 # define YYMAXDEPTH 10000
2120 # if defined __GLIBC__ && defined _STRING_H
2121 # define yystrlen strlen
2123 /* Return the length of YYSTR. */
2124 #if (defined __STDC__ || defined __C99__FUNC__ \
2125 || defined __cplusplus || defined _MSC_VER)
2127 yystrlen (const char *yystr
)
2135 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2143 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2144 # define yystpcpy stpcpy
2146 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2148 #if (defined __STDC__ || defined __C99__FUNC__ \
2149 || defined __cplusplus || defined _MSC_VER)
2151 yystpcpy (char *yydest
, const char *yysrc
)
2154 yystpcpy (yydest
, yysrc
)
2160 const char *yys
= yysrc
;
2162 while ((*yyd
++ = *yys
++) != '\0')
2171 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2172 quotes and backslashes, so that it's suitable for yyerror. The
2173 heuristic is that double-quoting is unnecessary unless the string
2174 contains an apostrophe, a comma, or backslash (other than
2175 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2176 null, do not copy; instead, return the length of what the result
2179 yytnamerr (char *yyres
, const char *yystr
)
2184 char const *yyp
= yystr
;
2191 goto do_not_strip_quotes
;
2195 goto do_not_strip_quotes
;
2208 do_not_strip_quotes
: ;
2212 return yystrlen (yystr
);
2214 return yystpcpy (yyres
, yystr
) - yyres
;
2218 /* Copy into YYRESULT an error message about the unexpected token
2219 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2220 including the terminating null byte. If YYRESULT is null, do not
2221 copy anything; just return the number of bytes that would be
2222 copied. As a special case, return 0 if an ordinary "syntax error"
2223 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2224 size calculation. */
2226 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2228 int yyn
= yypact
[yystate
];
2230 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2234 int yytype
= YYTRANSLATE (yychar
);
2235 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2236 YYSIZE_T yysize
= yysize0
;
2238 int yysize_overflow
= 0;
2239 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2240 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2244 /* This is so xgettext sees the translatable formats that are
2245 constructed on the fly. */
2246 YY_("syntax error, unexpected %s");
2247 YY_("syntax error, unexpected %s, expecting %s");
2248 YY_("syntax error, unexpected %s, expecting %s or %s");
2249 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2250 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2254 static char const yyunexpected
[] = "syntax error, unexpected %s";
2255 static char const yyexpecting
[] = ", expecting %s";
2256 static char const yyor
[] = " or %s";
2257 char yyformat
[sizeof yyunexpected
2258 + sizeof yyexpecting
- 1
2259 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2260 * (sizeof yyor
- 1))];
2261 char const *yyprefix
= yyexpecting
;
2263 /* Start YYX at -YYN if negative to avoid negative indexes in
2265 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2267 /* Stay within bounds of both yycheck and yytname. */
2268 int yychecklim
= YYLAST
- yyn
+ 1;
2269 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2272 yyarg
[0] = yytname
[yytype
];
2273 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2275 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2276 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2278 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2282 yyformat
[sizeof yyunexpected
- 1] = '\0';
2285 yyarg
[yycount
++] = yytname
[yyx
];
2286 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2287 yysize_overflow
|= (yysize1
< yysize
);
2289 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2293 yyf
= YY_(yyformat
);
2294 yysize1
= yysize
+ yystrlen (yyf
);
2295 yysize_overflow
|= (yysize1
< yysize
);
2298 if (yysize_overflow
)
2299 return YYSIZE_MAXIMUM
;
2303 /* Avoid sprintf, as that infringes on the user's name space.
2304 Don't have undefined behavior even if the translation
2305 produced a string with the wrong number of "%s"s. */
2306 char *yyp
= yyresult
;
2308 while ((*yyp
= *yyf
) != '\0')
2310 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2312 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2325 #endif /* YYERROR_VERBOSE */
2328 /*-----------------------------------------------.
2329 | Release the memory associated to this symbol. |
2330 `-----------------------------------------------*/
2333 #if (defined __STDC__ || defined __C99__FUNC__ \
2334 || defined __cplusplus || defined _MSC_VER)
2336 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
)
2339 yydestruct (yymsg
, yytype
, yyvaluep
)
2349 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2360 /* Prevent warnings from -Wmissing-prototypes. */
2362 #ifdef YYPARSE_PARAM
2363 #if defined __STDC__ || defined __cplusplus
2364 int yyparse (void *YYPARSE_PARAM
);
2368 #else /* ! YYPARSE_PARAM */
2369 #if defined __STDC__ || defined __cplusplus
2374 #endif /* ! YYPARSE_PARAM */
2378 /* The look-ahead symbol. */
2381 /* The semantic value of the look-ahead symbol. */
2384 /* Number of syntax errors so far. */
2393 #ifdef YYPARSE_PARAM
2394 #if (defined __STDC__ || defined __C99__FUNC__ \
2395 || defined __cplusplus || defined _MSC_VER)
2397 yyparse (void *YYPARSE_PARAM
)
2400 yyparse (YYPARSE_PARAM
)
2401 void *YYPARSE_PARAM
;
2403 #else /* ! YYPARSE_PARAM */
2404 #if (defined __STDC__ || defined __C99__FUNC__ \
2405 || defined __cplusplus || defined _MSC_VER)
2419 /* Number of tokens to shift before error messages enabled. */
2421 /* Look-ahead token as an internal (translated) token number. */
2424 /* Buffer for error messages, and its allocated size. */
2426 char *yymsg
= yymsgbuf
;
2427 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2430 /* Three stacks and their tools:
2431 `yyss': related to states,
2432 `yyvs': related to semantic values,
2433 `yyls': related to locations.
2435 Refer to the stacks thru separate pointers, to allow yyoverflow
2436 to reallocate them elsewhere. */
2438 /* The state stack. */
2439 yytype_int16 yyssa
[YYINITDEPTH
];
2440 yytype_int16
*yyss
= yyssa
;
2441 yytype_int16
*yyssp
;
2443 /* The semantic value stack. */
2444 YYSTYPE yyvsa
[YYINITDEPTH
];
2445 YYSTYPE
*yyvs
= yyvsa
;
2450 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2452 YYSIZE_T yystacksize
= YYINITDEPTH
;
2454 /* The variables used to return semantic value and location from the
2459 /* The number of symbols on the RHS of the reduced rule.
2460 Keep to zero when no symbol should be popped. */
2463 YYDPRINTF ((stderr
, "Starting parse\n"));
2468 yychar
= YYEMPTY
; /* Cause a token to be read. */
2470 /* Initialize stack pointers.
2471 Waste one element of value and location stack
2472 so that they stay on the same level as the state stack.
2473 The wasted elements are never initialized. */
2480 /*------------------------------------------------------------.
2481 | yynewstate -- Push a new state, which is found in yystate. |
2482 `------------------------------------------------------------*/
2484 /* In all cases, when you get here, the value and location stacks
2485 have just been pushed. So pushing a state here evens the stacks. */
2491 if (yyss
+ yystacksize
- 1 <= yyssp
)
2493 /* Get the current used size of the three stacks, in elements. */
2494 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2498 /* Give user a chance to reallocate the stack. Use copies of
2499 these so that the &'s don't force the real ones into
2501 YYSTYPE
*yyvs1
= yyvs
;
2502 yytype_int16
*yyss1
= yyss
;
2505 /* Each stack pointer address is followed by the size of the
2506 data in use in that stack, in bytes. This used to be a
2507 conditional around just the two extra args, but that might
2508 be undefined if yyoverflow is a macro. */
2509 yyoverflow (YY_("memory exhausted"),
2510 &yyss1
, yysize
* sizeof (*yyssp
),
2511 &yyvs1
, yysize
* sizeof (*yyvsp
),
2518 #else /* no yyoverflow */
2519 # ifndef YYSTACK_RELOCATE
2520 goto yyexhaustedlab
;
2522 /* Extend the stack our own way. */
2523 if (YYMAXDEPTH
<= yystacksize
)
2524 goto yyexhaustedlab
;
2526 if (YYMAXDEPTH
< yystacksize
)
2527 yystacksize
= YYMAXDEPTH
;
2530 yytype_int16
*yyss1
= yyss
;
2531 union yyalloc
*yyptr
=
2532 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2534 goto yyexhaustedlab
;
2535 YYSTACK_RELOCATE (yyss
);
2536 YYSTACK_RELOCATE (yyvs
);
2538 # undef YYSTACK_RELOCATE
2540 YYSTACK_FREE (yyss1
);
2543 #endif /* no yyoverflow */
2545 yyssp
= yyss
+ yysize
- 1;
2546 yyvsp
= yyvs
+ yysize
- 1;
2549 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2550 (unsigned long int) yystacksize
));
2552 if (yyss
+ yystacksize
- 1 <= yyssp
)
2556 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2565 /* Do appropriate processing given the current state. Read a
2566 look-ahead token if we need one and don't already have one. */
2568 /* First try to decide what to do without reference to look-ahead token. */
2569 yyn
= yypact
[yystate
];
2570 if (yyn
== YYPACT_NINF
)
2573 /* Not known => get a look-ahead token if don't already have one. */
2575 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
2576 if (yychar
== YYEMPTY
)
2578 YYDPRINTF ((stderr
, "Reading a token: "));
2582 if (yychar
<= YYEOF
)
2584 yychar
= yytoken
= YYEOF
;
2585 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2589 yytoken
= YYTRANSLATE (yychar
);
2590 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2593 /* If the proper action on seeing token YYTOKEN is to reduce or to
2594 detect an error, take that action. */
2596 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2601 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2610 /* Count tokens shifted since error; after three, turn off error
2615 /* Shift the look-ahead token. */
2616 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2618 /* Discard the shifted token unless it is eof. */
2619 if (yychar
!= YYEOF
)
2628 /*-----------------------------------------------------------.
2629 | yydefault -- do the default action for the current state. |
2630 `-----------------------------------------------------------*/
2632 yyn
= yydefact
[yystate
];
2638 /*-----------------------------.
2639 | yyreduce -- Do a reduction. |
2640 `-----------------------------*/
2642 /* yyn is the number of a rule to reduce with. */
2645 /* If YYLEN is nonzero, implement the default value of the action:
2648 Otherwise, the following line sets YYVAL to garbage.
2649 This behavior is undocumented and Bison
2650 users should not rely upon it. Assigning to YYVAL
2651 unconditionally makes the parser a bit smaller, and it avoids a
2652 GCC warning that YYVAL may be used uninitialized. */
2653 yyval
= yyvsp
[1-yylen
];
2656 YY_REDUCE_PRINT (yyn
);
2660 #line 159 "./yaccsrc.y"
2662 if ( get_options_flag( parser_data
.TSD
->currlevel
, EXT_CALLS_AS_FUNCS
)
2663 && !get_options_flag( parser_data
.TSD
->currlevel
, EXT_STRICT_ANSI
) )
2664 start_parendepth
= 1;
2666 start_parendepth
= 0;
2671 #line 169 "./yaccsrc.y"
2672 { (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) );
2673 (yyval
)->o
.last
= NULL
;
2674 EndProg( (yyval
) ) ; ;}
2678 #line 172 "./yaccsrc.y"
2679 { (yyval
) = (yyvsp
[(1) - (1)]);
2680 if ( (yyval
) != NULL
)
2681 (yyval
)->o
.last
= NULL
;
2682 EndProg( (yyval
) ); ;}
2686 #line 178 "./yaccsrc.y"
2687 { /* fixes bug 579711 */
2688 (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) ); ;}
2692 #line 180 "./yaccsrc.y"
2693 { (yyval
) = (yyvsp
[(1) - (1)]); ;}
2697 #line 183 "./yaccsrc.y"
2698 { /* fixes bug 579711 */
2699 (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) ); ;}
2703 #line 185 "./yaccsrc.y"
2704 { (yyval
) = (yyvsp
[(1) - (2)]); ;}
2708 #line 188 "./yaccsrc.y"
2709 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
2713 #line 189 "./yaccsrc.y"
2714 { exiterror( ERR_UNMATCHED_END
, 1 ); ;}
2718 #line 197 "./yaccsrc.y"
2719 { (yyval
) = (yyvsp
[(1) - (1)]); ;}
2723 #line 198 "./yaccsrc.y"
2724 { (yyval
) = NULL
; ;}
2728 #line 201 "./yaccsrc.y"
2729 { (yyval
) = optgluelast( (yyvsp
[(1) - (3)]), (yyvsp
[(3) - (3)]) ); ;}
2733 #line 202 "./yaccsrc.y"
2734 { (yyval
) = (yyvsp
[(2) - (2)]); ;}
2738 #line 205 "./yaccsrc.y"
2739 { (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) ); ;}
2743 #line 206 "./yaccsrc.y"
2744 { (yyval
) = (yyvsp
[(1) - (1)]); ;}
2748 #line 209 "./yaccsrc.y"
2749 { (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) ); ;}
2753 #line 210 "./yaccsrc.y"
2754 { (yyval
) = NULL
; ;}
2758 #line 217 "./yaccsrc.y"
2759 { tmpchr
=parser_data
.tstart
;
2760 tmplno
=parser_data
.tline
; ;}
2764 #line 221 "./yaccsrc.y"
2765 { (yyval
)=(yyvsp
[(2) - (2)]); ;}
2769 #line 224 "./yaccsrc.y"
2770 { (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) ); ;}
2774 #line 257 "./yaccsrc.y"
2775 { (yyval
) = makenode(X_CALL
,0) ;
2776 (yyval
)->lineno
= parser_data
.tline
;
2777 (yyval
)->charnr
= parser_data
.tstart
; ;}
2781 #line 261 "./yaccsrc.y"
2782 { (yyval
) = makenode(X_DO
,0) ;
2783 (yyval
)->lineno
= parser_data
.tline
;
2784 (yyval
)->charnr
= parser_data
.tstart
;
2789 #line 266 "./yaccsrc.y"
2790 { (yyval
) = makenode(X_EXIT
,0) ;
2791 (yyval
)->lineno
= parser_data
.tline
;
2792 (yyval
)->charnr
= parser_data
.tstart
; ;}
2796 #line 270 "./yaccsrc.y"
2797 { (yyval
) = makenode(X_IF
,0) ;
2798 (yyval
)->lineno
= parser_data
.tline
;
2799 (yyval
)->charnr
= parser_data
.tstart
;
2804 #line 275 "./yaccsrc.y"
2805 { (yyval
) = makenode(X_ITERATE
,0) ;
2806 (yyval
)->lineno
= parser_data
.tline
;
2807 (yyval
)->charnr
= parser_data
.tstart
; ;}
2811 #line 279 "./yaccsrc.y"
2812 { (yyval
) = makenode(X_LEAVE
,0) ;
2813 (yyval
)->lineno
= parser_data
.tline
;
2814 (yyval
)->charnr
= parser_data
.tstart
; ;}
2818 #line 283 "./yaccsrc.y"
2819 { (yyval
) = makenode(X_SAY
,0) ;
2820 (yyval
)->lineno
= parser_data
.tline
;
2821 (yyval
)->charnr
= parser_data
.tstart
; ;}
2825 #line 287 "./yaccsrc.y"
2826 { (yyval
) = makenode(X_RETURN
,0) ;
2827 (yyval
)->lineno
= parser_data
.tline
;
2828 (yyval
)->charnr
= parser_data
.tstart
; ;}
2832 #line 291 "./yaccsrc.y"
2833 { (yyval
) = makenode(X_ADDR_N
,0) ;
2834 (yyval
)->lineno
= parser_data
.tline
;
2835 (yyval
)->charnr
= parser_data
.tstart
; ;}
2839 #line 295 "./yaccsrc.y"
2840 { (yyval
) = makenode(X_PARSE_ARG
,0) ;
2841 (yyval
)->lineno
= parser_data
.tline
;
2842 (yyval
)->charnr
= parser_data
.tstart
; ;}
2846 #line 299 "./yaccsrc.y"
2847 { (yyval
) = makenode(X_DROP
,0) ;
2848 (yyval
)->lineno
= parser_data
.tline
;
2849 (yyval
)->charnr
= parser_data
.tstart
; ;}
2853 #line 303 "./yaccsrc.y"
2854 { (yyval
) = makenode(X_IPRET
,0) ;
2855 (yyval
)->lineno
= parser_data
.tline
;
2856 (yyval
)->charnr
= parser_data
.tstart
; ;}
2860 #line 307 "./yaccsrc.y"
2861 { (yyval
) = makenode(X_LABEL
,0) ;
2862 (yyval
)->lineno
= parser_data
.tline
;
2863 (yyval
)->charnr
= parser_data
.tstart
; ;}
2867 #line 311 "./yaccsrc.y"
2868 { (yyval
) = makenode(X_NULL
,0) ;
2869 (yyval
)->lineno
= parser_data
.tline
;
2870 (yyval
)->charnr
= parser_data
.tstart
; ;}
2874 #line 315 "./yaccsrc.y"
2875 { (yyval
) = makenode(0,0) ;
2876 (yyval
)->lineno
= parser_data
.tline
;
2877 (yyval
)->charnr
= parser_data
.tstart
; ;}
2881 #line 319 "./yaccsrc.y"
2882 { (yyval
) = makenode(X_OPTIONS
,0) ;
2883 (yyval
)->lineno
= parser_data
.tline
;
2884 (yyval
)->charnr
= parser_data
.tstart
; ;}
2888 #line 323 "./yaccsrc.y"
2889 { (yyval
) = makenode(0,0) ;
2890 (yyval
)->lineno
= parser_data
.tline
;
2891 (yyval
)->charnr
= parser_data
.tstart
; ;}
2895 #line 327 "./yaccsrc.y"
2896 { (yyval
) = makenode(X_PROC
,0) ;
2897 (yyval
)->lineno
= parser_data
.tline
;
2898 (yyval
)->charnr
= parser_data
.tstart
; ;}
2902 #line 331 "./yaccsrc.y"
2903 { (yyval
) = makenode(X_PULL
,0) ;
2904 (yyval
)->lineno
= parser_data
.tline
;
2905 (yyval
)->charnr
= parser_data
.tstart
; ;}
2909 #line 335 "./yaccsrc.y"
2910 { (yyval
) = makenode(X_PUSH
,0) ;
2911 (yyval
)->lineno
= parser_data
.tline
;
2912 (yyval
)->charnr
= parser_data
.tstart
; ;}
2916 #line 339 "./yaccsrc.y"
2917 { (yyval
) = makenode(X_QUEUE
,0) ;
2918 (yyval
)->lineno
= parser_data
.tline
;
2919 (yyval
)->charnr
= parser_data
.tstart
; ;}
2923 #line 343 "./yaccsrc.y"
2924 { (yyval
) = makenode(X_SELECT
,0) ;
2925 (yyval
)->lineno
= parser_data
.tline
;
2926 (yyval
)->charnr
= parser_data
.tstart
;
2931 #line 348 "./yaccsrc.y"
2932 { (yyval
) = makenode(X_SIG_LAB
,0) ;
2933 (yyval
)->lineno
= parser_data
.tline
;
2934 (yyval
)->charnr
= parser_data
.tstart
; ;}
2938 #line 352 "./yaccsrc.y"
2939 { (yyval
) = makenode(X_WHEN
,0) ;
2940 (yyval
)->lineno
= parser_data
.tline
;
2941 (yyval
)->charnr
= parser_data
.tstart
; ;}
2945 #line 356 "./yaccsrc.y"
2946 { (yyval
) = makenode(X_OTHERWISE
,0) ;
2947 (yyval
)->lineno
= parser_data
.tline
;
2948 (yyval
)->charnr
= parser_data
.tstart
; ;}
2952 #line 360 "./yaccsrc.y"
2953 { (yyval
) = makenode(X_TRACE
,0) ;
2954 (yyval
)->lineno
= parser_data
.tline
;
2955 (yyval
)->charnr
= parser_data
.tstart
; ;}
2959 #line 364 "./yaccsrc.y"
2960 { (yyval
) = makenode(X_UPPER_VAR
,0) ;
2961 (yyval
)->lineno
= parser_data
.tline
;
2962 (yyval
)->charnr
= parser_data
.tstart
; ;}
2966 #line 368 "./yaccsrc.y"
2967 { (yyval
) = current
= (yyvsp
[(1) - (1)]) ; ;}
2971 #line 372 "./yaccsrc.y"
2972 { current
->type
= X_ADDR_V
;
2973 current
->p
[0] = (yyvsp
[(2) - (3)]) ;
2974 current
->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
2978 #line 375 "./yaccsrc.y"
2979 { exiterror( ERR_STRING_EXPECTED
, 1, __reginatext
) ;;}
2983 #line 376 "./yaccsrc.y"
2984 { current
->type
= X_ADDR_S
; ;}
2988 #line 377 "./yaccsrc.y"
2989 { exiterror( ERR_STRING_EXPECTED
, 1, __reginatext
) ;;}
2993 #line 379 "./yaccsrc.y"
2994 { current
->name
= (streng
*)(yyvsp
[(1) - (3)]) ;
2995 current
->type
= X_ADDR_N
;
2996 current
->p
[0] = (yyvsp
[(2) - (3)]) ;
2997 current
->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
3001 #line 383 "./yaccsrc.y"
3002 { current
->type
= X_ADDR_V
;
3003 current
->p
[0] = (yyvsp
[(2) - (5)]) ;
3004 current
->p
[1] = (yyvsp
[(5) - (5)]) ;
3005 current
->u
.nonansi
= 1 ; ;}
3009 #line 389 "./yaccsrc.y"
3010 { (yyval
) = makenode( X_PARSE
, 2, (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) );
3011 (yyval
)->u
.parseflags
= PARSE_UPPER
;
3012 (yyval
)->lineno
= (yyvsp
[(1) - (2)])->lineno
;
3013 (yyval
)->charnr
= (yyvsp
[(1) - (2)])->charnr
; ;}
3017 #line 395 "./yaccsrc.y"
3018 { parendepth
= start_parendepth
; ;}
3022 #line 396 "./yaccsrc.y"
3023 { (yyval
) = (yyvsp
[(1) - (4)]);
3024 (yyval
)->p
[0] = (yyvsp
[(4) - (4)]);
3025 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (4)]);
3030 #line 400 "./yaccsrc.y"
3031 { parendepth
= start_parendepth
; ;}
3035 #line 401 "./yaccsrc.y"
3036 { (yyval
) = (yyvsp
[(1) - (4)]);
3037 (yyval
)->type
= X_EX_FUNC
;
3038 (yyval
)->p
[0] = (yyvsp
[(4) - (4)]);
3039 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (4)]);
3044 #line 406 "./yaccsrc.y"
3045 { exiterror( ERR_INV_SUBKEYWORD
, 1, "ERROR FAILURE HALT NOTREADY", __reginatext
) ;;}
3049 #line 407 "./yaccsrc.y"
3050 { exiterror( ERR_INV_SUBKEYWORD
, 2, "ERROR FAILURE HALT NOTREADY", __reginatext
) ;;}
3054 #line 408 "./yaccsrc.y"
3055 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3059 #line 409 "./yaccsrc.y"
3060 { exiterror( ERR_STRING_EXPECTED
, 3, __reginatext
) ;;}
3064 #line 411 "./yaccsrc.y"
3065 { (yyval
) = (yyvsp
[(1) - (4)]) ;
3066 (yyval
)->type
= X_CALL_SET
;
3067 (yyval
)->p
[0] = (yyvsp
[(2) - (4)]) ;
3068 (yyval
)->name
= (streng
*)(yyvsp
[(4) - (4)]) ;
3069 (yyval
)->p
[1] = (yyvsp
[(3) - (4)]) ; ;}
3073 #line 416 "./yaccsrc.y"
3074 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3075 (yyval
)->type
= X_CALL_SET
;
3076 (yyval
)->p
[0] = (yyvsp
[(2) - (3)]) ;
3077 (yyval
)->name
= NULL
;
3078 (yyval
)->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
3082 #line 421 "./yaccsrc.y"
3083 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3087 #line 422 "./yaccsrc.y"
3088 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3089 (yyval
)->type
= X_CALL_SET
;
3090 (yyval
)->p
[0] = (yyvsp
[(2) - (3)]) ;
3091 (yyval
)->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
3095 #line 428 "./yaccsrc.y"
3096 { (yyval
) = (yyvsp
[(1) - (1)]); ;}
3100 #line 429 "./yaccsrc.y"
3101 { exiterror( ERR_STRING_EXPECTED
, 2, __reginatext
);;}
3105 #line 432 "./yaccsrc.y"
3108 * "call_args" accepted probably with
3109 * surrounding parentheses. Strip them.
3111 (yyval
) = reduce_expr_list( (yyvsp
[(1) - (1)]),
3117 #line 440 "./yaccsrc.y"
3118 { exiterror(ERR_UNEXPECTED_PARAN
, 2); ;}
3122 #line 443 "./yaccsrc.y"
3123 { (yyval
) = makenode(X_COMMAND
,0) ;
3124 (yyval
)->charnr
= tmpchr
;
3125 (yyval
)->lineno
= tmplno
;
3126 (yyval
)->p
[0] = (yyvsp
[(1) - (1)]) ; ;}
3130 #line 449 "./yaccsrc.y"
3131 { (yyval
) = makenode(X_END
,0) ;
3132 (yyval
)->lineno
= parser_data
.tline
;
3133 (yyval
)->charnr
= parser_data
.tstart
;
3138 #line 455 "./yaccsrc.y"
3139 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3140 (yyval
)->name
= (streng
*)((yyvsp
[(2) - (2)])) ; ;}
3144 #line 457 "./yaccsrc.y"
3145 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3149 #line 458 "./yaccsrc.y"
3150 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3154 #line 462 "./yaccsrc.y"
3155 { (yyval
) = (yyvsp
[(1) - (6)]);
3156 (yyval
)->p
[0] = (yyvsp
[(2) - (6)]);
3157 (yyval
)->p
[1] = (yyvsp
[(3) - (6)]);
3158 (yyval
)->p
[2] = optgluelast( (yyvsp
[(4) - (6)]), (yyvsp
[(5) - (6)]) );
3159 if ( (yyval
)->p
[2] )
3160 (yyval
)->p
[2]->o
.last
= NULL
;
3161 (yyval
)->p
[3] = (yyvsp
[(6) - (6)]);
3162 if (((yyval
)->p
[0]==NULL
|| (yyval
)->p
[0]->name
==NULL
)
3163 && (yyval
)->p
[3]->name
)
3164 exiterror( ERR_UNMATCHED_END
, 0 );
3165 if (((yyval
)->p
[0])&&((yyval
)->p
[0]->name
)&&
3166 ((yyval
)->p
[3]->name
)&&
3167 (((yyval
)->p
[3]->name
->len
!= (yyval
)->p
[0]->name
->len
)||
3168 (strncmp((yyval
)->p
[3]->name
->value
,
3169 (yyval
)->p
[0]->name
->value
,
3170 (yyval
)->p
[0]->name
->len
))))
3171 exiterror( ERR_UNMATCHED_END
, 0 );
3176 #line 483 "./yaccsrc.y"
3177 { (yyval
) =makenode(X_REP
,4,(yyvsp
[(3) - (7)]),(yyvsp
[(5) - (7)]),(yyvsp
[(6) - (7)]),(yyvsp
[(7) - (7)])) ;
3178 (yyval
)->name
= (streng
*)(yyvsp
[(1) - (7)]) ;
3179 checkdosyntax((yyval
)) ; ;}
3183 #line 487 "./yaccsrc.y"
3184 { (yyval
) =makenode(X_REP
,3,(yyvsp
[(3) - (6)]),(yyvsp
[(5) - (6)]),(yyvsp
[(6) - (6)])) ;
3185 (yyval
)->name
= (streng
*)(yyvsp
[(1) - (6)]) ;
3186 checkdosyntax((yyval
)) ; ;}
3190 #line 491 "./yaccsrc.y"
3191 { (yyval
) = makenode(X_REP
,2,(yyvsp
[(3) - (5)]),(yyvsp
[(5) - (5)])) ;
3192 (yyval
)->name
= (streng
*)(yyvsp
[(1) - (5)]) ;
3193 checkdosyntax((yyval
)) ; ;}
3197 #line 494 "./yaccsrc.y"
3198 { (yyval
) = makenode(X_REP
,1,(yyvsp
[(3) - (4)])) ;
3199 (yyval
)->name
= (streng
*)(yyvsp
[(1) - (4)]) ;
3200 checkdosyntax((yyval
)) ; ;}
3204 #line 497 "./yaccsrc.y"
3205 { (yyval
) = makenode(X_REP_FOREVER
,0) ; ;}
3209 #line 498 "./yaccsrc.y"
3210 { exiterror( ERR_INV_SUBKEYWORD
, 16, "WHILE UNTIL", __reginatext
) ; ;}
3214 #line 499 "./yaccsrc.y"
3215 { (yyvsp
[(1) - (2)]) = makenode(X_DO_EXPR
,1,(yyvsp
[(1) - (2)])) ;
3216 (yyval
) = makenode(X_REP
,2,NULL
,(yyvsp
[(1) - (2)])) ; ;}
3220 #line 501 "./yaccsrc.y"
3221 { (yyval
) = NULL
; ;}
3225 #line 504 "./yaccsrc.y"
3226 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
3230 #line 505 "./yaccsrc.y"
3231 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
3235 #line 506 "./yaccsrc.y"
3236 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
3240 #line 509 "./yaccsrc.y"
3241 { SymbolDetect
|= SD_ADDRWITH
;
3242 (yyval
) = with
= makenode(X_ADDR_WITH
,0) ;
3243 (yyval
)->lineno
= parser_data
.tline
;
3244 (yyval
)->charnr
= parser_data
.tstart
; ;}
3248 #line 513 "./yaccsrc.y"
3250 SymbolDetect
&= ~SD_ADDRWITH
; ;}
3254 #line 515 "./yaccsrc.y"
3255 { (yyval
) = NULL
; ;}
3259 #line 518 "./yaccsrc.y"
3260 { (yyval
) = (yyvsp
[(2) - (2)]); ;}
3264 #line 519 "./yaccsrc.y"
3265 { exiterror( ERR_INV_SUBKEYWORD
, 5, __reginatext
) ; ;}
3269 #line 520 "./yaccsrc.y"
3270 { exiterror( ERR_INV_SUBKEYWORD
, 5, __reginatext
) ; ;}
3274 #line 526 "./yaccsrc.y"
3275 { exiterror( ERR_INV_SUBKEYWORD
, 5, __reginatext
) ; ;}
3279 #line 562 "./yaccsrc.y"
3280 { with
->p
[0] = (yyvsp
[(4) - (4)]); ;}
3284 #line 563 "./yaccsrc.y"
3285 { exiterror( ERR_INV_SUBKEYWORD
, 6, __reginatext
) ; ;}
3289 #line 566 "./yaccsrc.y"
3290 { with
->p
[1] = (yyvsp
[(4) - (4)]); ;}
3294 #line 567 "./yaccsrc.y"
3295 { exiterror( ERR_INV_SUBKEYWORD
, 7, __reginatext
) ; ;}
3299 #line 570 "./yaccsrc.y"
3300 { with
->p
[2] = (yyvsp
[(4) - (4)]); ;}
3304 #line 571 "./yaccsrc.y"
3305 { exiterror( ERR_INV_SUBKEYWORD
, 14, __reginatext
) ; ;}
3309 #line 574 "./yaccsrc.y"
3310 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3314 #line 575 "./yaccsrc.y"
3315 { (yyval
) = makenode(X_ADDR_WITH
, 0) ;
3316 (yyval
)->lineno
= parser_data
.tline
;
3317 (yyval
)->charnr
= parser_data
.tstart
; ;}
3321 #line 580 "./yaccsrc.y"
3322 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3326 #line 581 "./yaccsrc.y"
3327 { (yyval
) = (yyvsp
[(2) - (2)]) ;
3328 (yyval
)->u
.of
.append
= 1 ; ;}
3332 #line 583 "./yaccsrc.y"
3333 { exiterror( ERR_INV_SUBKEYWORD
, 8, __reginatext
) ; ;}
3337 #line 584 "./yaccsrc.y"
3338 { (yyval
) = (yyvsp
[(2) - (2)]) ; ;}
3342 #line 585 "./yaccsrc.y"
3343 { exiterror( ERR_INV_SUBKEYWORD
, 9, __reginatext
) ; ;}
3347 #line 586 "./yaccsrc.y"
3348 { (yyval
) = makenode(X_ADDR_WITH
, 0) ;
3349 (yyval
)->lineno
= parser_data
.tline
;
3350 (yyval
)->charnr
= parser_data
.tstart
; ;}
3354 #line 591 "./yaccsrc.y"
3355 { /* ANSI extension: nsimsymb is
3356 * used by the standard, but I think
3357 * there are no reasons why using
3358 * it here as a must. FGC
3360 (yyval
) = (yyvsp
[(2) - (2)]) ;
3361 (yyval
)->u
.of
.awt
= awtSTREAM
;
3362 SymbolDetect
|= SD_ADDRWITH
; ;}
3366 #line 599 "./yaccsrc.y"
3367 { exiterror( ERR_INVALID_OPTION
, 1, __reginatext
) ; ;}
3371 #line 600 "./yaccsrc.y"
3373 streng
*tmp
= (yyvsp
[(2) - (2)])->name
;
3377 * expect a single dot as the last character
3379 p
= (char *)memchr( tmp
->value
, '.', tmp
->len
);
3380 if ( p
!= tmp
->value
+ tmp
->len
- 1 )
3381 exiterror( ERR_INVALID_OPTION
, 3, __reginatext
);
3382 (yyval
) = (yyvsp
[(2) - (2)]) ;
3383 (yyval
)->u
.of
.awt
= awtSTEM
;
3384 SymbolDetect
|= SD_ADDRWITH
; ;}
3388 #line 613 "./yaccsrc.y"
3389 { exiterror( ERR_INVALID_OPTION
, 2, __reginatext
) ; ;}
3393 #line 614 "./yaccsrc.y"
3395 (yyval
) = (yyvsp
[(2) - (2)]) ;
3396 (yyval
)->u
.of
.awt
= awtLIFO
;
3397 SymbolDetect
|= SD_ADDRWITH
; ;}
3401 #line 618 "./yaccsrc.y"
3402 { exiterror( ERR_INVALID_OPTION
, 100, __reginatext
) ; ;}
3406 #line 619 "./yaccsrc.y"
3408 (yyval
) = (yyvsp
[(2) - (2)]) ;
3409 (yyval
)->u
.of
.awt
= awtFIFO
;
3410 SymbolDetect
|= SD_ADDRWITH
; ;}
3414 #line 623 "./yaccsrc.y"
3415 { exiterror( ERR_INVALID_OPTION
, 101, __reginatext
) ; ;}
3419 #line 626 "./yaccsrc.y"
3420 { SymbolDetect
&= ~SD_ADDRWITH
; ;}
3424 #line 627 "./yaccsrc.y"
3425 { (yyval
) = (yyvsp
[(3) - (3)]) ; ;}
3429 #line 630 "./yaccsrc.y"
3430 { SymbolDetect
&= ~SD_ADDRWITH
; ;}
3434 #line 631 "./yaccsrc.y"
3435 { (yyval
) = (yyvsp
[(3) - (3)]) ; ;}
3439 #line 638 "./yaccsrc.y"
3440 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3444 #line 639 "./yaccsrc.y"
3445 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3449 #line 642 "./yaccsrc.y"
3450 { (yyval
) = makenode(X_ADDR_WITH
, 0) ;
3451 (yyval
)->name
= (streng
*) (yyvsp
[(1) - (1)]) ;
3452 (yyval
)->lineno
= parser_data
.tline
;
3453 (yyval
)->charnr
= parser_data
.tstart
;
3454 (yyval
)->u
.of
.ant
= antSIMSYMBOL
;
3459 #line 650 "./yaccsrc.y"
3460 { (yyval
) = makenode(X_ADDR_WITH
, 0) ;
3461 (yyval
)->name
= (streng
*) (yyvsp
[(1) - (1)]) ;
3462 (yyval
)->lineno
= parser_data
.tline
;
3463 (yyval
)->charnr
= parser_data
.tstart
;
3464 (yyval
)->u
.of
.ant
= antSTRING
;
3469 #line 658 "./yaccsrc.y"
3470 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
3474 #line 661 "./yaccsrc.y"
3475 { (yyval
) = makenode(X_DO_TO
,1,(yyvsp
[(2) - (3)])) ; ;}
3479 #line 662 "./yaccsrc.y"
3480 { (yyval
) = makenode(X_DO_FOR
,1,(yyvsp
[(2) - (3)])) ; ;}
3484 #line 663 "./yaccsrc.y"
3485 { (yyval
) = makenode(X_DO_BY
,1,(yyvsp
[(2) - (3)])) ; ;}
3489 #line 666 "./yaccsrc.y"
3490 { (yyval
) = makenode(X_WHILE
,1,(yyvsp
[(2) - (3)])) ; ;}
3494 #line 667 "./yaccsrc.y"
3495 { (yyval
) = makenode(X_UNTIL
,1,(yyvsp
[(2) - (3)])) ; ;}
3499 #line 668 "./yaccsrc.y"
3500 { (yyval
) = NULL
; ;}
3504 #line 671 "./yaccsrc.y"
3505 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;}
3509 #line 672 "./yaccsrc.y"
3510 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3511 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3515 #line 676 "./yaccsrc.y"
3516 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;}
3520 #line 677 "./yaccsrc.y"
3521 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3522 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3526 #line 681 "./yaccsrc.y"
3527 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3528 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3532 #line 686 "./yaccsrc.y"
3533 { move_labels( (yyvsp
[(1) - (6)]), (yyvsp
[(6) - (6)]), level
- 1 );
3534 (yyval
) = (yyvsp
[(1) - (6)]);
3535 (yyval
)->p
[0] = optgluelast( (yyvsp
[(2) - (6)]), (yyvsp
[(3) - (6)]) );
3536 (yyval
)->p
[0]->o
.last
= NULL
;
3537 (yyval
)->p
[1] = optgluelast( (yyvsp
[(5) - (6)]), (yyvsp
[(6) - (6)]) );
3538 (yyval
)->p
[1]->o
.last
= NULL
;
3543 #line 694 "./yaccsrc.y"
3544 { move_labels( (yyvsp
[(1) - (9)]), (yyvsp
[(9) - (9)]), level
- 1 );
3545 (yyval
) = (yyvsp
[(1) - (9)]);
3546 (yyval
)->p
[0] = optgluelast( (yyvsp
[(2) - (9)]), (yyvsp
[(3) - (9)]) );
3547 (yyval
)->p
[0]->o
.last
= NULL
;
3548 (yyval
)->p
[1] = optgluelast( (yyvsp
[(5) - (9)]), (yyvsp
[(6) - (9)]) );
3549 (yyval
)->p
[1]->o
.last
= NULL
;
3550 (yyval
)->p
[2] = optgluelast( (yyvsp
[(8) - (9)]), (yyvsp
[(9) - (9)]) );
3551 (yyval
)->p
[2]->o
.last
= NULL
;
3556 #line 704 "./yaccsrc.y"
3557 { exiterror( ERR_INCOMPLETE_STRUCT
, 4 ) ;;}
3561 #line 706 "./yaccsrc.y"
3562 { exiterror( ERR_INCOMPLETE_STRUCT
, 3 ) ;;}
3566 #line 707 "./yaccsrc.y"
3567 { exiterror( ERR_INCOMPLETE_STRUCT
, 0 ) ;;}
3571 #line 708 "./yaccsrc.y"
3572 { exiterror( ERR_THEN_EXPECTED
, 1, parser_data
.if_linenr
, __reginatext
) ; ;}
3576 #line 711 "./yaccsrc.y"
3577 { exiterror( ERR_THEN_UNEXPECTED
, 1 ) ; ;}
3581 #line 714 "./yaccsrc.y"
3582 { exiterror( ERR_THEN_UNEXPECTED
, 2 ) ; ;}
3586 #line 717 "./yaccsrc.y"
3587 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3588 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3592 #line 722 "./yaccsrc.y"
3593 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3594 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
3598 #line 724 "./yaccsrc.y"
3599 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3603 #line 725 "./yaccsrc.y"
3604 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3608 #line 728 "./yaccsrc.y"
3609 { (yyval
) = (yyvsp
[(1) - (1)]) ;
3610 (yyval
)->u
.trace_only
=
3611 (level
== 0) ? 0 : 1;
3612 newlabel( (const tsd_t
*)parser_data
.TSD
,
3614 (yyvsp
[(1) - (1)]) ) ; ;}
3618 #line 736 "./yaccsrc.y"
3619 { (yyval
) = (yyvsp
[(1) - (1)]) ;
3620 (yyval
)->name
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
3624 #line 740 "./yaccsrc.y"
3625 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3626 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
3630 #line 742 "./yaccsrc.y"
3631 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3635 #line 743 "./yaccsrc.y"
3636 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3640 #line 746 "./yaccsrc.y"
3641 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3645 #line 747 "./yaccsrc.y"
3646 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3650 #line 750 "./yaccsrc.y"
3651 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3652 (yyval
)->type
= X_NUM_D
;
3653 (yyval
)->p
[0] = (yyvsp
[(3) - (3)]) ; ;}
3657 #line 753 "./yaccsrc.y"
3658 { (yyval
) = (yyvsp
[(1) - (2)]); (yyval
)->type
= X_NUM_DDEF
; ;}
3662 #line 754 "./yaccsrc.y"
3663 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3667 #line 755 "./yaccsrc.y"
3668 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3669 (yyval
)->type
= X_NUM_F
;
3670 (yyval
)->p
[0] = (yyvsp
[(3) - (3)]) ; ;}
3674 #line 758 "./yaccsrc.y"
3675 { /* NOTE! This clashes ANSI! */
3676 (yyval
) = (yyvsp
[(1) - (2)]) ; (yyval
)->type
=X_NUM_FRMDEF
;;}
3680 #line 760 "./yaccsrc.y"
3681 { (yyval
) = (yyvsp
[(1) - (4)]) ; (yyval
)->type
=X_NUM_V
;
3682 (yyval
)->p
[0] = (yyvsp
[(4) - (4)]) ; ;}
3686 #line 762 "./yaccsrc.y"
3687 { exiterror( ERR_INV_SUBKEYWORD
, 11, "ENGINEERING SCIENTIFIC", __reginatext
) ;;}
3691 #line 763 "./yaccsrc.y"
3692 { (yyval
) = (yyvsp
[(1) - (2)]); (yyval
)->type
= X_NUM_FDEF
;;}
3696 #line 764 "./yaccsrc.y"
3697 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3698 (yyval
)->type
= X_NUM_FUZZ
;
3699 (yyval
)->p
[0] = (yyvsp
[(3) - (3)]) ; ;}
3703 #line 767 "./yaccsrc.y"
3704 { exiterror( ERR_INV_SUBKEYWORD
, 15, "DIGITS FORM FUZZ", __reginatext
) ;;}
3708 #line 770 "./yaccsrc.y"
3709 { (yyval
) = makenode(X_NUM_SCI
,0) ; ;}
3713 #line 771 "./yaccsrc.y"
3714 { (yyval
) = makenode(X_NUM_ENG
,0) ; ;}
3718 #line 774 "./yaccsrc.y"
3719 { ((yyval
)=(yyvsp
[(1) - (2)]))->p
[0]=(yyvsp
[(2) - (2)]) ; ;}
3723 #line 778 "./yaccsrc.y"
3724 { (yyval
) = (yyvsp
[(1) - (4)]) ;
3725 (yyval
)->type
= X_PARSE
;
3726 (yyval
)->u
.parseflags
= (long) (yyvsp
[(2) - (4)]) ;
3727 (yyval
)->p
[0] = (yyvsp
[(3) - (4)]) ;
3728 (yyval
)->p
[1] = (yyvsp
[(4) - (4)]) ; ;}
3732 #line 784 "./yaccsrc.y"
3733 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3734 (yyval
)->type
= X_PARSE
;
3735 (yyval
)->u
.parseflags
= 0;
3736 (yyval
)->p
[0] = (yyvsp
[(2) - (3)]) ;
3737 (yyval
)->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
3741 #line 789 "./yaccsrc.y"
3742 { exiterror( ERR_INV_SUBKEYWORD
, 12, "ARG EXTERNAL LINEIN PULL SOURCE VAR VALUE VERSION", __reginatext
) ;;}
3746 #line 790 "./yaccsrc.y"
3747 { exiterror( ERR_INV_SUBKEYWORD
, 12, "ARG CASELESS EXTERNAL LINEIN LOWER PULL SOURCE UPPER VAR VALUE VERSION", __reginatext
) ;;}
3751 #line 793 "./yaccsrc.y"
3752 { (yyval
) = (nodeptr
) (PARSE_UPPER
|
3757 #line 795 "./yaccsrc.y"
3758 { (yyval
) = (nodeptr
) (PARSE_UPPER
|
3763 #line 797 "./yaccsrc.y"
3764 { (yyval
) = (nodeptr
) (PARSE_UPPER
|
3769 #line 799 "./yaccsrc.y"
3770 { (yyval
) = (nodeptr
) (PARSE_LOWER
|
3775 #line 801 "./yaccsrc.y"
3776 { (yyval
) = (nodeptr
) (PARSE_LOWER
|
3781 #line 803 "./yaccsrc.y"
3782 { (yyval
) = (nodeptr
) (PARSE_LOWER
|
3787 #line 805 "./yaccsrc.y"
3788 { (yyval
) = (nodeptr
) (PARSE_NORMAL
|
3793 #line 809 "./yaccsrc.y"
3794 { /* fixes bugs like bug 579711 */
3795 (yyval
) = optgluelast( (yyvsp
[(1) - (3)]), (yyvsp
[(3) - (3)]) ); ;}
3799 #line 811 "./yaccsrc.y"
3800 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3804 #line 814 "./yaccsrc.y"
3805 { (yyval
) = makenode(X_PARSE_ARG
,0) ; ;}
3809 #line 815 "./yaccsrc.y"
3810 { (yyval
) = makenode(X_PARSE_EXT
,0) ; ;}
3814 #line 816 "./yaccsrc.y"
3815 { (yyval
) = makenode(X_PARSE_EXT
,0) ; ;}
3819 #line 817 "./yaccsrc.y"
3820 { (yyval
) = makenode(X_PARSE_VER
,0) ; ;}
3824 #line 818 "./yaccsrc.y"
3825 { (yyval
) = makenode(X_PARSE_PULL
,0) ; ;}
3829 #line 819 "./yaccsrc.y"
3830 { (yyval
) = makenode(X_PARSE_SRC
,0) ; ;}
3834 #line 820 "./yaccsrc.y"
3835 { (yyval
) = makenode(X_PARSE_VAR
,0) ;
3836 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
3840 #line 822 "./yaccsrc.y"
3841 { (yyval
) = makenode(X_PARSE_VAL
,1,(yyvsp
[(2) - (3)])) ; ;}
3845 #line 823 "./yaccsrc.y"
3846 { exiterror( ERR_INVALID_TEMPLATE
, 3 ) ;;}
3850 #line 826 "./yaccsrc.y"
3851 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3855 #line 827 "./yaccsrc.y"
3856 { exiterror( ERR_INV_SUBKEYWORD
, 17, __reginatext
) ;;}
3860 #line 828 "./yaccsrc.y"
3861 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;}
3865 #line 829 "./yaccsrc.y"
3866 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;}
3870 #line 830 "./yaccsrc.y"
3871 { (yyval
) = (yyvsp
[(1) - (3)]) ;
3872 (yyval
)->p
[0] = (yyvsp
[(3) - (3)]) ; ;}
3876 #line 834 "./yaccsrc.y"
3877 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3878 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3882 #line 838 "./yaccsrc.y"
3883 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3884 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3888 #line 842 "./yaccsrc.y"
3889 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3890 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3894 #line 846 "./yaccsrc.y"
3895 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3896 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3900 #line 850 "./yaccsrc.y"
3901 { (yyval
) = (yyvsp
[(1) - (2)]) ;
3902 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
3906 #line 854 "./yaccsrc.y"
3907 { exiterror( ERR_UNMATCHED_END
, 0 ) ;;}
3911 #line 855 "./yaccsrc.y"
3912 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3916 #line 856 "./yaccsrc.y"
3921 #line 860 "./yaccsrc.y"
3922 { (yyval
) = (yyvsp
[(1) - (5)]);
3923 (yyval
)->p
[0] = optgluelast( (yyvsp
[(2) - (5)]), (yyvsp
[(3) - (5)]) );
3924 (yyval
)->p
[0]->o
.last
= NULL
;
3925 (yyval
)->p
[1] = (yyvsp
[(4) - (5)]); ;}
3929 #line 864 "./yaccsrc.y"
3930 { exiterror( ERR_WHEN_EXPECTED
, 0 ) ;;}
3934 #line 866 "./yaccsrc.y"
3935 { exiterror( ERR_WHEN_EXPECTED
, 0 ) ;;}
3939 #line 867 "./yaccsrc.y"
3940 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
3944 #line 868 "./yaccsrc.y"
3945 { exiterror( ERR_THEN_UNEXPECTED
, 0 ) ;;}
3949 #line 870 "./yaccsrc.y"
3950 { exiterror( ERR_INCOMPLETE_STRUCT
, 0 ) ;;}
3954 #line 873 "./yaccsrc.y"
3955 { (yyval
) = optgluelast( (yyvsp
[(1) - (2)]), (yyvsp
[(2) - (2)]) ); ;}
3959 #line 874 "./yaccsrc.y"
3960 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
3964 #line 875 "./yaccsrc.y"
3965 { exiterror( ERR_WHEN_EXPECTED
, 0 ) ;;}
3969 #line 879 "./yaccsrc.y"
3970 { (yyval
) = (yyvsp
[(1) - (6)]); /* fixes bugs like bug 579711 */
3971 (yyval
)->p
[0] = optgluelast( (yyvsp
[(2) - (6)]), (yyvsp
[(3) - (6)]) );
3972 (yyval
)->p
[0]->o
.last
= NULL
;
3973 (yyval
)->p
[1] = optgluelast( (yyvsp
[(5) - (6)]), (yyvsp
[(6) - (6)]) );
3974 (yyval
)->p
[1]->o
.last
= NULL
; ;}
3978 #line 885 "./yaccsrc.y"
3979 { exiterror( ERR_THEN_UNEXPECTED
, 0 ) ;;}
3983 #line 886 "./yaccsrc.y"
3984 { exiterror( ERR_THEN_EXPECTED
, 2, parser_data
.when_linenr
, __reginatext
) ; ;}
3988 #line 887 "./yaccsrc.y"
3989 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;}
3993 #line 894 "./yaccsrc.y"
3994 { exiterror( ERR_WHEN_UNEXPECTED
, 0 ); ;}
3998 #line 897 "./yaccsrc.y"
3999 { (yyval
) = (yyvsp
[(1) - (3)]);
4000 (yyval
)->p
[0] = optgluelast( (yyvsp
[(2) - (3)]), (yyvsp
[(3) - (3)]) );
4001 if ( (yyval
)->p
[0] )
4002 (yyval
)->p
[0]->o
.last
= NULL
; ;}
4006 #line 901 "./yaccsrc.y"
4007 { (yyval
) = makenode(X_NO_OTHERWISE
,0) ;
4008 (yyval
)->lineno
= parser_data
.tline
;
4009 (yyval
)->charnr
= parser_data
.tstart
; ;}
4013 #line 907 "./yaccsrc.y"
4014 { (yyval
) = (yyvsp
[(1) - (3)]) ;
4015 (yyval
)->type
= X_SIG_VAL
;
4016 (yyval
)->p
[0] = (yyvsp
[(3) - (3)]) ; ;}
4020 #line 910 "./yaccsrc.y"
4021 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
4025 #line 911 "./yaccsrc.y"
4026 { (yyval
) = (yyvsp
[(1) - (2)]) ;
4027 (yyval
)->name
= (streng
*)(yyvsp
[(2) - (2)]) ; ;}
4031 #line 913 "./yaccsrc.y"
4032 { exiterror( ERR_INV_SUBKEYWORD
, 3, "ERROR FAILURE HALT NOTREADY NOVALUE SYNTAX LOSTDIGITS", __reginatext
) ;;}
4036 #line 914 "./yaccsrc.y"
4037 { exiterror( ERR_INV_SUBKEYWORD
, 4, "ERROR FAILURE HALT NOTREADY NOVALUE SYNTAX LOSTDIGITS", __reginatext
) ;;}
4041 #line 915 "./yaccsrc.y"
4042 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
4046 #line 916 "./yaccsrc.y"
4047 { exiterror( ERR_STRING_EXPECTED
, 3, __reginatext
) ;;}
4051 #line 918 "./yaccsrc.y"
4052 { (yyval
) = (yyvsp
[(1) - (4)]) ;
4053 (yyval
)->type
= X_SIG_SET
;
4054 (yyval
)->p
[0] = (yyvsp
[(2) - (4)]) ;
4055 (yyval
)->name
= (streng
*)(yyvsp
[(4) - (4)]) ;
4056 (yyval
)->p
[1] = (yyvsp
[(3) - (4)]) ; ;}
4060 #line 923 "./yaccsrc.y"
4061 { (yyval
) = (yyvsp
[(1) - (3)]) ;
4062 (yyval
)->type
= X_SIG_SET
;
4063 (yyval
)->p
[0] = (yyvsp
[(2) - (3)]) ;
4064 (yyval
)->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
4068 #line 927 "./yaccsrc.y"
4069 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
4073 #line 928 "./yaccsrc.y"
4074 { (yyval
) = (yyvsp
[(1) - (3)]) ;
4075 (yyval
)->type
= X_SIG_SET
;
4076 (yyval
)->p
[0] = (yyvsp
[(2) - (3)]) ;
4077 (yyval
)->p
[1] = (yyvsp
[(3) - (3)]) ; ;}
4081 #line 934 "./yaccsrc.y"
4082 { (yyval
) = (yyvsp
[(1) - (1)]); ;}
4086 #line 935 "./yaccsrc.y"
4087 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4091 #line 936 "./yaccsrc.y"
4092 { exiterror( ERR_STRING_EXPECTED
, 4, __reginatext
);;}
4096 #line 939 "./yaccsrc.y"
4097 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
);;}
4101 #line 940 "./yaccsrc.y"
4102 { exiterror( ERR_STRING_EXPECTED
, 3, __reginatext
) ;;}
4106 #line 943 "./yaccsrc.y"
4107 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4111 #line 944 "./yaccsrc.y"
4112 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4116 #line 947 "./yaccsrc.y"
4117 { (yyval
) = makenode(X_ON
,0) ; ;}
4121 #line 950 "./yaccsrc.y"
4122 { (yyval
) = makenode(X_OFF
,0) ; ;}
4126 #line 953 "./yaccsrc.y"
4127 { (yyval
) = makenode(X_S_ERROR
,0) ; ;}
4131 #line 954 "./yaccsrc.y"
4132 { (yyval
) = makenode(X_S_HALT
,0) ; ;}
4136 #line 955 "./yaccsrc.y"
4137 { (yyval
) = makenode(X_S_NOTREADY
,0) ; ;}
4141 #line 956 "./yaccsrc.y"
4142 { (yyval
) = makenode(X_S_FAILURE
,0) ; ;}
4146 #line 959 "./yaccsrc.y"
4147 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
4151 #line 960 "./yaccsrc.y"
4152 { (yyval
) = makenode(X_S_NOVALUE
,0) ; ;}
4156 #line 961 "./yaccsrc.y"
4157 { (yyval
) = makenode(X_S_SYNTAX
,0) ; ;}
4161 #line 962 "./yaccsrc.y"
4162 { (yyval
) = makenode(X_S_LOSTDIGITS
,0) ; ;}
4166 #line 965 "./yaccsrc.y"
4167 { (yyval
) = (yyvsp
[(1) - (3)]) ;
4168 (yyval
)->p
[0] = (yyvsp
[(3) - (3)]) ; ;}
4172 #line 967 "./yaccsrc.y"
4173 { (yyval
) = (yyvsp
[(1) - (2)]) ;
4174 (yyval
)->p
[0] = (yyvsp
[(2) - (2)]) ; ;}
4178 #line 969 "./yaccsrc.y"
4179 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;}
4183 #line 970 "./yaccsrc.y"
4184 { (yyval
) = (yyvsp
[(1) - (2)]) ;
4185 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
4189 #line 974 "./yaccsrc.y"
4190 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4194 #line 978 "./yaccsrc.y"
4195 { (yyval
) = (yyvsp
[(1) - (2)]) ;
4196 (yyval
)->p
[1] = (yyvsp
[(2) - (2)]) ;
4198 * An assignment is a numerical
4199 * assignment if and only if we have
4200 * to do a numerical operation, which
4201 * is equivalent to the existence of
4202 * one more argument to $2.
4203 * This fixes bug 720166.
4205 if ((yyvsp
[(2) - (2)]) &&
4206 (yyvsp
[(2) - (2)])->p
[0] &&
4207 gettypeof((yyvsp
[(2) - (2)])) == IS_A_NUMBER
)
4208 (yyval
)->type
= X_NASSIGN
; ;}
4212 #line 994 "./yaccsrc.y"
4213 { (yyval
) = makenode(X_ASSIGN
,0) ;
4214 (yyval
)->charnr
= parser_data
.tstart
;
4215 (yyval
)->lineno
= parser_data
.tline
;
4216 (yyval
)->p
[0] = (nodeptr
)create_head( (const char *)retvalue
); ;}
4220 #line 1001 "./yaccsrc.y"
4221 { /* We have to accept exprs here even
4222 * if we just want to accept
4223 * '(' expr ')' only. We do this
4225 * "call '(' exprs ')'" too.
4226 * This kann happen only if the
4227 * related control flag parendepth is
4228 * set. But since the parentheses are
4229 * voided just for the outer ones, we
4230 * can reduce the allowness level.
4231 * We don't have to set it back,
4232 * because the outer parentheses
4233 * either is THE one we look for or
4234 * none. This allows a faster error
4235 * detection and that's a good goal.*/
4240 #line 1017 "./yaccsrc.y"
4242 if ( parendepth
== 1 )
4244 /* exprs on as-is basis */
4245 (yyval
) = (yyvsp
[(3) - (3)]);
4249 /* Must already be a plain expr.
4250 * The nexpr part of exprs detects
4252 (yyval
) = reduce_expr_list( (yyvsp
[(3) - (3)]),
4254 if ( (yyval
) == (yyvsp
[(3) - (3)]) )
4255 exiterror( ERR_INTERPRETER_FAILURE
, 1, __FILE__
, __LINE__
, "Reduction of `exprs' not happened." );
4261 #line 1034 "./yaccsrc.y"
4266 #line 1035 "./yaccsrc.y"
4267 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "+" );
4268 (yyval
) = makenode( X_PLUSS
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4272 #line 1037 "./yaccsrc.y"
4277 #line 1038 "./yaccsrc.y"
4278 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "-" );
4279 (yyval
) = makenode( X_MINUS
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4283 #line 1040 "./yaccsrc.y"
4288 #line 1041 "./yaccsrc.y"
4289 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "*" );
4290 (yyval
) = makenode( X_MULT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4294 #line 1043 "./yaccsrc.y"
4295 { exiterror( ERR_INVALID_EXPRESSION
, 1, "*" ); ;}
4299 #line 1044 "./yaccsrc.y"
4304 #line 1045 "./yaccsrc.y"
4305 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "/" );
4306 (yyval
) = makenode( X_DEVIDE
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4310 #line 1047 "./yaccsrc.y"
4311 { exiterror( ERR_INVALID_EXPRESSION
, 1, "/" ); ;}
4315 #line 1048 "./yaccsrc.y"
4320 #line 1049 "./yaccsrc.y"
4321 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "//" );
4322 (yyval
) = makenode( X_MODULUS
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4326 #line 1051 "./yaccsrc.y"
4327 { exiterror( ERR_INVALID_EXPRESSION
, 1, "//" ); ;}
4331 #line 1052 "./yaccsrc.y"
4336 #line 1053 "./yaccsrc.y"
4337 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "%" );
4338 (yyval
) = makenode( X_INTDIV
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4342 #line 1055 "./yaccsrc.y"
4343 { exiterror( ERR_INVALID_EXPRESSION
, 1, "%" ); ;}
4347 #line 1056 "./yaccsrc.y"
4352 #line 1057 "./yaccsrc.y"
4353 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "|" );
4354 (yyval
) = makenode( X_LOG_OR
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4358 #line 1059 "./yaccsrc.y"
4359 { exiterror( ERR_INVALID_EXPRESSION
, 1, "|" ); ;}
4363 #line 1060 "./yaccsrc.y"
4368 #line 1061 "./yaccsrc.y"
4369 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "&" );
4370 (yyval
) = makenode( X_LOG_AND
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4374 #line 1063 "./yaccsrc.y"
4375 { exiterror( ERR_INVALID_EXPRESSION
, 1, "&" ); ;}
4379 #line 1064 "./yaccsrc.y"
4384 #line 1065 "./yaccsrc.y"
4385 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "&&" );
4386 (yyval
) = makenode( X_LOG_XOR
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4390 #line 1067 "./yaccsrc.y"
4391 { exiterror( ERR_INVALID_EXPRESSION
, 1, "&&" ); ;}
4395 #line 1068 "./yaccsrc.y"
4400 #line 1069 "./yaccsrc.y"
4401 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "**" );
4402 (yyval
) = makenode( X_EXP
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4406 #line 1071 "./yaccsrc.y"
4407 { exiterror( ERR_INVALID_EXPRESSION
, 1, "**" ); ;}
4411 #line 1072 "./yaccsrc.y"
4416 #line 1073 "./yaccsrc.y"
4417 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), " " );
4418 (yyval
) = makenode( X_SPACE
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4422 #line 1075 "./yaccsrc.y"
4423 { exiterror( ERR_INVALID_EXPRESSION
, 1, " " ); ;}
4427 #line 1076 "./yaccsrc.y"
4432 #line 1077 "./yaccsrc.y"
4433 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "||" );
4434 (yyval
) = makenode( X_CONCAT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4438 #line 1079 "./yaccsrc.y"
4439 { exiterror( ERR_INVALID_EXPRESSION
, 1, "||" ); ;}
4443 #line 1080 "./yaccsrc.y"
4444 { AUTO_REDUCE( (yyvsp
[(2) - (2)]), "\\" );
4445 (yyval
) = makenode( X_LOG_NOT
, 1, (yyvsp
[(2) - (2)]) ); ;}
4449 #line 1082 "./yaccsrc.y"
4450 { exiterror( ERR_INVALID_EXPRESSION
, 1, "\\" ); ;}
4454 #line 1083 "./yaccsrc.y"
4459 #line 1084 "./yaccsrc.y"
4460 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "=" );
4461 (yyval
) = makenode( X_EQUAL
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
4462 transform( (yyval
) ); ;}
4466 #line 1087 "./yaccsrc.y"
4467 { exiterror( ERR_INVALID_EXPRESSION
, 1, "=" ); ;}
4471 #line 1088 "./yaccsrc.y"
4476 #line 1089 "./yaccsrc.y"
4477 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), ">=" );
4478 (yyval
) = makenode( X_GTE
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
4479 transform( (yyval
) ) ; ;}
4483 #line 1092 "./yaccsrc.y"
4484 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">=" ); ;}
4488 #line 1093 "./yaccsrc.y"
4493 #line 1094 "./yaccsrc.y"
4494 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "<=" );
4495 (yyval
) = makenode( X_LTE
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
4496 transform( (yyval
) ) ; ;}
4500 #line 1097 "./yaccsrc.y"
4501 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<=" ); ;}
4505 #line 1098 "./yaccsrc.y"
4510 #line 1099 "./yaccsrc.y"
4511 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), ">" );
4512 (yyval
) = makenode( X_GT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
4513 transform( (yyval
) ) ; ;}
4517 #line 1102 "./yaccsrc.y"
4518 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">" ); ;}
4522 #line 1103 "./yaccsrc.y"
4527 #line 1104 "./yaccsrc.y"
4528 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "<" );
4529 (yyval
) = makenode( X_LT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
4530 transform( (yyval
) ) ; ;}
4534 #line 1107 "./yaccsrc.y"
4535 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<" ); ;}
4539 #line 1108 "./yaccsrc.y"
4544 #line 1109 "./yaccsrc.y"
4545 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "\\=" );
4546 (yyval
) = makenode( X_DIFF
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
4547 transform( (yyval
) ) ; ;}
4551 #line 1112 "./yaccsrc.y"
4552 { exiterror( ERR_INVALID_EXPRESSION
, 1, "\\=" ); ;}
4556 #line 1113 "./yaccsrc.y"
4561 #line 1114 "./yaccsrc.y"
4562 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "==" );
4563 (yyval
) = makenode( X_S_EQUAL
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4567 #line 1116 "./yaccsrc.y"
4568 { exiterror( ERR_INVALID_EXPRESSION
, 1, "==" ); ;}
4572 #line 1117 "./yaccsrc.y"
4577 #line 1118 "./yaccsrc.y"
4578 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "\\==" );
4579 (yyval
) = makenode( X_S_DIFF
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4583 #line 1120 "./yaccsrc.y"
4584 { exiterror( ERR_INVALID_EXPRESSION
, 1, "\\==" ); ;}
4588 #line 1121 "./yaccsrc.y"
4593 #line 1122 "./yaccsrc.y"
4594 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), ">>" );
4595 (yyval
) = makenode( X_S_GT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4599 #line 1124 "./yaccsrc.y"
4600 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">>" ); ;}
4604 #line 1125 "./yaccsrc.y"
4609 #line 1126 "./yaccsrc.y"
4610 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "<<" );
4611 (yyval
) = makenode( X_S_LT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4615 #line 1128 "./yaccsrc.y"
4616 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<<" ); ;}
4620 #line 1129 "./yaccsrc.y"
4625 #line 1130 "./yaccsrc.y"
4626 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "\\>>" );
4627 (yyval
) = makenode( X_S_NGT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4631 #line 1132 "./yaccsrc.y"
4632 { exiterror( ERR_INVALID_EXPRESSION
, 1, "\\>>" ); ;}
4636 #line 1133 "./yaccsrc.y"
4641 #line 1134 "./yaccsrc.y"
4642 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "\\<<" );
4643 (yyval
) = makenode( X_S_NLT
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4647 #line 1136 "./yaccsrc.y"
4648 { exiterror( ERR_INVALID_EXPRESSION
, 1, "\\<<" ); ;}
4652 #line 1137 "./yaccsrc.y"
4657 #line 1138 "./yaccsrc.y"
4658 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), ">>=" );
4659 (yyval
) = makenode( X_S_GTE
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4663 #line 1140 "./yaccsrc.y"
4664 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">>=" ); ;}
4668 #line 1141 "./yaccsrc.y"
4673 #line 1142 "./yaccsrc.y"
4674 { parendepth
++; AUTO_REDUCE( (yyvsp
[(1) - (4)]), "<<=" );
4675 (yyval
) = makenode( X_S_LTE
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) ); ;}
4679 #line 1144 "./yaccsrc.y"
4680 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<<=" ); ;}
4684 #line 1145 "./yaccsrc.y"
4685 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
4689 #line 1146 "./yaccsrc.y"
4690 { (yyval
) = makenode( X_STRING
, 0 );
4691 (yyval
)->name
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4695 #line 1148 "./yaccsrc.y"
4696 { (yyval
) = makenode( X_STRING
, 0 );
4697 (yyval
)->name
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
4698 memcpy((yyval
)->name
->value
,retvalue
,
4699 (yyval
)->name
->len
=retlength
); ;}
4703 #line 1152 "./yaccsrc.y"
4704 { (yyval
) = makenode( X_STRING
, 0 );
4705 (yyval
)->name
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
4706 memcpy((yyval
)->name
->value
,retvalue
,
4707 (yyval
)->name
->len
=retlength
); ;}
4711 #line 1156 "./yaccsrc.y"
4712 { (yyval
) = makenode( X_STRING
, 0 );
4713 (yyval
)->name
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4717 #line 1158 "./yaccsrc.y"
4718 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
4722 #line 1159 "./yaccsrc.y"
4723 { AUTO_REDUCE( (yyvsp
[(2) - (2)]), nullptr );
4724 (yyval
) = makenode( X_U_PLUSS
, 1, (yyvsp
[(2) - (2)]) ); ;}
4728 #line 1161 "./yaccsrc.y"
4729 { AUTO_REDUCE( (yyvsp
[(2) - (2)]), nullptr );
4730 (yyval
) = makenode( X_U_MINUS
, 1, (yyvsp
[(2) - (2)]) ); ;}
4734 #line 1163 "./yaccsrc.y"
4735 { exiterror( ERR_INVALID_EXPRESSION
, 1, __reginatext
); ;}
4739 #line 1164 "./yaccsrc.y"
4740 { exiterror( ERR_INVALID_EXPRESSION
, 1, __reginatext
); ;}
4744 #line 1167 "./yaccsrc.y"
4745 { (yyval
) = (yyvsp
[(1) - (2)]); ;}
4749 #line 1168 "./yaccsrc.y"
4750 { exiterror( ERR_UNMATCHED_PARAN
, 0 ); ;}
4754 #line 1169 "./yaccsrc.y"
4755 { exiterror( ERR_UNMATCHED_PARAN
, 0 ); ;}
4759 #line 1172 "./yaccsrc.y"
4760 { (yyval
) = (nodeptr
)create_head( (const char *)retvalue
) ; ;}
4764 #line 1176 "./yaccsrc.y"
4765 { (yyval
) = makenode(X_EX_FUNC
,1,(yyvsp
[(2) - (2)])) ;
4766 (yyval
)->name
= (streng
*)(yyvsp
[(1) - (2)]) ; ;}
4770 #line 1178 "./yaccsrc.y"
4771 { (yyval
) = makenode(X_IN_FUNC
,1,(yyvsp
[(2) - (2)])) ;
4772 (yyval
)->name
= (streng
*)(yyvsp
[(1) - (2)]) ; ;}
4776 #line 1182 "./yaccsrc.y"
4777 { /* ugly fake preservs parendepth */
4778 (yyval
) = (YYSTYPE
) (long) parendepth
;
4783 #line 1185 "./yaccsrc.y"
4784 { parendepth
= (long) (yyval
);
4785 (yyval
) = (yyvsp
[(2) - (2)]); ;}
4789 #line 1189 "./yaccsrc.y"
4790 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4794 #line 1192 "./yaccsrc.y"
4795 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4799 #line 1195 "./yaccsrc.y"
4800 { (yyval
) =makenode(X_TPL_SOLID
,3,(yyvsp
[(1) - (3)]),(yyvsp
[(2) - (3)]),(yyvsp
[(3) - (3)]));;}
4804 #line 1196 "./yaccsrc.y"
4805 { (yyval
) =makenode(X_TPL_SOLID
,1,(yyvsp
[(1) - (1)])) ; ;}
4809 #line 1197 "./yaccsrc.y"
4810 { exiterror( ERR_INVALID_TEMPLATE
, 1, __reginatext
) ;;}
4814 #line 1200 "./yaccsrc.y"
4815 { (yyval
) = makenode(X_NEG_OFFS
,0) ;
4816 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
4820 #line 1202 "./yaccsrc.y"
4821 { (yyval
) = makenode(X_POS_OFFS
,0) ;
4822 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
4826 #line 1204 "./yaccsrc.y"
4827 { (yyval
) = makenode(X_ABS_OFFS
,0) ;
4828 (yyval
)->name
= (streng
*) (yyvsp
[(1) - (1)]) ; ;}
4832 #line 1206 "./yaccsrc.y"
4833 { (yyval
) = makenode(X_ABS_OFFS
,0) ;
4834 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (2)]) ; ;}
4838 #line 1208 "./yaccsrc.y"
4839 { (yyval
) = makenode(X_TPL_VAR
,0) ;
4840 (yyval
)->p
[0] = (yyvsp
[(2) - (3)]) ; ;}
4844 #line 1210 "./yaccsrc.y"
4845 { (yyval
) = makenode(X_NEG_OFFS
,0) ;
4846 (yyval
)->p
[0] = (yyvsp
[(3) - (4)]) ; ;}
4850 #line 1212 "./yaccsrc.y"
4851 { (yyval
) = makenode(X_POS_OFFS
,0) ;
4852 (yyval
)->p
[0] = (yyvsp
[(3) - (4)]) ; ;}
4856 #line 1214 "./yaccsrc.y"
4857 { (yyval
) = makenode(X_ABS_OFFS
,0) ;
4858 (yyval
)->p
[0] = (yyvsp
[(3) - (4)]) ; ;}
4862 #line 1216 "./yaccsrc.y"
4863 { (yyval
) = makenode(X_TPL_MVE
,0) ;
4864 (yyval
)->name
= (streng
*) (yyvsp
[(1) - (1)]) ; ;}
4868 #line 1220 "./yaccsrc.y"
4869 { (yyval
) = (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4873 #line 1221 "./yaccsrc.y"
4874 { streng
*sptr
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ;
4875 if (myisnumber(parser_data
.TSD
, sptr
))
4877 exiterror( ERR_INVALID_INTEGER
, 4, sptr
->value
) ;
4880 exiterror( ERR_INVALID_TEMPLATE
, 0 ) ;;}
4884 #line 1230 "./yaccsrc.y"
4885 { (yyval
) = (nodeptr
) Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;}
4889 #line 1231 "./yaccsrc.y"
4890 { streng
*sptr
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
4891 memcpy(sptr
->value
,retvalue
,
4892 sptr
->len
=retlength
) ;
4893 (yyval
) = (nodeptr
) sptr
; ;}
4897 #line 1235 "./yaccsrc.y"
4898 { streng
*sptr
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
4899 memcpy(sptr
->value
,retvalue
,
4900 sptr
->len
=retlength
) ;
4901 (yyval
) = (nodeptr
) sptr
; ;}
4905 #line 1241 "./yaccsrc.y"
4906 { (yyval
) = makenode(X_TPL_POINT
,1,(yyvsp
[(2) - (2)])) ; ;}
4910 #line 1242 "./yaccsrc.y"
4911 { (yyval
) = makenode(X_TPL_SYMBOL
,2,(yyvsp
[(2) - (2)]),(yyvsp
[(1) - (2)])) ; ;}
4915 #line 1243 "./yaccsrc.y"
4916 { (yyval
) = NULL
; ;}
4920 #line 1253 "./yaccsrc.y"
4926 * "x = f( ( x,. b ) )",
4927 * "x = f( ( ,. b ) )" */
4928 if ( parendepth
< 0 )
4929 exiterror( ERR_UNEXPECTED_PARAN
, 1 );
4931 /* With call being the extended kind
4932 * of CALL we may have:
4933 * "x = f( (a),. b )",
4942 * "call s( (a),. b )",
4943 * "call s( a,. b )",
4945 * "call s (a,a),. b",
4949 * detect "(a),." and transform it
4951 (yyvsp
[(1) - (2)]) = reduce_expr_list( (yyvsp
[(1) - (2)]),
4954 /* detect "call s (a,b),. b" and
4955 * "call s (),. b", but every list on
4956 * the left side of "," is wrong, so
4957 * complain about every exprlist. */
4958 if ( IS_EXPRLIST( (yyvsp
[(1) - (2)]) ) )
4959 exiterror( ERR_UNEXPECTED_PARAN
, 1 );
4961 (yyvsp
[(1) - (2)]) = reduce_expr_list( (yyvsp
[(1) - (2)]),
4967 #line 1296 "./yaccsrc.y"
4973 assert( IS_EXPRLIST( (yyvsp
[(4) - (4)]) ) );
4976 if ( IS_EXPRLIST( (yyvsp
[(4) - (4)])->p
[0] )
4977 && ( (yyvsp
[(4) - (4)])->p
[1] == NULL
)
4978 && ( (yyvsp
[(4) - (4)])->p
[0]->p
[0] == NULL
) )
4979 exiterror( ERR_UNEXPECTED_PARAN
, 0 );
4981 /* detect ",(a,b)." */
4982 if ( IS_EXPRLIST( (yyvsp
[(4) - (4)])->p
[0] )
4983 && ( (yyvsp
[(4) - (4)])->p
[1] == NULL
)
4984 && IS_EXPRLIST( (yyvsp
[(4) - (4)])->p
[0]->p
[1] ) )
4985 exiterror( ERR_UNEXPECTED_PARAN
, 1 );
4987 /* detect ",(a)." and transform it
4989 (yyvsp
[(4) - (4)]) = reduce_expr_list( (yyvsp
[(4) - (4)]),
4991 assert( IS_EXPRLIST( (yyvsp
[(4) - (4)]) ) );
4993 /* Detect something like
4994 * "call s (a,b)+1" */
4995 curr
= (yyvsp
[(4) - (4)])->p
[0];
4996 if ( ( curr
!= NULL
)
4997 && !IS_EXPRLIST( curr
)
4998 && !IS_FUNCTION( curr
)
4999 && ( IS_EXPRLIST( curr
->p
[0] )
5000 || IS_EXPRLIST( curr
->p
[1] ) ) )
5001 exiterror( ERR_INVALID_EXPRESSION
, 0 );
5003 (yyval
) = makenode( X_EXPRLIST
, 2, (yyvsp
[(1) - (4)]), (yyvsp
[(4) - (4)]) );
5004 checkconst( (yyval
) ); ;}
5008 #line 1333 "./yaccsrc.y"
5014 if ( ( parendepth
< 0 ) && ( (yyvsp
[(1) - (1)]) == NULL
) )
5015 exiterror( ERR_UNEXPECTED_PARAN
, 0 );
5017 /* With call being the extended kind
5018 * of CALL we may have:
5037 * "call s (a)+1, .",
5040 * "call s (a), (a).",
5043 * "call s ( a, . )",
5044 * "call s ( a, b. )" */
5046 (yyvsp
[(1) - (1)]) = reduce_expr_list( (yyvsp
[(1) - (1)]),
5048 (yyval
) = makenode( X_EXPRLIST
, 1, (yyvsp
[(1) - (1)]) );
5049 checkconst( (yyval
) );
5054 #line 1377 "./yaccsrc.y"
5055 { (yyval
) = (yyvsp
[(1) - (1)]) ; ;}
5059 #line 1378 "./yaccsrc.y"
5060 { (yyval
) = NULL
; ;}
5064 #line 1381 "./yaccsrc.y"
5065 { (yyval
) = makenode(X_SIM_SYMBOL
,1,(yyvsp
[(2) - (2)])) ;
5066 (yyval
)->name
= (streng
*) (yyvsp
[(1) - (2)]) ; ;}
5070 #line 1383 "./yaccsrc.y"
5071 { (yyval
) = makenode(X_SIM_SYMBOL
,0) ;
5072 (yyval
)->name
= (streng
*) (yyvsp
[(1) - (1)]) ; ;}
5076 #line 1385 "./yaccsrc.y"
5077 { (yyval
) = makenode(X_IND_SYMBOL
,1,(yyvsp
[(4) - (4)])) ;
5078 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (4)]) ; ;}
5082 #line 1387 "./yaccsrc.y"
5083 { (yyval
) = makenode(X_IND_SYMBOL
,0) ;
5084 (yyval
)->name
= (streng
*) (yyvsp
[(2) - (3)]) ; ;}
5088 #line 1391 "./yaccsrc.y"
5089 { (yyval
) = (treenode
*) Str_cre_TSD(parser_data
.TSD
,retvalue
);;}
5093 #line 1394 "./yaccsrc.y"
5094 { (yyval
) = (treenode
*) Str_cre_TSD(parser_data
.TSD
,retvalue
);;}
5098 #line 1395 "./yaccsrc.y"
5099 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;}
5103 /* Line 1267 of yacc.c. */
5104 #line 5102 "./yaccsrc.c"
5107 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5111 YY_STACK_PRINT (yyss
, yyssp
);
5116 /* Now `shift' the result of the reduction. Determine what state
5117 that goes to, based on the state we popped back to and the rule
5118 number reduced by. */
5122 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5123 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5124 yystate
= yytable
[yystate
];
5126 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5131 /*------------------------------------.
5132 | yyerrlab -- here on detecting error |
5133 `------------------------------------*/
5135 /* If not already recovering from an error, report this error. */
5139 #if ! YYERROR_VERBOSE
5140 yyerror (YY_("syntax error"));
5143 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5144 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5146 YYSIZE_T yyalloc
= 2 * yysize
;
5147 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5148 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5149 if (yymsg
!= yymsgbuf
)
5150 YYSTACK_FREE (yymsg
);
5151 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5153 yymsg_alloc
= yyalloc
;
5157 yymsg_alloc
= sizeof yymsgbuf
;
5161 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5163 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5168 yyerror (YY_("syntax error"));
5170 goto yyexhaustedlab
;
5178 if (yyerrstatus
== 3)
5180 /* If just tried and failed to reuse look-ahead token after an
5181 error, discard it. */
5183 if (yychar
<= YYEOF
)
5185 /* Return failure if at end of input. */
5186 if (yychar
== YYEOF
)
5191 yydestruct ("Error: discarding",
5197 /* Else will try to reuse look-ahead token after shifting the error
5202 /*---------------------------------------------------.
5203 | yyerrorlab -- error raised explicitly by YYERROR. |
5204 `---------------------------------------------------*/
5207 /* Pacify compilers like GCC when the user code never invokes
5208 YYERROR and the label yyerrorlab therefore never appears in user
5210 if (/*CONSTCOND*/ 0)
5213 /* Do not reclaim the symbols of the rule which action triggered
5217 YY_STACK_PRINT (yyss
, yyssp
);
5222 /*-------------------------------------------------------------.
5223 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5224 `-------------------------------------------------------------*/
5226 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5230 yyn
= yypact
[yystate
];
5231 if (yyn
!= YYPACT_NINF
)
5234 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5242 /* Pop the current state because it cannot handle the error token. */
5247 yydestruct ("Error: popping",
5248 yystos
[yystate
], yyvsp
);
5251 YY_STACK_PRINT (yyss
, yyssp
);
5260 /* Shift the error token. */
5261 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5267 /*-------------------------------------.
5268 | yyacceptlab -- YYACCEPT comes here. |
5269 `-------------------------------------*/
5274 /*-----------------------------------.
5275 | yyabortlab -- YYABORT comes here. |
5276 `-----------------------------------*/
5282 /*-------------------------------------------------.
5283 | yyexhaustedlab -- memory exhaustion comes here. |
5284 `-------------------------------------------------*/
5286 yyerror (YY_("memory exhausted"));
5292 if (yychar
!= YYEOF
&& yychar
!= YYEMPTY
)
5293 yydestruct ("Cleanup: discarding lookahead",
5295 /* Do not reclaim the symbols of the rule which action triggered
5296 this YYABORT or YYACCEPT. */
5298 YY_STACK_PRINT (yyss
, yyssp
);
5299 while (yyssp
!= yyss
)
5301 yydestruct ("Cleanup: popping",
5302 yystos
[*yyssp
], yyvsp
);
5307 YYSTACK_FREE (yyss
);
5310 if (yymsg
!= yymsgbuf
)
5311 YYSTACK_FREE (yymsg
);
5313 /* Make sure YYID is used. */
5314 return YYID (yyresult
);
5318 #line 1398 "./yaccsrc.y"
5321 static nodeptr
makenode( int type
, int numb
, ... )
5327 assert(numb
<= (int) (sizeof(thisleave
->p
)/sizeof(thisleave
->p
[0])));
5329 printf("makenode: making new node, type: %d\n",type
) ;
5330 #endif /* REXXDEBUG */
5332 thisleave
= FreshNode( ) ;
5333 /* thisleave is initialized to zero except for nodeindex */
5334 va_start( argptr
, numb
) ;
5335 thisleave
->type
= type
;
5336 thisleave
->lineno
= -1 ;
5337 thisleave
->charnr
= -1 ;
5338 for (i
=0;i
<numb
;i
++)
5339 thisleave
->p
[i
]=va_arg(argptr
, nodeptr
) ;
5343 return( thisleave
) ;
5346 static char *getdokeyword( int type
)
5351 case X_DO_TO
: ptr
="TO";break;
5352 case X_DO_BY
: ptr
="BY";break;
5353 case X_DO_FOR
: ptr
="FOR";break;
5354 default: ptr
="";break;
5359 static void checkdosyntax( cnodeptr thisptr
)
5361 if ((thisptr
->p
[1]!=NULL
)&&(thisptr
->p
[2]!=NULL
))
5363 if ((thisptr
->p
[1]->type
)==(thisptr
->p
[2]->type
))
5365 exiterror( ERR_INVALID_DO_SYNTAX
, 1, getdokeyword(thisptr
->p
[1]->type
) ) ;
5368 if ((thisptr
->p
[2]!=NULL
)&&(thisptr
->p
[3]!=NULL
))
5370 if ((thisptr
->p
[2]->type
)==(thisptr
->p
[3]->type
))
5372 exiterror( ERR_INVALID_DO_SYNTAX
, 1, getdokeyword(thisptr
->p
[2]->type
) ) ;
5375 if ((thisptr
->p
[1]!=NULL
)&&(thisptr
->p
[3]!=NULL
))
5377 if ((thisptr
->p
[1]->type
)==(thisptr
->p
[3]->type
))
5379 exiterror( ERR_INVALID_DO_SYNTAX
, 1, getdokeyword(thisptr
->p
[1]->type
) ) ;
5386 void newlabel( const tsd_t
*TSD
, internal_parser_type
*ipt
, nodeptr thisptr
)
5388 labelboxptr newptr
;
5392 newptr
= (labelboxptr
)MallocTSD(sizeof(labelbox
)) ;
5394 newptr
->next
= NULL
;
5395 newptr
->entry
= thisptr
;
5396 if (ipt
->first_label
== NULL
)
5398 ipt
->first_label
= newptr
;
5399 ipt
->last_label
= newptr
; /* must be NULL, too */
5403 ipt
->last_label
->next
= newptr
;
5404 ipt
->last_label
= newptr
;
5409 static nodeptr
create_tail( const char *name
)
5415 tsd_t
*TSD
= parser_data
.TSD
;
5419 node
= makenode( X_CTAIL_SYMBOL
, 0 ) ;
5420 node
->name
= Str_make_TSD( parser_data
.TSD
, 0) ;
5425 constant
= rx_isdigit(*cptr
) || *cptr
=='.' || (!*cptr
) ;
5426 node
= makenode( (constant
) ? X_CTAIL_SYMBOL
: X_VTAIL_SYMBOL
, 0 ) ;
5428 for (;*cptr
&& *cptr
!='.'; cptr
++) ;
5429 node
->name
= Str_ncre_TSD( parser_data
.TSD
, name
, cptr
-name
) ;
5433 node
->p
[0] = create_tail( ++cptr
) ;
5434 if (constant
&& node
->p
[0]->type
==X_CTAIL_SYMBOL
)
5436 streng
*first
, *second
;
5439 first
= node
->name
;
5440 second
= node
->p
[0]->name
;
5442 node
->p
[0]->name
= NULL
;
5443 tname
= Str_makeTSD( first
->len
+ second
->len
+ 1) ;
5444 memcpy( tname
->value
, first
->value
, first
->len
) ;
5445 tname
->value
[first
->len
] = '.' ;
5446 memcpy( tname
->value
+first
->len
+1, second
->value
, second
->len
) ;
5447 tname
->len
= first
->len
+ second
->len
+ 1 ;
5449 Free_stringTSD( first
) ;
5450 Free_stringTSD( second
) ;
5451 node
->name
= tname
;
5453 node
->p
[0] = tptr
->p
[0] ;
5461 static nodeptr
create_head( const char *name
)
5466 /* Bypass reserved variables */
5467 cptr
= ( *name
) ? ( name
+ 1 ) : name
;
5468 for (; *cptr
&& *cptr
!='.'; cptr
++) ;
5469 node
= makenode( X_SIM_SYMBOL
, 0 ) ;
5470 node
->name
= Str_ncre_TSD( parser_data
.TSD
, name
, cptr
-name
+(*cptr
=='.')) ;
5475 node
->p
[0] = create_tail( cptr
) ;
5479 node
->type
= (node
->p
[0]) ? X_HEAD_SYMBOL
: X_STEM_SYMBOL
;
5486 static node_type
gettypeof( nodeptr thisptr
)
5488 tsd_t
*TSD
= parser_data
.TSD
;
5490 switch(thisptr
->type
)
5518 return IS_A_NUMBER
;
5522 return IS_SIM_SYMBOL
;
5525 return IS_COMP_SYMBOL
;
5530 if (thisptr
->u
.number
)
5532 fprintf( stderr
, "Found an internal spot of investigation of the Regina interpreter.\n"
5533 "Please inform Mark Hessling or Florian Coosmann about the\n"
5534 "circumstances and this script.\n"
5537 "email addresses:\n"
5538 "m.hessling@qut.edu.au\n"
5539 "florian@grosse-coosmann.de\n");
5540 /* FIXME: When does this happen?
5541 * It doesn't happen if no feedback is send until end of 2005.
5543 return IS_A_NUMBER
;
5546 if ( ( thisptr
->u
.number
= is_a_descr( TSD
, thisptr
->name
) ) != NULL
)
5548 return IS_NO_NUMBER
;
5556 static void transform( nodeptr thisptr
)
5559 node_type left
,rght
;
5561 left
= gettypeof( thisptr
->p
[0] ) ;
5562 rght
= gettypeof( thisptr
->p
[1] ) ;
5563 type
= thisptr
->type
;
5565 if ( ( left
== IS_A_NUMBER
) && ( rght
== IS_A_NUMBER
) )
5568 thisptr
->type
= X_NEQUAL
;
5569 else if (type
==X_DIFF
)
5570 thisptr
->type
= X_NDIFF
;
5571 else if (type
==X_GTE
)
5572 thisptr
->type
= X_NGTE
;
5573 else if (type
==X_GT
)
5574 thisptr
->type
= X_NGT
;
5575 else if (type
==X_LTE
)
5576 thisptr
->type
= X_NLTE
;
5577 else if (type
==X_LT
)
5578 thisptr
->type
= X_NLT
;
5580 else if ( ( left
== IS_NO_NUMBER
) || ( rght
== IS_NO_NUMBER
) )
5583 thisptr
->type
= X_SEQUAL
;
5584 else if (type
==X_DIFF
)
5585 thisptr
->type
= X_SDIFF
;
5586 else if (type
==X_GTE
)
5587 thisptr
->type
= X_SGTE
;
5588 else if (type
==X_GT
)
5589 thisptr
->type
= X_SGT
;
5590 else if (type
==X_LTE
)
5591 thisptr
->type
= X_SLTE
;
5592 else if (type
==X_LT
)
5593 thisptr
->type
= X_SLT
;
5597 type
= thisptr
->p
[0]->type
;
5598 if ( ( left
== IS_A_NUMBER
)
5599 && ( ( type
== X_STRING
) || ( type
== X_CON_SYMBOL
) ) )
5600 thisptr
->u
.flags
.lnum
= 1 ;
5601 else if ( left
== IS_SIM_SYMBOL
)
5602 thisptr
->u
.flags
.lsvar
= 1 ;
5603 else if ( left
== IS_COMP_SYMBOL
)
5604 thisptr
->u
.flags
.lcvar
= 1 ;
5606 type
= thisptr
->p
[1]->type
;
5607 if ( ( rght
== IS_A_NUMBER
)
5608 && ( ( type
== X_STRING
) || ( type
== X_CON_SYMBOL
) ) )
5609 thisptr
->u
.flags
.rnum
= 1 ;
5610 else if ( rght
== IS_SIM_SYMBOL
)
5611 thisptr
->u
.flags
.rsvar
= 1 ;
5612 else if ( rght
== IS_COMP_SYMBOL
)
5613 thisptr
->u
.flags
.rcvar
= 1 ;
5618 static int is_const( cnodeptr thisptr
)
5623 switch (thisptr
->type
)
5630 Pre
-evaluation is
not allowed
. DIGITS
and FUZZ may change within loops
5631 and the resulting value may
or may
not be the same
. Concatenation with
5632 or without spaces is the sole allowed operation
.
5634 NEVER ENABLE THIS AGAIN WITHOUT SOLVING THIS PROBLEMS
!
5638 return is_const( thisptr
->p
[0] ) ;
5643 /* case X_DEVIDE: Bug 20000807-41821 */
5668 return is_const( thisptr
->p
[0] ) && is_const( thisptr
->p
[1] ) ;
5674 static void checkconst( nodeptr thisptr
)
5676 tsd_t
*TSD
= parser_data
.TSD
;
5678 assert( thisptr
->type
== X_EXPRLIST
) ;
5679 if (is_const(thisptr
->p
[0]))
5682 thisptr
->u
.strng
= evaluate( TSD
, thisptr
->p
[0], NULL
) ;
5684 thisptr
->u
.strng
= NULL
;
5686 thisptr
->type
= X_CEXPRLIST
;
5691 * reduce_expr_list will be invoked if the reduction of a list expression for
5692 * "call" arguments or a plain "(expr)" is needed. The reduction of the
5693 * outer parentheses of the extended CALL syntax is done with
5694 * mode==REDUCE_CALL, the reduction of a simple "(expr)" is done with
5695 * mode==REDUCE_EXPR. REDUCE_RIGHT is a synonym for REDUCE_CALL currently and
5696 * is intended to be used for reducing the right side of an expression list.
5698 * REDUCE_SUBEXPR detect "call s (a)+1," and "call s 1+(a)," and reduces it.
5699 * Furthermore it detects "call s ()+1", "call s 1+()", "call s 1+(a,b)",
5700 * "call s (a,b)+1" and raises an error in this case.
5702 static nodeptr
reduce_expr_list( nodeptr thisptr
, reduce_mode mode
)
5704 nodeptr h
, retval
= thisptr
;
5709 if ( mode
== REDUCE_SUBEXPR
)
5711 if ( ( parendepth
== 1 ) && !IS_FUNCTION( thisptr
) && !IS_EXPRLIST( thisptr
) )
5713 if ( IS_EXPRLIST( thisptr
->p
[0] ) )
5716 if ( ( h
->p
[0] == NULL
) || ( h
->p
[1] != NULL
) )
5717 exiterror( ERR_INVALID_EXPRESSION
, 0 );
5718 thisptr
->p
[0] = h
->p
[0];
5721 if ( IS_EXPRLIST( thisptr
->p
[1] ) )
5724 if ( ( h
->p
[0] == NULL
) || ( h
->p
[1] != NULL
) )
5725 exiterror( ERR_INVALID_EXPRESSION
, 0 );
5726 thisptr
->p
[1] = h
->p
[0];
5733 if ( !IS_EXPRLIST( thisptr
) )
5736 if ( ( mode
== REDUCE_CALL
) || ( mode
== REDUCE_RIGHT
) )
5738 if ( IS_EXPRLIST( thisptr
->p
[0] ) && ( thisptr
->p
[1] == NULL
) )
5740 retval
= thisptr
->p
[0];
5741 RejectNode( thisptr
);
5747 * mode == REDUCE_EXPR
5749 if ( ( thisptr
->p
[0] != NULL
) && ( thisptr
->p
[1] == NULL
) )
5751 if ( !IS_EXPRLIST( thisptr
->p
[0] ) )
5753 retval
= thisptr
->p
[0];
5754 RejectNode( thisptr
);
5762 * optgluelast connect p2 as the ->next element to p1. Every element may be
5764 * If both are non-NULL, the connection is performed using the o.last elements.
5765 * Just the o.last element of p1 remains non-NULL.
5767 * Returns: NULL if p1 and p2 are NULL.
5768 * The non-NULL element if one argumet is NULL.
5771 static nodeptr
optgluelast( nodeptr p1
, nodeptr p2
)
5781 * This is performed very often, so keep the code fast.
5783 * p2last is the "o.last"-element of p2 or just p2 if p2 has no next
5784 * elements. We set p1's o.last further down, but we have to ensure that
5785 * p2->o.last is NULL first. Therefore every element in the ->next chain
5786 * of p1 will have NULL as its o.last field.
5788 if ( ( p2last
= p2
->o
.last
) == NULL
)
5793 if ( p1
->o
.last
== NULL
)
5796 p1
->o
.last
->next
= p2
;
5797 p1
->o
.last
= p2last
;
5803 * justlabels returns 1, if n consists of a sequence of labels. The return
5804 * value is 0 otherwise.
5806 static int justlabels( nodeptr n
)
5810 if ( n
->type
!= X_LABEL
)
5819 * move_labels move the labels from the end of "end" to the end of "front".
5820 * The labels are marked "read_only" if level is nonnull, the read-only flag
5821 * is removed if level is 0.
5822 * NOTE: At least one element of the "end" chain must contain a non-label
5825 static void move_labels( nodeptr front
, nodeptr end
, int level
)
5830 assert( front
!= NULL
);
5831 assert( !justlabels( end
) );
5833 while ( !justlabels( end
->next
) )
5836 if ( ( labels
= end
->next
) == NULL
)
5840 * extract the labels.
5842 labels
->o
.last
= oend
->o
.last
;
5845 oend
->o
.last
= NULL
;
5849 if ( labels
->next
== NULL
)
5850 labels
->o
.last
= NULL
;
5853 * add the labels to the end of front and then re-mark the labels.
5855 optgluelast( front
, labels
);
5857 labels
->u
.trace_only
= ( level
== 0 ) ? 0 : 1;
5858 labels
= labels
->next
;