1 /* A Bison parser, made by GNU Bison 3.2. */
3 /* Bison implementation for Yacc-like parsers in C
5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
43 /* Undocumented macros, especially those whose name start with YY_,
44 are private implementation details. Do not rely on them. */
46 /* Identify Bison output. */
50 #define YYBISON_VERSION "3.2"
53 #define YYSKELETON_NAME "yacc.c"
67 /* First part of user prologue. */
68 #line 19 "../src/preproc/pic/pic.ypp" /* yacc.c:338 */
74 extern int delim_flag;
75 extern void copy_rest_thru(const char *, const char *);
76 extern void copy_file_thru(const char *, const char *, const char *);
77 extern void push_body(const char *);
78 extern void do_for(char *var, double from, double to,
79 int by_is_multiplicative, double by, char *body);
80 extern void do_lookahead();
82 /* Maximum number of characters produced by printf("%g") */
86 void yyerror(const char *);
88 void reset(const char *nm);
91 place *lookup_label(const char *);
92 void define_label(const char *label, const place *pl);
94 direction current_direction;
95 position current_position;
97 implement_ptable(place)
99 PTABLE(place) top_table;
101 PTABLE(place) *current_table = &top_table;
102 saved_state *current_saved_state = 0;
106 const char *ordinal_postfix(int n);
107 const char *object_type_name(object_type type);
108 char *format_number(const char *form, double n);
109 char *do_sprintf(const char *form, const double *v, int nv);
112 #line 113 "src/preproc/pic/pic.cpp" /* yacc.c:338 */
114 # if defined __cplusplus
115 # if 201103L <= __cplusplus
116 # define YY_NULLPTR nullptr
118 # define YY_NULLPTR 0
121 # define YY_NULLPTR ((void*)0)
125 /* Enabling verbose error messages. */
126 #ifdef YYERROR_VERBOSE
127 # undef YYERROR_VERBOSE
128 # define YYERROR_VERBOSE 1
130 # define YYERROR_VERBOSE 0
133 /* In a future release of Bison, this section will be replaced
134 by #include "y.tab.h". */
135 #ifndef YY_YY_SRC_PREPROC_PIC_PIC_HPP_INCLUDED
136 # define YY_YY_SRC_PREPROC_PIC_PIC_HPP_INCLUDED
158 LEFT_ARROW_HEAD = 266,
159 RIGHT_ARROW_HEAD = 267,
160 DOUBLE_ARROW_HEAD = 268,
279 #define COMMAND_LINE 262
280 #define DELIMITED 263
283 #define LEFT_ARROW_HEAD 266
284 #define RIGHT_ARROW_HEAD 267
285 #define DOUBLE_ARROW_HEAD 268
315 #define INVISIBLE 298
335 #define DOT_START 318
370 #define EQUALEQUAL 353
371 #define LESSEQUAL 354
372 #define GREATEREQUAL 355
373 #define LEFT_CORNER 356
374 #define RIGHT_CORNER 357
385 #define THICKNESS 368
399 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
403 #line 65 "../src/preproc/pic/pic.ypp" /* yacc.c:353 */
408 struct { double x, y; } pair;
409 struct { double x; char *body; } if_data;
410 struct { char *str; const char *filename; int lineno; } lstr;
411 struct { double *v; int nv; int maxv; } dv;
412 struct { double val; int is_multiplicative; } by;
419 graphics_state state;
422 #line 423 "src/preproc/pic/pic.cpp" /* yacc.c:353 */
425 typedef union YYSTYPE YYSTYPE;
426 # define YYSTYPE_IS_TRIVIAL 1
427 # define YYSTYPE_IS_DECLARED 1
431 extern YYSTYPE yylval;
435 #endif /* !YY_YY_SRC_PREPROC_PIC_PIC_HPP_INCLUDED */
444 typedef YYTYPE_UINT8 yytype_uint8;
446 typedef unsigned char yytype_uint8;
450 typedef YYTYPE_INT8 yytype_int8;
452 typedef signed char yytype_int8;
456 typedef YYTYPE_UINT16 yytype_uint16;
458 typedef unsigned short yytype_uint16;
462 typedef YYTYPE_INT16 yytype_int16;
464 typedef short yytype_int16;
468 # ifdef __SIZE_TYPE__
469 # define YYSIZE_T __SIZE_TYPE__
470 # elif defined size_t
471 # define YYSIZE_T size_t
472 # elif ! defined YYSIZE_T
473 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
474 # define YYSIZE_T size_t
476 # define YYSIZE_T unsigned
480 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
483 # if defined YYENABLE_NLS && YYENABLE_NLS
485 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
486 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
490 # define YY_(Msgid) Msgid
495 # if (defined __GNUC__ \
496 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
497 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
498 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
500 # define YY_ATTRIBUTE(Spec) /* empty */
504 #ifndef YY_ATTRIBUTE_PURE
505 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
508 #ifndef YY_ATTRIBUTE_UNUSED
509 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
512 /* Suppress unused-variable warnings by "using" E. */
513 #if ! defined lint || defined __GNUC__
514 # define YYUSE(E) ((void) (E))
516 # define YYUSE(E) /* empty */
519 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
520 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
521 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
522 _Pragma ("GCC diagnostic push") \
523 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
524 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
525 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
526 _Pragma ("GCC diagnostic pop")
528 # define YY_INITIAL_VALUE(Value) Value
530 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
531 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
532 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
534 #ifndef YY_INITIAL_VALUE
535 # define YY_INITIAL_VALUE(Value) /* Nothing. */
539 #if ! defined yyoverflow || YYERROR_VERBOSE
541 /* The parser invokes alloca or malloc; define the necessary symbols. */
543 # ifdef YYSTACK_USE_ALLOCA
544 # if YYSTACK_USE_ALLOCA
546 # define YYSTACK_ALLOC __builtin_alloca
547 # elif defined __BUILTIN_VA_ARG_INCR
548 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
550 # define YYSTACK_ALLOC __alloca
551 # elif defined _MSC_VER
552 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
553 # define alloca _alloca
555 # define YYSTACK_ALLOC alloca
556 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
557 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
558 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
559 # ifndef EXIT_SUCCESS
560 # define EXIT_SUCCESS 0
567 # ifdef YYSTACK_ALLOC
568 /* Pacify GCC's 'empty if-body' warning. */
569 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
570 # ifndef YYSTACK_ALLOC_MAXIMUM
571 /* The OS might guarantee only one guard page at the bottom of the stack,
572 and a page size can be as small as 4096 bytes. So we cannot safely
573 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
574 to allow for a few compiler-allocated temporary stack slots. */
575 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
578 # define YYSTACK_ALLOC YYMALLOC
579 # define YYSTACK_FREE YYFREE
580 # ifndef YYSTACK_ALLOC_MAXIMUM
581 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
583 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
584 && ! ((defined YYMALLOC || defined malloc) \
585 && (defined YYFREE || defined free)))
586 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
587 # ifndef EXIT_SUCCESS
588 # define EXIT_SUCCESS 0
592 # define YYMALLOC malloc
593 # if ! defined malloc && ! defined EXIT_SUCCESS
594 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
599 # if ! defined free && ! defined EXIT_SUCCESS
600 void free (void *); /* INFRINGES ON USER NAME SPACE */
604 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
607 #if (! defined yyoverflow \
608 && (! defined __cplusplus \
609 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
611 /* A type that is properly aligned for any stack member. */
614 yytype_int16 yyss_alloc;
618 /* The size of the maximum gap between one aligned stack and the next. */
619 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
621 /* The size of an array large to enough to hold all stacks, each with
623 # define YYSTACK_BYTES(N) \
624 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
625 + YYSTACK_GAP_MAXIMUM)
627 # define YYCOPY_NEEDED 1
629 /* Relocate STACK from its old location to the new one. The
630 local variables YYSIZE and YYSTACKSIZE give the old and new number of
631 elements in the stack, and YYPTR gives the new location of the
632 stack. Advance YYPTR to a properly aligned location for the next
634 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
637 YYSIZE_T yynewbytes; \
638 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
639 Stack = &yyptr->Stack_alloc; \
640 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
641 yyptr += yynewbytes / sizeof (*yyptr); \
647 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
648 /* Copy COUNT objects from SRC to DST. The source and destination do
651 # if defined __GNUC__ && 1 < __GNUC__
652 # define YYCOPY(Dst, Src, Count) \
653 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
655 # define YYCOPY(Dst, Src, Count) \
659 for (yyi = 0; yyi < (Count); yyi++) \
660 (Dst)[yyi] = (Src)[yyi]; \
665 #endif /* !YYCOPY_NEEDED */
667 /* YYFINAL -- State number of the termination state. */
669 /* YYLAST -- Last index in YYTABLE. */
672 /* YYNTOKENS -- Number of terminals. */
673 #define YYNTOKENS 146
674 /* YYNNTS -- Number of nonterminals. */
676 /* YYNRULES -- Number of rules. */
678 /* YYNSTATES -- Number of states. */
679 #define YYNSTATES 454
681 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
682 by yylex, with out-of-bounds checking. */
684 #define YYMAXUTOK 379
686 #define YYTRANSLATE(YYX) \
687 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
689 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
690 as returned by yylex, without out-of-bounds checking. */
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, 137, 2, 2, 2, 136, 2, 2,
697 126, 145, 134, 132, 129, 133, 125, 135, 2, 2,
698 2, 2, 2, 2, 2, 2, 2, 2, 141, 139,
699 130, 140, 131, 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, 128, 2, 144, 138, 2, 127, 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, 142, 2, 143, 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,
729 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
730 115, 116, 117, 118, 119, 120, 121, 122, 123, 124
734 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
735 static const yytype_uint16 yyrline[] =
737 0, 275, 275, 276, 285, 290, 292, 296, 298, 302,
738 303, 307, 315, 320, 332, 334, 336, 338, 340, 345,
739 350, 357, 356, 367, 375, 377, 374, 388, 390, 387,
740 400, 399, 408, 417, 416, 430, 431, 436, 437, 441,
741 446, 451, 459, 461, 480, 487, 489, 500, 499, 511,
742 512, 517, 519, 524, 530, 536, 538, 540, 542, 544,
743 546, 548, 555, 559, 564, 572, 586, 592, 600, 607,
744 613, 606, 622, 632, 633, 638, 640, 642, 644, 649,
745 656, 663, 670, 677, 682, 687, 695, 694, 721, 727,
746 733, 739, 745, 764, 771, 778, 785, 792, 799, 806,
747 813, 820, 827, 842, 854, 860, 869, 876, 901, 905,
748 911, 917, 923, 929, 934, 940, 946, 952, 959, 968,
749 975, 991, 1008, 1013, 1018, 1023, 1028, 1033, 1038, 1043,
750 1051, 1061, 1071, 1081, 1091, 1097, 1105, 1107, 1119, 1124,
751 1154, 1156, 1162, 1171, 1173, 1178, 1183, 1188, 1193, 1198,
752 1203, 1209, 1214, 1222, 1223, 1227, 1232, 1238, 1240, 1246,
753 1252, 1258, 1267, 1277, 1279, 1288, 1290, 1298, 1300, 1305,
754 1320, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1354,
755 1359, 1361, 1369, 1373, 1375, 1383, 1385, 1391, 1397, 1403,
756 1409, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434,
757 1436, 1438, 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454,
758 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470, 1472, 1474,
759 1476, 1478, 1480, 1485, 1487, 1492, 1497, 1505, 1507, 1514,
760 1521, 1528, 1535, 1542, 1544, 1546, 1548, 1556, 1564, 1577,
761 1579, 1581, 1590, 1599, 1612, 1621, 1630, 1639, 1641, 1643,
762 1645, 1647, 1653, 1658, 1660, 1662, 1664, 1666, 1668, 1670,
767 #if YYDEBUG || YYERROR_VERBOSE || 0
768 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
769 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
770 static const char *const yytname[] =
772 "$end", "error", "$undefined", "LABEL", "VARIABLE", "NUMBER", "TEXT",
773 "COMMAND_LINE", "DELIMITED", "ORDINAL", "TH", "LEFT_ARROW_HEAD",
774 "RIGHT_ARROW_HEAD", "DOUBLE_ARROW_HEAD", "LAST", "BOX", "CIRCLE",
775 "ELLIPSE", "ARC", "LINE", "ARROW", "MOVE", "SPLINE", "HEIGHT", "RADIUS",
776 "FIGNAME", "WIDTH", "DIAMETER", "UP", "DOWN", "RIGHT", "LEFT", "FROM",
777 "TO", "AT", "WITH", "BY", "THEN", "SOLID", "DOTTED", "DASHED", "CHOP",
778 "SAME", "INVISIBLE", "LJUST", "RJUST", "ABOVE", "BELOW", "OF", "THE",
779 "WAY", "BETWEEN", "AND", "HERE", "DOT_N", "DOT_E", "DOT_W", "DOT_S",
780 "DOT_NE", "DOT_SE", "DOT_NW", "DOT_SW", "DOT_C", "DOT_START", "DOT_END",
781 "DOT_X", "DOT_Y", "DOT_HT", "DOT_WID", "DOT_RAD", "SIN", "COS", "ATAN2",
782 "LOG", "EXP", "SQRT", "K_MAX", "K_MIN", "INT", "RAND", "SRAND", "COPY",
783 "THRU", "TOP", "BOTTOM", "UPPER", "LOWER", "SH", "PRINT", "CW", "CCW",
784 "FOR", "DO", "IF", "ELSE", "ANDAND", "OROR", "NOTEQUAL", "EQUALEQUAL",
785 "LESSEQUAL", "GREATEREQUAL", "LEFT_CORNER", "RIGHT_CORNER", "NORTH",
786 "SOUTH", "EAST", "WEST", "CENTER", "END", "START", "RESET", "UNTIL",
787 "PLOT", "THICKNESS", "FILL", "COLORED", "OUTLINED", "SHADED", "XSLANTED",
788 "YSLANTED", "ALIGNED", "SPRINTF", "COMMAND", "DEFINE", "UNDEF", "'.'",
789 "'('", "'`'", "'['", "','", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'",
790 "'%'", "'!'", "'^'", "';'", "'='", "':'", "'{'", "'}'", "']'", "')'",
791 "$accept", "top", "element_list", "middle_element_list",
792 "optional_separator", "separator", "placeless_element", "$@1", "$@2",
793 "$@3", "$@4", "$@5", "$@6", "$@7", "macro_name", "reset_variables",
794 "print_args", "print_arg", "simple_if", "$@8", "until", "any_expr",
795 "text_expr", "optional_by", "element", "@9", "$@10", "optional_element",
796 "object_spec", "@11", "text", "sprintf_args", "position",
797 "position_not_place", "between", "expr_pair", "place", "label",
798 "ordinal", "optional_ordinal_last", "nth_primitive", "object_type",
799 "label_path", "relative_path", "path", "corner", "expr",
800 "expr_lower_than", "expr_not_lower_than", YY_NULLPTR
805 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
806 (internal) symbol number NUM (which must be that of a token). */
807 static const yytype_uint16 yytoknum[] =
809 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
810 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
811 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
812 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
813 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
814 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
815 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
816 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
817 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
818 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
819 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
820 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
821 375, 376, 377, 378, 379, 46, 40, 96, 91, 44,
822 60, 62, 43, 45, 42, 47, 37, 33, 94, 59,
823 61, 58, 123, 125, 93, 41
827 #define YYPACT_NINF -240
829 #define yypact_value_is_default(Yystate) \
830 (!!((Yystate) == (-240)))
832 #define YYTABLE_NINF -206
834 #define yytable_value_is_error(Yytable_value) \
837 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
839 static const yytype_int16 yypact[] =
841 -114, -240, 20, -240, 757, -107, -240, -98, -123, -240,
842 -240, -240, -240, -240, -240, -240, -240, -240, -240, -106,
843 -240, -240, -240, -240, 9, -240, 1087, 46, 1172, 49,
844 1597, -70, 1087, -240, -240, -114, -240, 3, -33, -240,
845 877, -240, -240, -114, 1172, -60, 36, -14, -240, 74,
846 -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
847 -240, -240, -240, -240, -240, -240, -240, -240, -240, -34,
848 -18, 8, 38, 47, 51, 65, 101, 102, 112, 122,
849 -240, -240, 21, 150, -240, -240, -240, -240, -240, -240,
850 -240, -240, -240, 1257, 1172, 1597, 1597, 1087, -240, -240,
851 -43, -240, -240, 357, 2242, 59, 258, -240, 10, 2147,
852 -240, 1, 6, 1172, 1172, 145, -1, 2, 357, 2273,
853 -240, -240, 220, 249, 1087, -114, -114, -240, 721, -240,
854 252, -240, -240, -240, -240, 1597, 1597, 1597, 1597, 2024,
855 2024, 1853, 1939, 1682, 1682, 1682, 1427, 1767, -240, -240,
856 2024, 2024, 2024, -240, -240, -240, -240, -240, -240, -240,
857 -240, 1597, 2024, 23, 23, 23, 1597, 1597, -240, -240,
858 2282, 593, -240, 1172, -240, -240, -240, -240, 250, -240,
859 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 458,
860 1172, -240, -240, -240, -240, -240, -240, -240, -240, 121,
861 107, 123, 256, 2157, 137, 261, 134, 134, -240, 1767,
862 1767, -240, -240, -240, -240, -240, 276, -240, -240, -240,
863 -240, -240, -240, -240, -240, -240, -240, 138, -240, -240,
864 24, 156, 235, -240, 1597, 1597, 1597, 1597, 1597, 1597,
865 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1682,
866 1682, 1597, -240, 134, -240, 1172, 1172, 23, 23, 1172,
867 1172, -240, -240, 143, 757, 153, -240, -240, 280, 2282,
868 2282, 2282, 2282, 2282, 2282, 2282, 2282, -43, 2147, -43,
869 -43, 2253, 275, 275, 295, 1002, -43, 2081, -240, -240,
870 10, 1342, -240, 694, 2282, 2282, 2282, 2282, 2282, -240,
871 -240, -240, 2282, 2282, -98, -123, 16, 28, -240, -43,
872 56, 302, -240, 291, -240, 155, 160, 172, 161, 164,
873 167, 184, 185, 181, -240, 186, 188, -240, 1682, 1767,
874 1767, -240, -240, 1682, 1682, -240, -240, -240, -240, -240,
875 156, 279, 314, 2291, 440, 440, 413, 413, 2282, 413,
876 413, -72, -72, 134, 134, 134, 134, -49, 117, 343,
877 322, -240, 314, 239, 2300, -240, -240, -240, 314, 239,
878 2300, -119, -240, -240, -240, -240, -240, 2116, 2116, -240,
879 206, 333, -240, 123, 2131, -240, 228, -240, -240, 1172,
880 -240, -240, -240, 1172, 1172, -240, -240, -240, -110, 195,
881 197, -47, 128, 292, 1682, 1682, 1597, -240, 1597, -240,
882 757, -240, -240, 2116, -240, 228, 338, -240, 200, 202,
883 212, -240, -240, -240, 1682, 1682, -240, -43, -27, 360,
884 2282, -240, -240, 214, -240, -240, -240, -240, -240, -73,
885 30, -240, 1512, 268, -240, -240, 216, 1597, 2282, -240,
886 -240, 2282, 354, -240
889 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
890 Performed when YYTABLE does not specify something else to do. Zero
891 means the default is an error. */
892 static const yytype_uint16 yydefact[] =
894 7, 9, 0, 3, 2, 8, 1, 0, 0, 136,
895 18, 75, 76, 77, 78, 79, 80, 81, 82, 0,
896 14, 15, 17, 16, 0, 21, 0, 0, 0, 36,
897 0, 0, 0, 86, 69, 7, 72, 35, 32, 5,
898 65, 83, 10, 7, 0, 0, 0, 23, 27, 0,
899 162, 226, 227, 165, 167, 205, 204, 161, 191, 192,
900 193, 194, 195, 196, 197, 198, 199, 200, 201, 0,
901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
902 202, 203, 0, 0, 210, 211, 216, 217, 218, 219,
903 220, 222, 221, 0, 0, 0, 0, 20, 42, 45,
904 46, 140, 143, 141, 157, 0, 0, 163, 0, 44,
905 223, 224, 0, 0, 0, 0, 52, 0, 0, 51,
906 224, 39, 84, 0, 19, 7, 7, 4, 8, 40,
907 0, 33, 124, 125, 126, 0, 0, 0, 0, 93,
908 95, 97, 99, 0, 0, 0, 0, 0, 107, 108,
909 109, 111, 120, 122, 123, 130, 131, 132, 133, 127,
910 128, 0, 113, 0, 0, 0, 0, 0, 135, 129,
911 92, 0, 12, 0, 38, 37, 11, 24, 0, 22,
912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913 0, 208, 206, 212, 214, 209, 207, 213, 215, 0,
914 0, 143, 141, 51, 224, 0, 239, 260, 43, 0,
915 0, 228, 229, 230, 231, 232, 0, 158, 179, 168,
916 171, 172, 173, 174, 175, 176, 177, 0, 169, 170,
917 0, 159, 0, 153, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 61, 260, 47, 0, 0, 0, 0, 0,
920 0, 85, 138, 0, 0, 0, 6, 41, 0, 88,
921 89, 90, 91, 94, 96, 98, 100, 101, 0, 102,
922 103, 162, 165, 167, 0, 0, 105, 183, 185, 104,
923 182, 0, 106, 0, 110, 112, 121, 134, 114, 118,
924 119, 117, 115, 116, 162, 226, 205, 204, 66, 0,
925 67, 68, 13, 0, 28, 0, 0, 0, 0, 0,
926 0, 0, 0, 0, 251, 0, 0, 240, 0, 0,
927 0, 156, 142, 0, 0, 166, 144, 146, 164, 178,
928 160, 0, 258, 259, 257, 256, 253, 255, 155, 225,
929 254, 233, 234, 235, 236, 237, 238, 0, 0, 0,
930 0, 55, 56, 58, 59, 54, 53, 57, 258, 60,
931 259, 0, 87, 70, 34, 190, 182, 0, 0, 180,
932 0, 0, 184, 0, 51, 25, 49, 241, 242, 0,
933 244, 245, 246, 0, 0, 249, 250, 252, 0, 144,
934 146, 0, 0, 0, 0, 0, 0, 48, 0, 137,
935 73, 189, 188, 0, 181, 49, 0, 29, 0, 0,
936 0, 148, 145, 147, 0, 0, 154, 149, 0, 62,
937 139, 74, 71, 0, 26, 50, 243, 247, 248, 149,
938 0, 151, 0, 0, 186, 150, 151, 0, 63, 30,
942 /* YYPGOTO[NTERM-NUM]. */
943 static const yytype_int16 yypgoto[] =
945 -240, -240, 17, -240, 12, 329, -240, -240, -240, -240,
946 -240, -240, -240, -240, -240, -240, 334, -76, -240, -240,
947 -42, 13, -103, -240, -127, -240, -240, -240, -240, -240,
948 5, -240, 99, 194, 169, -44, 4, -100, -240, -240,
949 -240, -104, -240, -239, -240, -50, -26, -240, 61
952 /* YYDEFGOTO[NTERM-NUM]. */
953 static const yytype_int16 yydefgoto[] =
955 -1, 2, 3, 35, 264, 5, 36, 49, 313, 415,
956 178, 386, 452, 268, 176, 37, 97, 98, 38, 360,
957 417, 199, 116, 443, 39, 126, 410, 432, 40, 125,
958 117, 371, 100, 101, 249, 102, 118, 104, 105, 106,
959 107, 228, 287, 288, 289, 108, 119, 110, 120
962 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
963 positive, shift that token. If negative, reduce the rule whose
964 number is the opposite. If YYTABLE_NINF, syntax error. */
965 static const yytype_int16 yytable[] =
967 109, 266, 229, 404, 122, 424, 109, 129, 231, 41,
968 408, 252, 4, 50, 170, 47, -17, 44, 45, 53,
969 6, 208, 209, 210, 54, 1, 409, 50, -16, 9,
970 103, 99, 42, 53, 46, 421, 103, 99, 54, 174,
971 175, 115, 375, 43, 308, 169, 380, 127, 208, 201,
972 112, 191, 192, 121, 217, 171, 123, 172, 230, 209,
973 210, 131, 245, 246, 247, 218, 248, 203, 177, 206,
974 207, 109, 445, 219, 220, 221, 222, 223, 224, 225,
975 173, 226, 179, 209, 210, 209, 210, 111, 253, 209,
976 210, 48, 180, 111, 255, 256, 290, 202, 109, 257,
977 258, 103, 99, 292, 441, 209, 210, 205, 181, 269,
978 270, 271, 272, 273, 274, 275, 276, 278, 278, 278,
979 278, 293, 193, 194, 294, 295, 296, 261, 103, 99,
980 340, 250, 130, 41, 182, 297, 298, 94, 411, 412,
981 302, 303, 263, 265, 31, 278, 251, 103, 103, 103,
982 103, 94, 361, 363, 204, -17, 367, 369, 111, -17,
983 -17, 446, 209, 210, 183, 336, 337, -16, 299, 300,
984 301, -16, -16, 184, 433, 311, 41, 185, 377, 378,
985 195, 196, 254, 293, 293, 111, 312, 227, -140, -140,
986 231, 186, 200, 315, 316, 317, 318, 319, 320, 321,
987 322, 323, 325, 326, 111, 111, 111, 111, 342, 343,
988 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
989 354, 355, 356, 278, 278, 359, 9, 187, 188, 362,
990 364, 376, 111, 368, 370, 290, 328, 382, 189, 329,
991 330, 201, 277, 279, 280, 286, 405, 383, 190, 209,
992 210, 197, 198, 103, 103, 262, 267, 425, 314, 203,
993 209, 210, 365, 366, 218, 384, 327, 334, 331, 41,
994 309, 335, 248, 220, 221, 222, 223, 224, 225, 338,
995 226, 216, 339, 431, 341, 399, 400, 372, 374, 202,
996 220, 221, 222, 223, 224, 225, 373, 226, 379, 385,
997 387, 389, 278, 293, 293, 388, 390, 278, 278, 391,
998 111, 111, 392, 393, 394, 234, 235, 236, 237, 238,
999 239, 211, 212, 213, 214, 215, 395, 376, 376, 403,
1000 407, 396, 103, 397, 255, 413, 414, 103, 103, 416,
1001 422, 31, 423, 426, 435, 436, 204, 437, 357, 358,
1002 241, 242, 243, 244, 245, 246, 247, 438, 248, 444,
1003 449, 450, 453, 376, 128, 310, 124, 211, 212, 213,
1004 214, 215, 333, 434, 0, 0, 406, 0, 278, 278,
1005 429, 0, 430, 0, 200, 0, 227, 0, 0, 111,
1006 0, 0, 0, 0, 111, 111, 442, 0, 278, 278,
1007 0, 332, 418, 227, 0, 0, 419, 420, 103, 103,
1008 0, 236, 237, 238, 239, 41, 448, 0, 0, 0,
1009 0, 451, 211, 212, 213, 214, 215, 398, 103, 103,
1010 0, 0, 401, 402, -141, -141, 0, 0, 234, 235,
1011 236, 237, 238, 239, 241, 242, 243, 244, 245, 246,
1012 247, 0, 248, 0, 0, 234, 235, 236, 237, 238,
1013 239, 50, 51, 52, 9, 111, 111, 53, 0, 0,
1014 0, 0, 54, 241, 242, 243, 244, 245, 246, 247,
1015 0, 248, 0, 0, 0, 111, 111, 0, 55, 56,
1016 241, 242, 243, 244, 245, 246, 247, 0, 248, 0,
1017 0, 0, 0, 427, 428, 0, 0, 0, 0, 0,
1018 0, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1019 66, 67, 68, 439, 440, 0, 0, 0, 69, 70,
1020 71, 72, 73, 74, 75, 76, 77, 78, 79, 238,
1021 239, 80, 81, 82, 83, 243, 244, 245, 246, 247,
1022 0, 248, 0, 0, 0, 0, 0, 0, 0, 84,
1023 85, 86, 87, 88, 89, 90, 91, 92, 0, 0,
1024 241, 242, 243, 244, 245, 246, 247, 0, 248, 31,
1025 0, 0, 0, 0, 113, 94, 0, 0, 0, 0,
1026 0, 95, 0, 0, 0, 114, 304, 305, 52, 9,
1027 10, 0, 53, 324, 0, 0, 0, 54, 11, 12,
1028 13, 14, 15, 16, 17, 18, 0, 0, 19, 0,
1029 0, 20, 21, 306, 307, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 57, 58, 59, 60,
1032 61, 62, 63, 64, 65, 66, 67, 68, 0, 0,
1033 0, 0, 0, 69, 70, 71, 72, 73, 74, 75,
1034 76, 77, 78, 79, 24, 0, 80, 81, 82, 83,
1035 25, 26, 0, 0, 27, 0, 28, 0, 0, 0,
1036 0, 0, 0, 0, 84, 85, 86, 87, 88, 89,
1037 90, 91, 92, 29, 0, 30, 0, 0, 0, 0,
1038 0, 0, 0, 0, 31, 32, 0, 0, 0, 93,
1039 94, 33, 0, 0, 7, 8, 95, 9, 10, 0,
1040 96, 0, 0, 0, 0, 34, 11, 12, 13, 14,
1041 15, 16, 17, 18, 0, 0, 19, 0, 0, 20,
1042 21, 22, 23, 0, 0, 0, 0, 0, 0, 0,
1043 7, 8, 0, 9, 10, 0, 0, 0, 0, 0,
1044 0, 0, 11, 12, 13, 14, 15, 16, 17, 18,
1045 0, 0, 19, 0, 0, 20, 21, 22, 23, 234,
1046 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
1047 0, 0, 24, 0, 0, 0, 0, 0, 25, 26,
1048 0, 0, 27, 0, 28, 0, 0, 0, 0, 0,
1049 0, 0, 0, 240, 241, 242, 243, 244, 245, 246,
1050 247, 29, 248, 30, 0, 0, 0, 0, 24, 0,
1051 0, 0, 31, 32, 25, 26, 0, 0, 27, 33,
1052 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1053 42, 0, 0, 34, 0, 0, 0, 29, 0, 30,
1054 0, 0, 0, 0, 0, 0, 0, 0, 31, 32,
1055 50, 51, 52, 9, 0, 33, 53, 0, 132, 133,
1056 134, 54, 0, 0, 0, 0, 0, 0, 0, 34,
1057 135, 136, 0, 137, 138, 139, 140, 141, 142, 143,
1058 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1059 154, 155, 156, 157, 158, 0, 0, 0, 0, 0,
1060 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1061 67, 68, 0, 0, 0, 0, 0, 69, 70, 71,
1062 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1063 80, 81, 82, 83, 0, 0, 159, 160, 0, 0,
1064 0, 0, 0, 0, 0, 0, 0, 0, 84, 85,
1065 86, 87, 88, 89, 90, 91, 92, 0, 0, 0,
1066 161, 162, 163, 164, 165, 166, 167, 168, 31, 0,
1067 0, 0, 0, 113, 94, 50, 51, 52, 9, 0,
1068 95, 53, 0, 0, 96, 0, 54, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1070 0, 0, 55, 56, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 57, 58, 59, 60, 61,
1073 62, 63, 64, 65, 66, 67, 68, 0, 0, 0,
1074 0, 0, 69, 70, 71, 72, 73, 74, 75, 76,
1075 77, 78, 79, 0, 0, 80, 81, 82, 83, 0,
1076 50, 51, 52, 9, 0, 0, 53, 0, 0, 0,
1077 0, 54, 0, 84, 85, 86, 87, 88, 89, 90,
1078 91, 92, 0, 0, 0, 0, 0, 55, 56, 0,
1079 0, 0, 0, 31, 0, 0, 0, 284, 93, 94,
1080 0, 0, 0, 0, 0, 95, 0, 0, 0, 114,
1081 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1082 67, 68, 0, 0, 0, 0, 0, 69, 70, 71,
1083 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1084 80, 81, 82, 83, 0, 50, 51, 52, 9, 0,
1085 0, 53, 0, 0, 0, 0, 54, 0, 84, 85,
1086 86, 87, 88, 89, 90, 91, 92, 0, 0, 0,
1087 0, 0, 55, 56, 0, 0, 0, 0, 31, 0,
1088 0, 0, 0, 93, 94, 0, 0, 0, 0, 0,
1089 95, 0, 0, 0, 96, 57, 58, 59, 60, 61,
1090 62, 63, 64, 65, 66, 67, 68, 0, 0, 0,
1091 0, 0, 69, 70, 71, 72, 73, 74, 75, 76,
1092 77, 78, 79, 0, 0, 80, 81, 82, 83, 0,
1093 50, 51, 52, 9, 0, 0, 53, 0, 0, 0,
1094 0, 54, 0, 84, 85, 86, 87, 88, 89, 90,
1095 91, 92, 0, 0, 0, 0, 0, 55, 56, 0,
1096 0, 0, 0, 31, 0, 0, 0, 0, 113, 94,
1097 0, 0, 0, 0, 0, 95, 0, 0, 0, 114,
1098 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1099 67, 68, 0, 0, 0, 0, 0, 69, 70, 71,
1100 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1101 80, 81, 82, 83, 0, 50, 51, 52, 9, 0,
1102 0, 53, 0, 0, 0, 0, 54, 0, 84, 85,
1103 86, 87, 88, 89, 90, 91, 92, 0, 0, 0,
1104 0, 0, 55, 56, 0, 0, 0, 0, 31, 0,
1105 0, 0, 0, 93, 94, 0, 0, 0, 0, 0,
1106 95, 0, 0, 0, 114, 57, 58, 59, 60, 61,
1107 62, 63, 64, 65, 66, 67, 68, 0, 0, 0,
1108 0, 0, 69, 70, 71, 72, 73, 74, 75, 76,
1109 77, 78, 79, 0, 0, 80, 81, 82, 83, 0,
1110 281, 51, 52, 0, 0, 0, 282, 0, 0, 0,
1111 0, 283, 0, 84, 85, 86, 87, 88, 89, 90,
1112 91, 92, 0, 0, 0, 0, 0, 55, 56, 0,
1113 0, 0, 0, 31, 0, 0, 0, 0, 291, 94,
1114 0, 0, 0, 0, 0, 95, 0, 0, 0, 114,
1115 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1116 67, 68, 0, 0, 0, 0, 0, 69, 70, 71,
1117 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1118 80, 81, 82, 83, 0, 50, 51, 52, 0, 0,
1119 0, 53, 0, 0, 0, 0, 54, 0, 84, 85,
1120 86, 87, 88, 89, 90, 91, 92, 0, 0, 0,
1121 0, 0, 55, 56, 0, 0, 0, 0, 0, 0,
1122 0, 0, 284, 285, 94, 0, 0, 0, 0, 0,
1123 95, 0, 0, 0, 96, 57, 58, 59, 60, 61,
1124 62, 63, 64, 65, 66, 67, 68, 0, 0, 0,
1125 0, 0, 69, 70, 71, 72, 73, 74, 75, 76,
1126 77, 78, 79, 0, 0, 80, 81, 82, 83, 0,
1127 50, 51, 52, 0, 0, 0, 53, 0, 0, 0,
1128 0, 54, 0, 84, 85, 86, 87, 88, 89, 90,
1129 91, 92, 0, 0, 0, 0, 0, 55, 56, 0,
1130 0, 0, 0, 0, 0, 0, 0, 0, 113, 94,
1131 0, 0, 0, 0, 0, 95, 447, 0, 0, 96,
1132 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1133 67, 68, 0, 0, 0, 0, 0, 69, 70, 71,
1134 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1135 80, 81, 82, 83, 0, 50, 51, 52, 0, 0,
1136 0, 53, 0, 0, 0, 0, 54, 0, 84, 85,
1137 86, 87, 88, 89, 90, 91, 92, 0, 0, 0,
1138 0, 0, 55, 56, 0, 0, 0, 0, 0, 0,
1139 0, 0, 0, 113, 94, 0, 0, 0, 0, 0,
1140 95, 0, 0, 0, 96, 57, 58, 59, 60, 61,
1141 62, 63, 64, 65, 66, 67, 68, 0, 0, 0,
1142 0, 0, 69, 70, 71, 72, 73, 74, 75, 76,
1143 77, 78, 79, 0, 0, 80, 81, 82, 83, 0,
1144 50, 51, 52, 0, 0, 0, 53, 0, 0, 0,
1145 0, 54, 0, 84, 85, 86, 87, 88, 89, 90,
1146 91, 92, 0, 0, 0, 0, 0, 55, 56, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0, 93, 94,
1148 0, 0, 0, 0, 0, 95, 0, 0, 0, 96,
1149 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1150 67, 68, 0, 0, 0, 0, 0, 69, 70, 71,
1151 72, 73, 74, 75, 76, 77, 78, 79, 0, 0,
1152 80, 81, 82, 83, 0, 0, 50, 51, 52, 0,
1153 0, 0, 53, 0, 0, 0, 0, 54, 84, 85,
1154 86, 87, 88, 89, 90, 91, 92, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 291, 94, 0, 0, 0, 0, 0,
1157 95, -205, 0, 0, 96, 0, 57, 58, 59, 60,
1158 61, 62, 63, 64, 65, 66, 67, 68, 0, 0,
1159 0, 0, 0, 69, 70, 71, 72, 73, 74, 75,
1160 76, 77, 78, 79, 0, 0, 80, 81, 82, 83,
1161 0, 0, 50, 51, 52, 0, 0, 0, 53, 0,
1162 0, 0, 0, 54, 84, 85, 86, 87, 88, 89,
1163 90, 91, 92, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
1165 94, 0, 0, 0, 0, 0, 95, -204, 0, 0,
1166 96, 0, 57, 58, 59, 60, 61, 62, 63, 64,
1167 65, 66, 67, 68, 0, 0, 0, 0, 0, 69,
1168 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1169 0, 0, 80, 81, 82, 83, 0, 50, 51, 52,
1170 0, 0, 0, 53, 0, 0, 0, 0, 54, 0,
1171 84, 85, 86, 87, 88, 89, 90, 91, 92, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 113, 94, 0, 0, 0,
1174 0, 0, 95, 0, 0, 0, 96, 57, 58, 59,
1175 60, 61, 62, 63, 64, 65, 66, 67, 68, 0,
1176 0, 0, 0, 0, 69, 70, 71, 72, 73, 74,
1177 75, 76, 77, 78, 79, 0, 0, 80, 81, 82,
1178 83, 55, 56, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 84, 85, 86, 87, 88,
1180 89, 90, 91, 92, 0, 58, 59, 60, 61, 62,
1181 63, 64, 65, 66, 67, 68, 55, 56, 0, 0,
1182 113, 94, 0, 0, 0, 0, 0, 95, 0, 0,
1183 0, 96, 0, 0, 80, 81, 82, 83, 0, 0,
1184 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1185 68, 0, 84, 85, 86, 87, 88, 89, 90, 91,
1186 92, 0, 0, 0, 0, 232, 0, 0, 233, 80,
1187 81, 82, 83, 0, 0, 232, 381, 0, 233, 0,
1188 0, 0, 0, 0, 0, 0, 0, 84, 85, 86,
1189 87, 88, 89, 90, 91, 92, 259, 260, 236, 237,
1190 238, 239, 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 284, 234, 235, 236, 237, 238, 239, 0, 0,
1192 0, 0, 259, 260, 236, 237, 238, 239, 0, 0,
1193 240, 241, 242, 243, 244, 245, 246, 247, 0, 248,
1194 0, 0, 0, 0, 0, 0, 240, 241, 242, 243,
1195 244, 245, 246, 247, 0, 248, 240, 241, 242, 243,
1196 244, 245, 246, 247, 0, 248, 58, 59, 60, 61,
1197 62, 63, 64, 65, 66, 67, 68, 58, 59, 60,
1198 61, 62, 63, 64, 65, 66, 67, 68, 0, 0,
1199 0, 0, 0, 0, 0, 80, 81, 82, 83, 0,
1200 0, 0, 0, 0, 0, 0, 80, 81, 82, 83,
1201 0, 0, 0, 84, 85, 86, 87, 88, 89, 90,
1202 91, 92, 0, 0, 84, 85, 86, 87, 88, 89,
1203 90, 91, 92, 0, 0, 0, 0, 216, 259, 260,
1204 236, 237, 238, 239, 0, 0, 0, 234, 235, 236,
1205 237, 238, 239, 0, 0, 0, 234, 0, 236, 237,
1206 238, 239, 0, 0, 0, 259, 0, 236, 237, 238,
1207 239, 0, 0, 241, 242, 243, 244, 245, 246, 247,
1208 0, 248, 241, 242, 243, 244, 245, 246, 247, 0,
1209 248, 241, 242, 243, 244, 245, 246, 247, 0, 248,
1210 241, 242, 243, 244, 245, 246, 247, 0, 248
1213 static const yytype_int16 yycheck[] =
1215 26, 128, 106, 52, 30, 52, 32, 4, 108, 4,
1216 129, 114, 0, 3, 40, 6, 0, 140, 141, 9,
1217 0, 97, 132, 133, 14, 139, 145, 3, 0, 6,
1218 26, 26, 139, 9, 140, 145, 32, 32, 14, 3,
1219 4, 28, 281, 141, 171, 40, 285, 35, 124, 93,
1220 4, 30, 31, 4, 104, 43, 126, 44, 48, 132,
1221 133, 94, 134, 135, 136, 6, 138, 93, 82, 95,
1222 96, 97, 145, 14, 15, 16, 17, 18, 19, 20,
1223 140, 22, 8, 132, 133, 132, 133, 26, 114, 132,
1224 133, 82, 126, 32, 95, 96, 146, 93, 124, 97,
1225 98, 97, 97, 147, 131, 132, 133, 94, 126, 135,
1226 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1227 146, 147, 101, 102, 150, 151, 152, 122, 124, 124,
1228 230, 130, 129, 128, 126, 161, 162, 127, 377, 378,
1229 166, 167, 125, 126, 121, 171, 140, 143, 144, 145,
1230 146, 127, 255, 256, 93, 139, 259, 260, 97, 143,
1231 144, 131, 132, 133, 126, 209, 210, 139, 163, 164,
1232 165, 143, 144, 126, 413, 171, 171, 126, 282, 283,
1233 30, 31, 37, 209, 210, 124, 173, 128, 132, 133,
1234 290, 126, 93, 180, 181, 182, 183, 184, 185, 186,
1235 187, 188, 189, 190, 143, 144, 145, 146, 234, 235,
1236 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1237 246, 247, 248, 249, 250, 251, 6, 126, 126, 255,
1238 256, 281, 171, 259, 260, 285, 129, 287, 126, 132,
1239 133, 285, 143, 144, 145, 146, 129, 291, 126, 132,
1240 133, 101, 102, 249, 250, 6, 4, 129, 8, 285,
1241 132, 133, 257, 258, 6, 291, 145, 130, 145, 264,
1242 171, 10, 138, 15, 16, 17, 18, 19, 20, 3,
1243 22, 125, 144, 410, 49, 329, 330, 144, 8, 285,
1244 15, 16, 17, 18, 19, 20, 143, 22, 3, 8,
1245 145, 129, 328, 329, 330, 145, 145, 333, 334, 145,
1246 249, 250, 145, 129, 129, 95, 96, 97, 98, 99,
1247 100, 65, 66, 67, 68, 69, 145, 377, 378, 50,
1248 8, 145, 328, 145, 95, 129, 3, 333, 334, 111,
1249 145, 121, 145, 51, 6, 145, 285, 145, 249, 250,
1250 130, 131, 132, 133, 134, 135, 136, 145, 138, 145,
1251 92, 145, 8, 413, 35, 171, 32, 65, 66, 67,
1252 68, 69, 203, 415, -1, -1, 33, -1, 404, 405,
1253 406, -1, 408, -1, 285, -1, 128, -1, -1, 328,
1254 -1, -1, -1, -1, 333, 334, 36, -1, 424, 425,
1255 -1, 145, 389, 128, -1, -1, 393, 394, 404, 405,
1256 -1, 97, 98, 99, 100, 410, 442, -1, -1, -1,
1257 -1, 447, 65, 66, 67, 68, 69, 328, 424, 425,
1258 -1, -1, 333, 334, 132, 133, -1, -1, 95, 96,
1259 97, 98, 99, 100, 130, 131, 132, 133, 134, 135,
1260 136, -1, 138, -1, -1, 95, 96, 97, 98, 99,
1261 100, 3, 4, 5, 6, 404, 405, 9, -1, -1,
1262 -1, -1, 14, 130, 131, 132, 133, 134, 135, 136,
1263 -1, 138, -1, -1, -1, 424, 425, -1, 30, 31,
1264 130, 131, 132, 133, 134, 135, 136, -1, 138, -1,
1265 -1, -1, -1, 404, 405, -1, -1, -1, -1, -1,
1266 -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1267 62, 63, 64, 424, 425, -1, -1, -1, 70, 71,
1268 72, 73, 74, 75, 76, 77, 78, 79, 80, 99,
1269 100, 83, 84, 85, 86, 132, 133, 134, 135, 136,
1270 -1, 138, -1, -1, -1, -1, -1, -1, -1, 101,
1271 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
1272 130, 131, 132, 133, 134, 135, 136, -1, 138, 121,
1273 -1, -1, -1, -1, 126, 127, -1, -1, -1, -1,
1274 -1, 133, -1, -1, -1, 137, 3, 4, 5, 6,
1275 7, -1, 9, 145, -1, -1, -1, 14, 15, 16,
1276 17, 18, 19, 20, 21, 22, -1, -1, 25, -1,
1277 -1, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1278 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1279 -1, -1, -1, -1, -1, -1, 53, 54, 55, 56,
1280 57, 58, 59, 60, 61, 62, 63, 64, -1, -1,
1281 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
1282 77, 78, 79, 80, 81, -1, 83, 84, 85, 86,
1283 87, 88, -1, -1, 91, -1, 93, -1, -1, -1,
1284 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
1285 107, 108, 109, 110, -1, 112, -1, -1, -1, -1,
1286 -1, -1, -1, -1, 121, 122, -1, -1, -1, 126,
1287 127, 128, -1, -1, 3, 4, 133, 6, 7, -1,
1288 137, -1, -1, -1, -1, 142, 15, 16, 17, 18,
1289 19, 20, 21, 22, -1, -1, 25, -1, -1, 28,
1290 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1291 3, 4, -1, 6, 7, -1, -1, -1, -1, -1,
1292 -1, -1, 15, 16, 17, 18, 19, 20, 21, 22,
1293 -1, -1, 25, -1, -1, 28, 29, 30, 31, 95,
1294 96, 97, 98, 99, 100, -1, -1, -1, -1, -1,
1295 -1, -1, 81, -1, -1, -1, -1, -1, 87, 88,
1296 -1, -1, 91, -1, 93, -1, -1, -1, -1, -1,
1297 -1, -1, -1, 129, 130, 131, 132, 133, 134, 135,
1298 136, 110, 138, 112, -1, -1, -1, -1, 81, -1,
1299 -1, -1, 121, 122, 87, 88, -1, -1, 91, 128,
1300 93, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1301 139, -1, -1, 142, -1, -1, -1, 110, -1, 112,
1302 -1, -1, -1, -1, -1, -1, -1, -1, 121, 122,
1303 3, 4, 5, 6, -1, 128, 9, -1, 11, 12,
1304 13, 14, -1, -1, -1, -1, -1, -1, -1, 142,
1305 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
1306 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1307 43, 44, 45, 46, 47, -1, -1, -1, -1, -1,
1308 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1309 63, 64, -1, -1, -1, -1, -1, 70, 71, 72,
1310 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
1311 83, 84, 85, 86, -1, -1, 89, 90, -1, -1,
1312 -1, -1, -1, -1, -1, -1, -1, -1, 101, 102,
1313 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
1314 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
1315 -1, -1, -1, 126, 127, 3, 4, 5, 6, -1,
1316 133, 9, -1, -1, 137, -1, 14, -1, -1, -1,
1317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1318 -1, -1, 30, 31, -1, -1, -1, -1, -1, -1,
1319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1320 -1, -1, -1, -1, -1, 53, 54, 55, 56, 57,
1321 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
1322 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
1323 78, 79, 80, -1, -1, 83, 84, 85, 86, -1,
1324 3, 4, 5, 6, -1, -1, 9, -1, -1, -1,
1325 -1, 14, -1, 101, 102, 103, 104, 105, 106, 107,
1326 108, 109, -1, -1, -1, -1, -1, 30, 31, -1,
1327 -1, -1, -1, 121, -1, -1, -1, 125, 126, 127,
1328 -1, -1, -1, -1, -1, 133, -1, -1, -1, 137,
1329 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1330 63, 64, -1, -1, -1, -1, -1, 70, 71, 72,
1331 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
1332 83, 84, 85, 86, -1, 3, 4, 5, 6, -1,
1333 -1, 9, -1, -1, -1, -1, 14, -1, 101, 102,
1334 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
1335 -1, -1, 30, 31, -1, -1, -1, -1, 121, -1,
1336 -1, -1, -1, 126, 127, -1, -1, -1, -1, -1,
1337 133, -1, -1, -1, 137, 53, 54, 55, 56, 57,
1338 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
1339 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
1340 78, 79, 80, -1, -1, 83, 84, 85, 86, -1,
1341 3, 4, 5, 6, -1, -1, 9, -1, -1, -1,
1342 -1, 14, -1, 101, 102, 103, 104, 105, 106, 107,
1343 108, 109, -1, -1, -1, -1, -1, 30, 31, -1,
1344 -1, -1, -1, 121, -1, -1, -1, -1, 126, 127,
1345 -1, -1, -1, -1, -1, 133, -1, -1, -1, 137,
1346 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1347 63, 64, -1, -1, -1, -1, -1, 70, 71, 72,
1348 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
1349 83, 84, 85, 86, -1, 3, 4, 5, 6, -1,
1350 -1, 9, -1, -1, -1, -1, 14, -1, 101, 102,
1351 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
1352 -1, -1, 30, 31, -1, -1, -1, -1, 121, -1,
1353 -1, -1, -1, 126, 127, -1, -1, -1, -1, -1,
1354 133, -1, -1, -1, 137, 53, 54, 55, 56, 57,
1355 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
1356 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
1357 78, 79, 80, -1, -1, 83, 84, 85, 86, -1,
1358 3, 4, 5, -1, -1, -1, 9, -1, -1, -1,
1359 -1, 14, -1, 101, 102, 103, 104, 105, 106, 107,
1360 108, 109, -1, -1, -1, -1, -1, 30, 31, -1,
1361 -1, -1, -1, 121, -1, -1, -1, -1, 126, 127,
1362 -1, -1, -1, -1, -1, 133, -1, -1, -1, 137,
1363 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1364 63, 64, -1, -1, -1, -1, -1, 70, 71, 72,
1365 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
1366 83, 84, 85, 86, -1, 3, 4, 5, -1, -1,
1367 -1, 9, -1, -1, -1, -1, 14, -1, 101, 102,
1368 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
1369 -1, -1, 30, 31, -1, -1, -1, -1, -1, -1,
1370 -1, -1, 125, 126, 127, -1, -1, -1, -1, -1,
1371 133, -1, -1, -1, 137, 53, 54, 55, 56, 57,
1372 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
1373 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
1374 78, 79, 80, -1, -1, 83, 84, 85, 86, -1,
1375 3, 4, 5, -1, -1, -1, 9, -1, -1, -1,
1376 -1, 14, -1, 101, 102, 103, 104, 105, 106, 107,
1377 108, 109, -1, -1, -1, -1, -1, 30, 31, -1,
1378 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
1379 -1, -1, -1, -1, -1, 133, 134, -1, -1, 137,
1380 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1381 63, 64, -1, -1, -1, -1, -1, 70, 71, 72,
1382 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
1383 83, 84, 85, 86, -1, 3, 4, 5, -1, -1,
1384 -1, 9, -1, -1, -1, -1, 14, -1, 101, 102,
1385 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
1386 -1, -1, 30, 31, -1, -1, -1, -1, -1, -1,
1387 -1, -1, -1, 126, 127, -1, -1, -1, -1, -1,
1388 133, -1, -1, -1, 137, 53, 54, 55, 56, 57,
1389 58, 59, 60, 61, 62, 63, 64, -1, -1, -1,
1390 -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
1391 78, 79, 80, -1, -1, 83, 84, 85, 86, -1,
1392 3, 4, 5, -1, -1, -1, 9, -1, -1, -1,
1393 -1, 14, -1, 101, 102, 103, 104, 105, 106, 107,
1394 108, 109, -1, -1, -1, -1, -1, 30, 31, -1,
1395 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
1396 -1, -1, -1, -1, -1, 133, -1, -1, -1, 137,
1397 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1398 63, 64, -1, -1, -1, -1, -1, 70, 71, 72,
1399 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
1400 83, 84, 85, 86, -1, -1, 3, 4, 5, -1,
1401 -1, -1, 9, -1, -1, -1, -1, 14, 101, 102,
1402 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
1403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1404 -1, -1, -1, 126, 127, -1, -1, -1, -1, -1,
1405 133, 48, -1, -1, 137, -1, 53, 54, 55, 56,
1406 57, 58, 59, 60, 61, 62, 63, 64, -1, -1,
1407 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
1408 77, 78, 79, 80, -1, -1, 83, 84, 85, 86,
1409 -1, -1, 3, 4, 5, -1, -1, -1, 9, -1,
1410 -1, -1, -1, 14, 101, 102, 103, 104, 105, 106,
1411 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
1412 -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
1413 127, -1, -1, -1, -1, -1, 133, 48, -1, -1,
1414 137, -1, 53, 54, 55, 56, 57, 58, 59, 60,
1415 61, 62, 63, 64, -1, -1, -1, -1, -1, 70,
1416 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1417 -1, -1, 83, 84, 85, 86, -1, 3, 4, 5,
1418 -1, -1, -1, 9, -1, -1, -1, -1, 14, -1,
1419 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
1420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1421 -1, -1, -1, -1, -1, 126, 127, -1, -1, -1,
1422 -1, -1, 133, -1, -1, -1, 137, 53, 54, 55,
1423 56, 57, 58, 59, 60, 61, 62, 63, 64, -1,
1424 -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
1425 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
1426 86, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1427 -1, -1, -1, -1, -1, 101, 102, 103, 104, 105,
1428 106, 107, 108, 109, -1, 54, 55, 56, 57, 58,
1429 59, 60, 61, 62, 63, 64, 30, 31, -1, -1,
1430 126, 127, -1, -1, -1, -1, -1, 133, -1, -1,
1431 -1, 137, -1, -1, 83, 84, 85, 86, -1, -1,
1432 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1433 64, -1, 101, 102, 103, 104, 105, 106, 107, 108,
1434 109, -1, -1, -1, -1, 48, -1, -1, 51, 83,
1435 84, 85, 86, -1, -1, 48, 125, -1, 51, -1,
1436 -1, -1, -1, -1, -1, -1, -1, 101, 102, 103,
1437 104, 105, 106, 107, 108, 109, 95, 96, 97, 98,
1438 99, 100, -1, -1, -1, -1, -1, -1, -1, -1,
1439 -1, 125, 95, 96, 97, 98, 99, 100, -1, -1,
1440 -1, -1, 95, 96, 97, 98, 99, 100, -1, -1,
1441 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
1442 -1, -1, -1, -1, -1, -1, 129, 130, 131, 132,
1443 133, 134, 135, 136, -1, 138, 129, 130, 131, 132,
1444 133, 134, 135, 136, -1, 138, 54, 55, 56, 57,
1445 58, 59, 60, 61, 62, 63, 64, 54, 55, 56,
1446 57, 58, 59, 60, 61, 62, 63, 64, -1, -1,
1447 -1, -1, -1, -1, -1, 83, 84, 85, 86, -1,
1448 -1, -1, -1, -1, -1, -1, 83, 84, 85, 86,
1449 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
1450 108, 109, -1, -1, 101, 102, 103, 104, 105, 106,
1451 107, 108, 109, -1, -1, -1, -1, 125, 95, 96,
1452 97, 98, 99, 100, -1, -1, -1, 95, 96, 97,
1453 98, 99, 100, -1, -1, -1, 95, -1, 97, 98,
1454 99, 100, -1, -1, -1, 95, -1, 97, 98, 99,
1455 100, -1, -1, 130, 131, 132, 133, 134, 135, 136,
1456 -1, 138, 130, 131, 132, 133, 134, 135, 136, -1,
1457 138, 130, 131, 132, 133, 134, 135, 136, -1, 138,
1458 130, 131, 132, 133, 134, 135, 136, -1, 138
1461 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1462 symbol of state STATE-NUM. */
1463 static const yytype_uint8 yystos[] =
1465 0, 139, 147, 148, 150, 151, 0, 3, 4, 6,
1466 7, 15, 16, 17, 18, 19, 20, 21, 22, 25,
1467 28, 29, 30, 31, 81, 87, 88, 91, 93, 110,
1468 112, 121, 122, 128, 142, 149, 152, 161, 164, 170,
1469 174, 176, 139, 141, 140, 141, 140, 6, 82, 153,
1470 3, 4, 5, 9, 14, 30, 31, 53, 54, 55,
1471 56, 57, 58, 59, 60, 61, 62, 63, 64, 70,
1472 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1473 83, 84, 85, 86, 101, 102, 103, 104, 105, 106,
1474 107, 108, 109, 126, 127, 133, 137, 162, 163, 176,
1475 178, 179, 181, 182, 183, 184, 185, 186, 191, 192,
1476 193, 194, 4, 126, 137, 167, 168, 176, 182, 192,
1477 194, 4, 192, 126, 162, 175, 171, 150, 151, 4,
1478 129, 94, 11, 12, 13, 23, 24, 26, 27, 28,
1479 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1480 39, 40, 41, 42, 43, 44, 45, 46, 47, 89,
1481 90, 113, 114, 115, 116, 117, 118, 119, 120, 176,
1482 192, 150, 167, 140, 3, 4, 160, 82, 156, 8,
1483 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
1484 126, 30, 31, 101, 102, 30, 31, 101, 102, 167,
1485 178, 181, 182, 192, 194, 167, 192, 192, 163, 132,
1486 133, 65, 66, 67, 68, 69, 125, 191, 6, 14,
1487 15, 16, 17, 18, 19, 20, 22, 128, 187, 187,
1488 48, 183, 48, 51, 95, 96, 97, 98, 99, 100,
1489 129, 130, 131, 132, 133, 134, 135, 136, 138, 180,
1490 130, 140, 168, 192, 37, 95, 96, 97, 98, 95,
1491 96, 176, 6, 148, 150, 148, 170, 4, 159, 192,
1492 192, 192, 192, 192, 192, 192, 192, 178, 192, 178,
1493 178, 3, 9, 14, 125, 126, 178, 188, 189, 190,
1494 191, 126, 181, 192, 192, 192, 192, 192, 192, 176,
1495 176, 176, 192, 192, 3, 4, 30, 31, 170, 178,
1496 179, 182, 167, 154, 8, 167, 167, 167, 167, 167,
1497 167, 167, 167, 167, 145, 167, 167, 145, 129, 132,
1498 133, 145, 145, 180, 130, 10, 181, 181, 3, 144,
1499 183, 49, 192, 192, 192, 192, 192, 192, 192, 192,
1500 192, 192, 192, 192, 192, 192, 192, 178, 178, 192,
1501 165, 168, 192, 168, 192, 176, 176, 168, 192, 168,
1502 192, 177, 144, 143, 8, 189, 191, 187, 187, 3,
1503 189, 125, 191, 181, 192, 8, 157, 145, 145, 129,
1504 145, 145, 145, 129, 129, 145, 145, 145, 178, 181,
1505 181, 178, 178, 50, 52, 129, 33, 8, 129, 145,
1506 172, 189, 189, 129, 3, 155, 111, 166, 167, 167,
1507 167, 145, 145, 145, 52, 129, 51, 178, 178, 192,
1508 192, 170, 173, 189, 166, 6, 145, 145, 145, 178,
1509 178, 131, 36, 169, 145, 145, 131, 134, 192, 92,
1513 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1514 static const yytype_uint8 yyr1[] =
1516 0, 146, 147, 147, 148, 149, 149, 150, 150, 151,
1517 151, 152, 152, 152, 152, 152, 152, 152, 152, 152,
1518 152, 153, 152, 152, 154, 155, 152, 156, 157, 152,
1519 158, 152, 152, 159, 152, 152, 152, 160, 160, 161,
1520 161, 161, 162, 162, 163, 163, 163, 165, 164, 166,
1521 166, 167, 167, 168, 168, 168, 168, 168, 168, 168,
1522 168, 168, 169, 169, 169, 170, 170, 170, 170, 171,
1523 172, 170, 170, 173, 173, 174, 174, 174, 174, 174,
1524 174, 174, 174, 174, 174, 174, 175, 174, 174, 174,
1525 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1526 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1527 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1528 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
1529 174, 174, 174, 174, 174, 174, 176, 176, 177, 177,
1530 178, 178, 178, 179, 179, 179, 179, 179, 179, 179,
1531 179, 179, 179, 180, 180, 181, 181, 182, 182, 182,
1532 182, 182, 183, 183, 183, 184, 184, 185, 185, 186,
1533 186, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1534 188, 188, 189, 189, 189, 190, 190, 190, 190, 190,
1535 190, 191, 191, 191, 191, 191, 191, 191, 191, 191,
1536 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
1537 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
1538 191, 191, 191, 192, 192, 193, 194, 194, 194, 194,
1539 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
1540 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
1541 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
1545 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1546 static const yytype_uint8 yyr2[] =
1548 0, 2, 1, 1, 3, 1, 3, 0, 1, 1,
1549 2, 3, 3, 4, 1, 1, 1, 1, 1, 2,
1550 2, 0, 3, 2, 0, 0, 7, 0, 0, 6,
1551 0, 10, 1, 0, 4, 1, 1, 1, 1, 2,
1552 2, 3, 1, 2, 1, 1, 1, 0, 5, 0,
1553 2, 1, 1, 3, 3, 3, 3, 3, 3, 3,
1554 3, 2, 0, 2, 3, 1, 4, 4, 4, 0,
1555 0, 6, 1, 0, 1, 1, 1, 1, 1, 1,
1556 1, 1, 1, 1, 2, 3, 0, 4, 3, 3,
1557 3, 3, 2, 2, 3, 2, 3, 2, 3, 2,
1558 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
1559 3, 2, 3, 2, 3, 3, 3, 3, 3, 3,
1560 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
1561 2, 2, 2, 2, 3, 2, 1, 5, 0, 3,
1562 1, 1, 3, 1, 3, 5, 3, 5, 5, 5,
1563 7, 6, 8, 1, 4, 3, 3, 1, 2, 2,
1564 3, 1, 1, 1, 3, 1, 3, 1, 2, 2,
1565 2, 1, 1, 1, 1, 1, 1, 1, 2, 1,
1566 2, 3, 1, 1, 2, 1, 5, 4, 3, 3,
1567 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1568 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
1569 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,
1570 1, 1, 1, 1, 1, 3, 1, 1, 2, 2,
1571 2, 2, 2, 3, 3, 3, 3, 3, 3, 2,
1572 3, 4, 4, 6, 4, 4, 4, 6, 6, 4,
1573 4, 3, 4, 3, 3, 3, 3, 3, 3, 3,
1578 #define yyerrok (yyerrstatus = 0)
1579 #define yyclearin (yychar = YYEMPTY)
1580 #define YYEMPTY (-2)
1583 #define YYACCEPT goto yyacceptlab
1584 #define YYABORT goto yyabortlab
1585 #define YYERROR goto yyerrorlab
1588 #define YYRECOVERING() (!!yyerrstatus)
1590 #define YYBACKUP(Token, Value) \
1592 if (yychar == YYEMPTY) \
1596 YYPOPSTACK (yylen); \
1602 yyerror (YY_("syntax error: cannot back up")); \
1607 /* Error token number */
1609 #define YYERRCODE 256
1613 /* Enable debugging if requested. */
1617 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1618 # define YYFPRINTF fprintf
1621 # define YYDPRINTF(Args) \
1627 /* This macro is provided for backward compatibility. */
1628 #ifndef YY_LOCATION_PRINT
1629 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1633 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1637 YYFPRINTF (stderr, "%s ", Title); \
1638 yy_symbol_print (stderr, \
1640 YYFPRINTF (stderr, "\n"); \
1645 /*-----------------------------------.
1646 | Print this symbol's value on YYO. |
1647 `-----------------------------------*/
1650 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
1652 FILE *yyoutput = yyo;
1657 if (yytype < YYNTOKENS)
1658 YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
1664 /*---------------------------.
1665 | Print this symbol on YYO. |
1666 `---------------------------*/
1669 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
1671 YYFPRINTF (yyo, "%s %s (",
1672 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1674 yy_symbol_value_print (yyo, yytype, yyvaluep);
1675 YYFPRINTF (yyo, ")");
1678 /*------------------------------------------------------------------.
1679 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1681 `------------------------------------------------------------------*/
1684 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1686 YYFPRINTF (stderr, "Stack now");
1687 for (; yybottom <= yytop; yybottom++)
1689 int yybot = *yybottom;
1690 YYFPRINTF (stderr, " %d", yybot);
1692 YYFPRINTF (stderr, "\n");
1695 # define YY_STACK_PRINT(Bottom, Top) \
1698 yy_stack_print ((Bottom), (Top)); \
1702 /*------------------------------------------------.
1703 | Report that the YYRULE is going to be reduced. |
1704 `------------------------------------------------*/
1707 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1709 unsigned long yylno = yyrline[yyrule];
1710 int yynrhs = yyr2[yyrule];
1712 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1714 /* The symbols being reduced. */
1715 for (yyi = 0; yyi < yynrhs; yyi++)
1717 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1718 yy_symbol_print (stderr,
1719 yystos[yyssp[yyi + 1 - yynrhs]],
1720 &(yyvsp[(yyi + 1) - (yynrhs)])
1722 YYFPRINTF (stderr, "\n");
1726 # define YY_REDUCE_PRINT(Rule) \
1729 yy_reduce_print (yyssp, yyvsp, Rule); \
1732 /* Nonzero means print parse trace. It is left uninitialized so that
1733 multiple parsers can coexist. */
1735 #else /* !YYDEBUG */
1736 # define YYDPRINTF(Args)
1737 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1738 # define YY_STACK_PRINT(Bottom, Top)
1739 # define YY_REDUCE_PRINT(Rule)
1740 #endif /* !YYDEBUG */
1743 /* YYINITDEPTH -- initial size of the parser's stacks. */
1745 # define YYINITDEPTH 200
1748 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1749 if the built-in stack extension method is used).
1751 Do not make this value too large; the results are undefined if
1752 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1753 evaluated with infinite-precision integer arithmetic. */
1756 # define YYMAXDEPTH 10000
1763 # if defined __GLIBC__ && defined _STRING_H
1764 # define yystrlen strlen
1766 /* Return the length of YYSTR. */
1768 yystrlen (const char *yystr)
1771 for (yylen = 0; yystr[yylen]; yylen++)
1779 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1780 # define yystpcpy stpcpy
1782 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1785 yystpcpy (char *yydest, const char *yysrc)
1788 const char *yys = yysrc;
1790 while ((*yyd++ = *yys++) != '\0')
1799 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1800 quotes and backslashes, so that it's suitable for yyerror. The
1801 heuristic is that double-quoting is unnecessary unless the string
1802 contains an apostrophe, a comma, or backslash (other than
1803 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1804 null, do not copy; instead, return the length of what the result
1807 yytnamerr (char *yyres, const char *yystr)
1812 char const *yyp = yystr;
1819 goto do_not_strip_quotes;
1823 goto do_not_strip_quotes;
1836 do_not_strip_quotes: ;
1840 return yystrlen (yystr);
1842 return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
1846 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1847 about the unexpected token YYTOKEN for the state stack whose top is
1850 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1851 not large enough to hold the message. In that case, also set
1852 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1853 required number of bytes is too large to store. */
1855 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1856 yytype_int16 *yyssp, int yytoken)
1858 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1859 YYSIZE_T yysize = yysize0;
1860 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1861 /* Internationalized format string. */
1862 const char *yyformat = YY_NULLPTR;
1863 /* Arguments of yyformat. */
1864 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1865 /* Number of reported tokens (one for the "unexpected", one per
1869 /* There are many possibilities here to consider:
1870 - If this state is a consistent state with a default action, then
1871 the only way this function was invoked is if the default action
1872 is an error action. In that case, don't check for expected
1873 tokens because there are none.
1874 - The only way there can be no lookahead present (in yychar) is if
1875 this state is a consistent state with a default action. Thus,
1876 detecting the absence of a lookahead is sufficient to determine
1877 that there is no unexpected or expected token to report. In that
1878 case, just report a simple "syntax error".
1879 - Don't assume there isn't a lookahead just because this state is a
1880 consistent state with a default action. There might have been a
1881 previous inconsistent state, consistent state with a non-default
1882 action, or user semantic action that manipulated yychar.
1883 - Of course, the expected token list depends on states to have
1884 correct lookahead information, and it depends on the parser not
1885 to perform extra reductions after fetching a lookahead from the
1886 scanner and before detecting a syntax error. Thus, state merging
1887 (from LALR or IELR) and default reductions corrupt the expected
1888 token list. However, the list is correct for canonical LR with
1889 one exception: it will still contain any token that will not be
1890 accepted due to an error action in a later state.
1892 if (yytoken != YYEMPTY)
1894 int yyn = yypact[*yyssp];
1895 yyarg[yycount++] = yytname[yytoken];
1896 if (!yypact_value_is_default (yyn))
1898 /* Start YYX at -YYN if negative to avoid negative indexes in
1899 YYCHECK. In other words, skip the first -YYN actions for
1900 this state because they are default actions. */
1901 int yyxbegin = yyn < 0 ? -yyn : 0;
1902 /* Stay within bounds of both yycheck and yytname. */
1903 int yychecklim = YYLAST - yyn + 1;
1904 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1907 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1908 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1909 && !yytable_value_is_error (yytable[yyx + yyn]))
1911 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1917 yyarg[yycount++] = yytname[yyx];
1919 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1920 if (! (yysize <= yysize1
1921 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1931 # define YYCASE_(N, S) \
1935 default: /* Avoid compiler warnings. */
1936 YYCASE_(0, YY_("syntax error"));
1937 YYCASE_(1, YY_("syntax error, unexpected %s"));
1938 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1939 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1940 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1941 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1946 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1947 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1952 if (*yymsg_alloc < yysize)
1954 *yymsg_alloc = 2 * yysize;
1955 if (! (yysize <= *yymsg_alloc
1956 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1957 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1961 /* Avoid sprintf, as that infringes on the user's name space.
1962 Don't have undefined behavior even if the translation
1963 produced a string with the wrong number of "%s"s. */
1967 while ((*yyp = *yyformat) != '\0')
1968 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1970 yyp += yytnamerr (yyp, yyarg[yyi++]);
1981 #endif /* YYERROR_VERBOSE */
1983 /*-----------------------------------------------.
1984 | Release the memory associated to this symbol. |
1985 `-----------------------------------------------*/
1988 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1993 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1995 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1997 YY_IGNORE_MAYBE_UNINITIALIZED_END
2003 /* The lookahead symbol. */
2006 /* The semantic value of the lookahead symbol. */
2008 /* Number of syntax errors so far. */
2020 /* Number of tokens to shift before error messages enabled. */
2023 /* The stacks and their tools:
2024 'yyss': related to states.
2025 'yyvs': related to semantic values.
2027 Refer to the stacks through separate pointers, to allow yyoverflow
2028 to reallocate them elsewhere. */
2030 /* The state stack. */
2031 yytype_int16 yyssa[YYINITDEPTH];
2033 yytype_int16 *yyssp;
2035 /* The semantic value stack. */
2036 YYSTYPE yyvsa[YYINITDEPTH];
2040 YYSIZE_T yystacksize;
2044 /* Lookahead token as an internal (translated) token number. */
2046 /* The variables used to return semantic value and location from the
2051 /* Buffer for error messages, and its allocated size. */
2053 char *yymsg = yymsgbuf;
2054 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2057 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2059 /* The number of symbols on the RHS of the reduced rule.
2060 Keep to zero when no symbol should be popped. */
2063 yyssp = yyss = yyssa;
2064 yyvsp = yyvs = yyvsa;
2065 yystacksize = YYINITDEPTH;
2067 YYDPRINTF ((stderr, "Starting parse\n"));
2072 yychar = YYEMPTY; /* Cause a token to be read. */
2075 /*------------------------------------------------------------.
2076 | yynewstate -- Push a new state, which is found in yystate. |
2077 `------------------------------------------------------------*/
2079 /* In all cases, when you get here, the value and location stacks
2080 have just been pushed. So pushing a state here evens the stacks. */
2084 *yyssp = (yytype_int16) yystate;
2086 if (yyss + yystacksize - 1 <= yyssp)
2088 /* Get the current used size of the three stacks, in elements. */
2089 YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
2093 /* Give user a chance to reallocate the stack. Use copies of
2094 these so that the &'s don't force the real ones into
2096 YYSTYPE *yyvs1 = yyvs;
2097 yytype_int16 *yyss1 = yyss;
2099 /* Each stack pointer address is followed by the size of the
2100 data in use in that stack, in bytes. This used to be a
2101 conditional around just the two extra args, but that might
2102 be undefined if yyoverflow is a macro. */
2103 yyoverflow (YY_("memory exhausted"),
2104 &yyss1, yysize * sizeof (*yyssp),
2105 &yyvs1, yysize * sizeof (*yyvsp),
2110 #else /* no yyoverflow */
2111 # ifndef YYSTACK_RELOCATE
2112 goto yyexhaustedlab;
2114 /* Extend the stack our own way. */
2115 if (YYMAXDEPTH <= yystacksize)
2116 goto yyexhaustedlab;
2118 if (YYMAXDEPTH < yystacksize)
2119 yystacksize = YYMAXDEPTH;
2122 yytype_int16 *yyss1 = yyss;
2123 union yyalloc *yyptr =
2124 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2126 goto yyexhaustedlab;
2127 YYSTACK_RELOCATE (yyss_alloc, yyss);
2128 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2129 # undef YYSTACK_RELOCATE
2131 YYSTACK_FREE (yyss1);
2134 #endif /* no yyoverflow */
2136 yyssp = yyss + yysize - 1;
2137 yyvsp = yyvs + yysize - 1;
2139 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2140 (unsigned long) yystacksize));
2142 if (yyss + yystacksize - 1 <= yyssp)
2146 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2148 if (yystate == YYFINAL)
2158 /* Do appropriate processing given the current state. Read a
2159 lookahead token if we need one and don't already have one. */
2161 /* First try to decide what to do without reference to lookahead token. */
2162 yyn = yypact[yystate];
2163 if (yypact_value_is_default (yyn))
2166 /* Not known => get a lookahead token if don't already have one. */
2168 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2169 if (yychar == YYEMPTY)
2171 YYDPRINTF ((stderr, "Reading a token: "));
2175 if (yychar <= YYEOF)
2177 yychar = yytoken = YYEOF;
2178 YYDPRINTF ((stderr, "Now at end of input.\n"));
2182 yytoken = YYTRANSLATE (yychar);
2183 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2186 /* If the proper action on seeing token YYTOKEN is to reduce or to
2187 detect an error, take that action. */
2189 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2194 if (yytable_value_is_error (yyn))
2200 /* Count tokens shifted since error; after three, turn off error
2205 /* Shift the lookahead token. */
2206 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2208 /* Discard the shifted token. */
2212 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2214 YY_IGNORE_MAYBE_UNINITIALIZED_END
2219 /*-----------------------------------------------------------.
2220 | yydefault -- do the default action for the current state. |
2221 `-----------------------------------------------------------*/
2223 yyn = yydefact[yystate];
2229 /*-----------------------------.
2230 | yyreduce -- Do a reduction. |
2231 `-----------------------------*/
2233 /* yyn is the number of a rule to reduce with. */
2236 /* If YYLEN is nonzero, implement the default value of the action:
2239 Otherwise, the following line sets YYVAL to garbage.
2240 This behavior is undocumented and Bison
2241 users should not rely upon it. Assigning to YYVAL
2242 unconditionally makes the parser a bit smaller, and it avoids a
2243 GCC warning that YYVAL may be used uninitialized. */
2244 yyval = yyvsp[1-yylen];
2247 YY_REDUCE_PRINT (yyn);
2251 #line 277 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2254 print_picture(olist.head);
2256 #line 2257 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2260 #line 286 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2261 { (yyval.pl) = (yyvsp[-1].pl); }
2262 #line 2263 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2266 #line 291 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2267 { (yyval.pl) = (yyvsp[0].pl); }
2268 #line 2269 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2272 #line 293 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2273 { (yyval.pl) = (yyvsp[-2].pl); }
2274 #line 2275 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2278 #line 308 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2281 graphname = new char[strlen((yyvsp[0].str)) + 1];
2282 strcpy(graphname, (yyvsp[0].str));
2283 a_delete (yyvsp[0].str);
2285 #line 2286 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2289 #line 316 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2291 define_variable((yyvsp[-2].str), (yyvsp[0].x));
2292 free((yyvsp[-2].str));
2294 #line 2295 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2298 #line 321 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2300 place *p = lookup_label((yyvsp[-3].str));
2302 lex_error("variable '%1' not defined", (yyvsp[-3].str));
2306 p->x = (yyvsp[0].x);
2308 free((yyvsp[-3].str));
2310 #line 2311 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2314 #line 333 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2315 { current_direction = UP_DIRECTION; }
2316 #line 2317 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2320 #line 335 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2321 { current_direction = DOWN_DIRECTION; }
2322 #line 2323 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2326 #line 337 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2327 { current_direction = LEFT_DIRECTION; }
2328 #line 2329 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2332 #line 339 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2333 { current_direction = RIGHT_DIRECTION; }
2334 #line 2335 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2338 #line 341 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2340 olist.append(make_command_object((yyvsp[0].lstr).str, (yyvsp[0].lstr).filename,
2341 (yyvsp[0].lstr).lineno));
2343 #line 2344 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2347 #line 346 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2349 olist.append(make_command_object((yyvsp[0].lstr).str, (yyvsp[0].lstr).filename,
2350 (yyvsp[0].lstr).lineno));
2352 #line 2353 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2356 #line 351 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2358 fprintf(stderr, "%s\n", (yyvsp[0].lstr).str);
2359 a_delete (yyvsp[0].lstr).str;
2362 #line 2363 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2366 #line 357 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2368 #line 2369 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2372 #line 359 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2376 lex_error("unsafe to run command '%1'", (yyvsp[0].str));
2378 system((yyvsp[0].str));
2379 a_delete (yyvsp[0].str);
2381 #line 2382 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2385 #line 368 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2389 do_copy((yyvsp[0].lstr).str);
2390 // do not delete the filename
2392 #line 2393 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2396 #line 375 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2398 #line 2399 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2402 #line 377 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2404 #line 2405 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2408 #line 379 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2412 copy_file_thru((yyvsp[-5].lstr).str, (yyvsp[-2].str), (yyvsp[0].str));
2413 // do not delete the filename
2414 a_delete (yyvsp[-2].str);
2415 a_delete (yyvsp[0].str);
2417 #line 2418 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2421 #line 388 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2423 #line 2424 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2427 #line 390 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2429 #line 2430 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2433 #line 392 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2437 copy_rest_thru((yyvsp[-2].str), (yyvsp[0].str));
2438 a_delete (yyvsp[-2].str);
2439 a_delete (yyvsp[0].str);
2441 #line 2442 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2445 #line 400 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2447 #line 2448 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2451 #line 402 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2456 do_for((yyvsp[-8].str), (yyvsp[-6].x), (yyvsp[-4].x), (yyvsp[-3].by).is_multiplicative, (yyvsp[-3].by).val, (yyvsp[0].str));
2458 #line 2459 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2462 #line 409 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2466 if ((yyvsp[0].if_data).x != 0.0)
2467 push_body((yyvsp[0].if_data).body);
2468 a_delete (yyvsp[0].if_data).body;
2470 #line 2471 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2474 #line 417 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2476 #line 2477 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2480 #line 419 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2485 if ((yyvsp[-3].if_data).x != 0.0)
2486 push_body((yyvsp[-3].if_data).body);
2488 push_body((yyvsp[0].str));
2489 free((yyvsp[-3].if_data).body);
2490 free((yyvsp[0].str));
2492 #line 2493 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2496 #line 432 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2497 { define_variable("scale", 1.0); }
2498 #line 2499 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2502 #line 442 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2504 reset((yyvsp[0].str));
2505 a_delete (yyvsp[0].str);
2507 #line 2508 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2511 #line 447 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2513 reset((yyvsp[0].str));
2514 a_delete (yyvsp[0].str);
2516 #line 2517 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2520 #line 452 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2522 reset((yyvsp[0].str));
2523 a_delete (yyvsp[0].str);
2525 #line 2526 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2529 #line 460 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2530 { (yyval.lstr) = (yyvsp[0].lstr); }
2531 #line 2532 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2535 #line 462 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2537 (yyval.lstr).str = new char[strlen((yyvsp[-1].lstr).str) + strlen((yyvsp[0].lstr).str) + 1];
2538 strcpy((yyval.lstr).str, (yyvsp[-1].lstr).str);
2539 strcat((yyval.lstr).str, (yyvsp[0].lstr).str);
2540 a_delete (yyvsp[-1].lstr).str;
2541 a_delete (yyvsp[0].lstr).str;
2542 if ((yyvsp[-1].lstr).filename) {
2543 (yyval.lstr).filename = (yyvsp[-1].lstr).filename;
2544 (yyval.lstr).lineno = (yyvsp[-1].lstr).lineno;
2546 else if ((yyvsp[0].lstr).filename) {
2547 (yyval.lstr).filename = (yyvsp[0].lstr).filename;
2548 (yyval.lstr).lineno = (yyvsp[0].lstr).lineno;
2551 #line 2552 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2555 #line 481 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2557 (yyval.lstr).str = new char[GDIGITS + 1];
2558 sprintf((yyval.lstr).str, "%g", (yyvsp[0].x));
2559 (yyval.lstr).filename = 0;
2560 (yyval.lstr).lineno = 0;
2562 #line 2563 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2566 #line 488 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2567 { (yyval.lstr) = (yyvsp[0].lstr); }
2568 #line 2569 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2572 #line 490 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2574 (yyval.lstr).str = new char[GDIGITS + 2 + GDIGITS + 1];
2575 sprintf((yyval.lstr).str, "%g, %g", (yyvsp[0].pair).x, (yyvsp[0].pair).y);
2576 (yyval.lstr).filename = 0;
2577 (yyval.lstr).lineno = 0;
2579 #line 2580 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2583 #line 500 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2585 #line 2586 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2589 #line 502 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2592 (yyval.if_data).x = (yyvsp[-3].x);
2593 (yyval.if_data).body = (yyvsp[0].str);
2595 #line 2596 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2599 #line 511 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2600 { (yyval.str) = 0; }
2601 #line 2602 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2605 #line 513 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2606 { (yyval.str) = (yyvsp[0].lstr).str; }
2607 #line 2608 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2611 #line 518 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2612 { (yyval.x) = (yyvsp[0].x); }
2613 #line 2614 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2617 #line 520 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2618 { (yyval.x) = (yyvsp[0].x); }
2619 #line 2620 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2623 #line 525 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2625 (yyval.x) = strcmp((yyvsp[-2].lstr).str, (yyvsp[0].lstr).str) == 0;
2626 a_delete (yyvsp[-2].lstr).str;
2627 a_delete (yyvsp[0].lstr).str;
2629 #line 2630 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2633 #line 531 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2635 (yyval.x) = strcmp((yyvsp[-2].lstr).str, (yyvsp[0].lstr).str) != 0;
2636 a_delete (yyvsp[-2].lstr).str;
2637 a_delete (yyvsp[0].lstr).str;
2639 #line 2640 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2643 #line 537 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2644 { (yyval.x) = ((yyvsp[-2].x) != 0.0 && (yyvsp[0].x) != 0.0); }
2645 #line 2646 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2649 #line 539 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2650 { (yyval.x) = ((yyvsp[-2].x) != 0.0 && (yyvsp[0].x) != 0.0); }
2651 #line 2652 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2655 #line 541 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2656 { (yyval.x) = ((yyvsp[-2].x) != 0.0 && (yyvsp[0].x) != 0.0); }
2657 #line 2658 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2661 #line 543 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2662 { (yyval.x) = ((yyvsp[-2].x) != 0.0 || (yyvsp[0].x) != 0.0); }
2663 #line 2664 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2667 #line 545 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2668 { (yyval.x) = ((yyvsp[-2].x) != 0.0 || (yyvsp[0].x) != 0.0); }
2669 #line 2670 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2673 #line 547 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2674 { (yyval.x) = ((yyvsp[-2].x) != 0.0 || (yyvsp[0].x) != 0.0); }
2675 #line 2676 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2679 #line 549 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2680 { (yyval.x) = ((yyvsp[0].x) == 0.0); }
2681 #line 2682 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2685 #line 555 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2687 (yyval.by).val = 1.0;
2688 (yyval.by).is_multiplicative = 0;
2690 #line 2691 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2694 #line 560 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2696 (yyval.by).val = (yyvsp[0].x);
2697 (yyval.by).is_multiplicative = 0;
2699 #line 2700 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2703 #line 565 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2705 (yyval.by).val = (yyvsp[0].x);
2706 (yyval.by).is_multiplicative = 1;
2708 #line 2709 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2712 #line 573 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2714 (yyval.pl).obj = (yyvsp[0].spec)->make_object(¤t_position,
2715 ¤t_direction);
2716 if ((yyval.pl).obj == 0)
2718 delete (yyvsp[0].spec);
2720 olist.append((yyval.pl).obj);
2722 (yyval.pl).x = current_position.x;
2723 (yyval.pl).y = current_position.y;
2726 #line 2727 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2730 #line 587 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2732 (yyval.pl) = (yyvsp[0].pl);
2733 define_label((yyvsp[-3].str), & (yyval.pl));
2734 free((yyvsp[-3].str));
2736 #line 2737 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2740 #line 593 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2743 (yyval.pl).x = (yyvsp[0].pair).x;
2744 (yyval.pl).y = (yyvsp[0].pair).y;
2745 define_label((yyvsp[-3].str), & (yyval.pl));
2746 free((yyvsp[-3].str));
2748 #line 2749 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2752 #line 601 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2754 (yyval.pl) = (yyvsp[0].pl);
2755 define_label((yyvsp[-3].str), & (yyval.pl));
2756 free((yyvsp[-3].str));
2758 #line 2759 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2762 #line 607 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2764 (yyval.state).x = current_position.x;
2765 (yyval.state).y = current_position.y;
2766 (yyval.state).dir = current_direction;
2768 #line 2769 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2772 #line 613 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2774 current_position.x = (yyvsp[-2].state).x;
2775 current_position.y = (yyvsp[-2].state).y;
2776 current_direction = (yyvsp[-2].state).dir;
2778 #line 2779 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2782 #line 619 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2784 (yyval.pl) = (yyvsp[-3].pl);
2786 #line 2787 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2790 #line 623 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2793 (yyval.pl).x = current_position.x;
2794 (yyval.pl).y = current_position.y;
2796 #line 2797 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2800 #line 632 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2802 #line 2803 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2806 #line 634 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2808 #line 2809 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2812 #line 639 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2813 { (yyval.spec) = new object_spec(BOX_OBJECT); }
2814 #line 2815 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2818 #line 641 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2819 { (yyval.spec) = new object_spec(CIRCLE_OBJECT); }
2820 #line 2821 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2824 #line 643 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2825 { (yyval.spec) = new object_spec(ELLIPSE_OBJECT); }
2826 #line 2827 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2830 #line 645 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2832 (yyval.spec) = new object_spec(ARC_OBJECT);
2833 (yyval.spec)->dir = current_direction;
2835 #line 2836 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2839 #line 650 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2841 (yyval.spec) = new object_spec(LINE_OBJECT);
2842 lookup_variable("lineht", & (yyval.spec)->segment_height);
2843 lookup_variable("linewid", & (yyval.spec)->segment_width);
2844 (yyval.spec)->dir = current_direction;
2846 #line 2847 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2850 #line 657 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2852 (yyval.spec) = new object_spec(ARROW_OBJECT);
2853 lookup_variable("lineht", & (yyval.spec)->segment_height);
2854 lookup_variable("linewid", & (yyval.spec)->segment_width);
2855 (yyval.spec)->dir = current_direction;
2857 #line 2858 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2861 #line 664 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2863 (yyval.spec) = new object_spec(MOVE_OBJECT);
2864 lookup_variable("moveht", & (yyval.spec)->segment_height);
2865 lookup_variable("movewid", & (yyval.spec)->segment_width);
2866 (yyval.spec)->dir = current_direction;
2868 #line 2869 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2872 #line 671 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2874 (yyval.spec) = new object_spec(SPLINE_OBJECT);
2875 lookup_variable("lineht", & (yyval.spec)->segment_height);
2876 lookup_variable("linewid", & (yyval.spec)->segment_width);
2877 (yyval.spec)->dir = current_direction;
2879 #line 2880 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2883 #line 678 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2885 (yyval.spec) = new object_spec(TEXT_OBJECT);
2886 (yyval.spec)->text = new text_item((yyvsp[0].lstr).str, (yyvsp[0].lstr).filename, (yyvsp[0].lstr).lineno);
2888 #line 2889 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2892 #line 683 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2894 (yyval.spec) = new object_spec(TEXT_OBJECT);
2895 (yyval.spec)->text = new text_item(format_number(0, (yyvsp[0].x)), 0, -1);
2897 #line 2898 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2901 #line 688 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2903 (yyval.spec) = new object_spec(TEXT_OBJECT);
2904 (yyval.spec)->text = new text_item(format_number((yyvsp[0].lstr).str, (yyvsp[-1].x)),
2905 (yyvsp[0].lstr).filename, (yyvsp[0].lstr).lineno);
2906 a_delete (yyvsp[0].lstr).str;
2908 #line 2909 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2912 #line 695 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2914 saved_state *p = new saved_state;
2916 p->x = current_position.x;
2917 p->y = current_position.y;
2918 p->dir = current_direction;
2919 p->tbl = current_table;
2920 p->prev = current_saved_state;
2921 current_position.x = 0.0;
2922 current_position.y = 0.0;
2923 current_table = new PTABLE(place);
2924 current_saved_state = p;
2925 olist.append(make_mark_object());
2927 #line 2928 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2931 #line 710 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2933 current_position.x = (yyvsp[-2].pstate)->x;
2934 current_position.y = (yyvsp[-2].pstate)->y;
2935 current_direction = (yyvsp[-2].pstate)->dir;
2936 (yyval.spec) = new object_spec(BLOCK_OBJECT);
2937 olist.wrap_up_block(& (yyval.spec)->oblist);
2938 (yyval.spec)->tbl = current_table;
2939 current_table = (yyvsp[-2].pstate)->tbl;
2940 current_saved_state = (yyvsp[-2].pstate)->prev;
2941 delete (yyvsp[-2].pstate);
2943 #line 2944 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2947 #line 722 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2949 (yyval.spec) = (yyvsp[-2].spec);
2950 (yyval.spec)->height = (yyvsp[0].x);
2951 (yyval.spec)->flags |= HAS_HEIGHT;
2953 #line 2954 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2957 #line 728 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2959 (yyval.spec) = (yyvsp[-2].spec);
2960 (yyval.spec)->radius = (yyvsp[0].x);
2961 (yyval.spec)->flags |= HAS_RADIUS;
2963 #line 2964 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2967 #line 734 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2969 (yyval.spec) = (yyvsp[-2].spec);
2970 (yyval.spec)->width = (yyvsp[0].x);
2971 (yyval.spec)->flags |= HAS_WIDTH;
2973 #line 2974 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2977 #line 740 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2979 (yyval.spec) = (yyvsp[-2].spec);
2980 (yyval.spec)->radius = (yyvsp[0].x)/2.0;
2981 (yyval.spec)->flags |= HAS_RADIUS;
2983 #line 2984 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
2987 #line 746 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
2989 (yyval.spec) = (yyvsp[-1].spec);
2990 (yyval.spec)->flags |= HAS_SEGMENT;
2991 switch ((yyval.spec)->dir) {
2993 (yyval.spec)->segment_pos.y += (yyvsp[0].x);
2995 case DOWN_DIRECTION:
2996 (yyval.spec)->segment_pos.y -= (yyvsp[0].x);
2998 case RIGHT_DIRECTION:
2999 (yyval.spec)->segment_pos.x += (yyvsp[0].x);
3001 case LEFT_DIRECTION:
3002 (yyval.spec)->segment_pos.x -= (yyvsp[0].x);
3006 #line 3007 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3010 #line 765 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3012 (yyval.spec) = (yyvsp[-1].spec);
3013 (yyval.spec)->dir = UP_DIRECTION;
3014 (yyval.spec)->flags |= HAS_SEGMENT;
3015 (yyval.spec)->segment_pos.y += (yyval.spec)->segment_height;
3017 #line 3018 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3021 #line 772 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3023 (yyval.spec) = (yyvsp[-2].spec);
3024 (yyval.spec)->dir = UP_DIRECTION;
3025 (yyval.spec)->flags |= HAS_SEGMENT;
3026 (yyval.spec)->segment_pos.y += (yyvsp[0].x);
3028 #line 3029 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3032 #line 779 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3034 (yyval.spec) = (yyvsp[-1].spec);
3035 (yyval.spec)->dir = DOWN_DIRECTION;
3036 (yyval.spec)->flags |= HAS_SEGMENT;
3037 (yyval.spec)->segment_pos.y -= (yyval.spec)->segment_height;
3039 #line 3040 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3043 #line 786 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3045 (yyval.spec) = (yyvsp[-2].spec);
3046 (yyval.spec)->dir = DOWN_DIRECTION;
3047 (yyval.spec)->flags |= HAS_SEGMENT;
3048 (yyval.spec)->segment_pos.y -= (yyvsp[0].x);
3050 #line 3051 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3054 #line 793 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3056 (yyval.spec) = (yyvsp[-1].spec);
3057 (yyval.spec)->dir = RIGHT_DIRECTION;
3058 (yyval.spec)->flags |= HAS_SEGMENT;
3059 (yyval.spec)->segment_pos.x += (yyval.spec)->segment_width;
3061 #line 3062 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3065 #line 800 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3067 (yyval.spec) = (yyvsp[-2].spec);
3068 (yyval.spec)->dir = RIGHT_DIRECTION;
3069 (yyval.spec)->flags |= HAS_SEGMENT;
3070 (yyval.spec)->segment_pos.x += (yyvsp[0].x);
3072 #line 3073 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3076 #line 807 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3078 (yyval.spec) = (yyvsp[-1].spec);
3079 (yyval.spec)->dir = LEFT_DIRECTION;
3080 (yyval.spec)->flags |= HAS_SEGMENT;
3081 (yyval.spec)->segment_pos.x -= (yyval.spec)->segment_width;
3083 #line 3084 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3087 #line 814 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3089 (yyval.spec) = (yyvsp[-2].spec);
3090 (yyval.spec)->dir = LEFT_DIRECTION;
3091 (yyval.spec)->flags |= HAS_SEGMENT;
3092 (yyval.spec)->segment_pos.x -= (yyvsp[0].x);
3094 #line 3095 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3098 #line 821 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3100 (yyval.spec) = (yyvsp[-2].spec);
3101 (yyval.spec)->flags |= HAS_FROM;
3102 (yyval.spec)->from.x = (yyvsp[0].pair).x;
3103 (yyval.spec)->from.y = (yyvsp[0].pair).y;
3105 #line 3106 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3109 #line 828 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3111 (yyval.spec) = (yyvsp[-2].spec);
3112 if ((yyval.spec)->flags & HAS_SEGMENT)
3113 (yyval.spec)->segment_list = new segment((yyval.spec)->segment_pos,
3114 (yyval.spec)->segment_is_absolute,
3115 (yyval.spec)->segment_list);
3116 (yyval.spec)->flags |= HAS_SEGMENT;
3117 (yyval.spec)->segment_pos.x = (yyvsp[0].pair).x;
3118 (yyval.spec)->segment_pos.y = (yyvsp[0].pair).y;
3119 (yyval.spec)->segment_is_absolute = 1;
3120 (yyval.spec)->flags |= HAS_TO;
3121 (yyval.spec)->to.x = (yyvsp[0].pair).x;
3122 (yyval.spec)->to.y = (yyvsp[0].pair).y;
3124 #line 3125 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3128 #line 843 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3130 (yyval.spec) = (yyvsp[-2].spec);
3131 (yyval.spec)->flags |= HAS_AT;
3132 (yyval.spec)->at.x = (yyvsp[0].pair).x;
3133 (yyval.spec)->at.y = (yyvsp[0].pair).y;
3134 if ((yyval.spec)->type != ARC_OBJECT) {
3135 (yyval.spec)->flags |= HAS_FROM;
3136 (yyval.spec)->from.x = (yyvsp[0].pair).x;
3137 (yyval.spec)->from.y = (yyvsp[0].pair).y;
3140 #line 3141 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3144 #line 855 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3146 (yyval.spec) = (yyvsp[-2].spec);
3147 (yyval.spec)->flags |= HAS_WITH;
3148 (yyval.spec)->with = (yyvsp[0].pth);
3150 #line 3151 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3154 #line 861 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3156 (yyval.spec) = (yyvsp[-2].spec);
3157 (yyval.spec)->flags |= HAS_WITH;
3159 pos.x = (yyvsp[0].pair).x;
3160 pos.y = (yyvsp[0].pair).y;
3161 (yyval.spec)->with = new path(pos);
3163 #line 3164 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3167 #line 870 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3169 (yyval.spec) = (yyvsp[-2].spec);
3170 (yyval.spec)->flags |= HAS_SEGMENT;
3171 (yyval.spec)->segment_pos.x += (yyvsp[0].pair).x;
3172 (yyval.spec)->segment_pos.y += (yyvsp[0].pair).y;
3174 #line 3175 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3178 #line 877 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3180 (yyval.spec) = (yyvsp[-1].spec);
3181 if (!((yyval.spec)->flags & HAS_SEGMENT))
3182 switch ((yyval.spec)->dir) {
3184 (yyval.spec)->segment_pos.y += (yyval.spec)->segment_width;
3186 case DOWN_DIRECTION:
3187 (yyval.spec)->segment_pos.y -= (yyval.spec)->segment_width;
3189 case RIGHT_DIRECTION:
3190 (yyval.spec)->segment_pos.x += (yyval.spec)->segment_width;
3192 case LEFT_DIRECTION:
3193 (yyval.spec)->segment_pos.x -= (yyval.spec)->segment_width;
3196 (yyval.spec)->segment_list = new segment((yyval.spec)->segment_pos,
3197 (yyval.spec)->segment_is_absolute,
3198 (yyval.spec)->segment_list);
3199 (yyval.spec)->flags &= ~HAS_SEGMENT;
3200 (yyval.spec)->segment_pos.x = (yyval.spec)->segment_pos.y = 0.0;
3201 (yyval.spec)->segment_is_absolute = 0;
3203 #line 3204 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3207 #line 902 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3209 (yyval.spec) = (yyvsp[-1].spec); // nothing
3211 #line 3212 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3215 #line 906 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3217 (yyval.spec) = (yyvsp[-1].spec);
3218 (yyval.spec)->flags |= IS_DOTTED;
3219 lookup_variable("dashwid", & (yyval.spec)->dash_width);
3221 #line 3222 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3225 #line 912 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3227 (yyval.spec) = (yyvsp[-2].spec);
3228 (yyval.spec)->flags |= IS_DOTTED;
3229 (yyval.spec)->dash_width = (yyvsp[0].x);
3231 #line 3232 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3235 #line 918 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3237 (yyval.spec) = (yyvsp[-1].spec);
3238 (yyval.spec)->flags |= IS_DASHED;
3239 lookup_variable("dashwid", & (yyval.spec)->dash_width);
3241 #line 3242 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3245 #line 924 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3247 (yyval.spec) = (yyvsp[-2].spec);
3248 (yyval.spec)->flags |= IS_DASHED;
3249 (yyval.spec)->dash_width = (yyvsp[0].x);
3251 #line 3252 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3255 #line 930 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3257 (yyval.spec) = (yyvsp[-1].spec);
3258 (yyval.spec)->flags |= IS_DEFAULT_FILLED;
3260 #line 3261 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3264 #line 935 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3266 (yyval.spec) = (yyvsp[-2].spec);
3267 (yyval.spec)->flags |= IS_FILLED;
3268 (yyval.spec)->fill = (yyvsp[0].x);
3270 #line 3271 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3274 #line 941 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3276 (yyval.spec) = (yyvsp[-2].spec);
3277 (yyval.spec)->flags |= IS_XSLANTED;
3278 (yyval.spec)->xslanted = (yyvsp[0].x);
3280 #line 3281 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3284 #line 947 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3286 (yyval.spec) = (yyvsp[-2].spec);
3287 (yyval.spec)->flags |= IS_YSLANTED;
3288 (yyval.spec)->yslanted = (yyvsp[0].x);
3290 #line 3291 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3294 #line 953 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3296 (yyval.spec) = (yyvsp[-2].spec);
3297 (yyval.spec)->flags |= (IS_SHADED | IS_FILLED);
3298 (yyval.spec)->shaded = new char[strlen((yyvsp[0].lstr).str)+1];
3299 strcpy((yyval.spec)->shaded, (yyvsp[0].lstr).str);
3301 #line 3302 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3305 #line 960 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3307 (yyval.spec) = (yyvsp[-2].spec);
3308 (yyval.spec)->flags |= (IS_SHADED | IS_OUTLINED | IS_FILLED);
3309 (yyval.spec)->shaded = new char[strlen((yyvsp[0].lstr).str)+1];
3310 strcpy((yyval.spec)->shaded, (yyvsp[0].lstr).str);
3311 (yyval.spec)->outlined = new char[strlen((yyvsp[0].lstr).str)+1];
3312 strcpy((yyval.spec)->outlined, (yyvsp[0].lstr).str);
3314 #line 3315 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3318 #line 969 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3320 (yyval.spec) = (yyvsp[-2].spec);
3321 (yyval.spec)->flags |= IS_OUTLINED;
3322 (yyval.spec)->outlined = new char[strlen((yyvsp[0].lstr).str)+1];
3323 strcpy((yyval.spec)->outlined, (yyvsp[0].lstr).str);
3325 #line 3326 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3329 #line 976 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3331 (yyval.spec) = (yyvsp[-1].spec);
3332 // line chop chop means line chop 0 chop 0
3333 if ((yyval.spec)->flags & IS_DEFAULT_CHOPPED) {
3334 (yyval.spec)->flags |= IS_CHOPPED;
3335 (yyval.spec)->flags &= ~IS_DEFAULT_CHOPPED;
3336 (yyval.spec)->start_chop = (yyval.spec)->end_chop = 0.0;
3338 else if ((yyval.spec)->flags & IS_CHOPPED) {
3339 (yyval.spec)->end_chop = 0.0;
3342 (yyval.spec)->flags |= IS_DEFAULT_CHOPPED;
3345 #line 3346 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3349 #line 992 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3351 (yyval.spec) = (yyvsp[-2].spec);
3352 if ((yyval.spec)->flags & IS_DEFAULT_CHOPPED) {
3353 (yyval.spec)->flags |= IS_CHOPPED;
3354 (yyval.spec)->flags &= ~IS_DEFAULT_CHOPPED;
3355 (yyval.spec)->start_chop = 0.0;
3356 (yyval.spec)->end_chop = (yyvsp[0].x);
3358 else if ((yyval.spec)->flags & IS_CHOPPED) {
3359 (yyval.spec)->end_chop = (yyvsp[0].x);
3362 (yyval.spec)->start_chop = (yyval.spec)->end_chop = (yyvsp[0].x);
3363 (yyval.spec)->flags |= IS_CHOPPED;
3366 #line 3367 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3370 #line 1009 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3372 (yyval.spec) = (yyvsp[-1].spec);
3373 (yyval.spec)->flags |= IS_SAME;
3375 #line 3376 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3379 #line 1014 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3381 (yyval.spec) = (yyvsp[-1].spec);
3382 (yyval.spec)->flags |= IS_INVISIBLE;
3384 #line 3385 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3388 #line 1019 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3390 (yyval.spec) = (yyvsp[-1].spec);
3391 (yyval.spec)->flags |= HAS_LEFT_ARROW_HEAD;
3393 #line 3394 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3397 #line 1024 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3399 (yyval.spec) = (yyvsp[-1].spec);
3400 (yyval.spec)->flags |= HAS_RIGHT_ARROW_HEAD;
3402 #line 3403 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3406 #line 1029 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3408 (yyval.spec) = (yyvsp[-1].spec);
3409 (yyval.spec)->flags |= (HAS_LEFT_ARROW_HEAD|HAS_RIGHT_ARROW_HEAD);
3411 #line 3412 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3415 #line 1034 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3417 (yyval.spec) = (yyvsp[-1].spec);
3418 (yyval.spec)->flags |= IS_CLOCKWISE;
3420 #line 3421 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3424 #line 1039 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3426 (yyval.spec) = (yyvsp[-1].spec);
3427 (yyval.spec)->flags &= ~IS_CLOCKWISE;
3429 #line 3430 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3433 #line 1044 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3435 (yyval.spec) = (yyvsp[-1].spec);
3437 for (p = & (yyval.spec)->text; *p; p = &(*p)->next)
3439 *p = new text_item((yyvsp[0].lstr).str, (yyvsp[0].lstr).filename, (yyvsp[0].lstr).lineno);
3441 #line 3442 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3445 #line 1052 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3447 (yyval.spec) = (yyvsp[-1].spec);
3448 if ((yyval.spec)->text) {
3450 for (p = (yyval.spec)->text; p->next; p = p->next)
3452 p->adj.h = LEFT_ADJUST;
3455 #line 3456 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3459 #line 1062 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3461 (yyval.spec) = (yyvsp[-1].spec);
3462 if ((yyval.spec)->text) {
3464 for (p = (yyval.spec)->text; p->next; p = p->next)
3466 p->adj.h = RIGHT_ADJUST;
3469 #line 3470 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3473 #line 1072 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3475 (yyval.spec) = (yyvsp[-1].spec);
3476 if ((yyval.spec)->text) {
3478 for (p = (yyval.spec)->text; p->next; p = p->next)
3480 p->adj.v = ABOVE_ADJUST;
3483 #line 3484 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3487 #line 1082 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3489 (yyval.spec) = (yyvsp[-1].spec);
3490 if ((yyval.spec)->text) {
3492 for (p = (yyval.spec)->text; p->next; p = p->next)
3494 p->adj.v = BELOW_ADJUST;
3497 #line 3498 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3501 #line 1092 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3503 (yyval.spec) = (yyvsp[-2].spec);
3504 (yyval.spec)->flags |= HAS_THICKNESS;
3505 (yyval.spec)->thickness = (yyvsp[0].x);
3507 #line 3508 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3511 #line 1098 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3513 (yyval.spec) = (yyvsp[-1].spec);
3514 (yyval.spec)->flags |= IS_ALIGNED;
3516 #line 3517 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3520 #line 1106 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3521 { (yyval.lstr) = (yyvsp[0].lstr); }
3522 #line 3523 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3526 #line 1108 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3528 (yyval.lstr).filename = (yyvsp[-2].lstr).filename;
3529 (yyval.lstr).lineno = (yyvsp[-2].lstr).lineno;
3530 (yyval.lstr).str = do_sprintf((yyvsp[-2].lstr).str, (yyvsp[-1].dv).v, (yyvsp[-1].dv).nv);
3531 a_delete (yyvsp[-1].dv).v;
3532 free((yyvsp[-2].lstr).str);
3534 #line 3535 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3538 #line 1119 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3542 (yyval.dv).maxv = 0;
3544 #line 3545 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3548 #line 1125 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3550 (yyval.dv) = (yyvsp[-2].dv);
3551 if ((yyval.dv).nv >= (yyval.dv).maxv) {
3552 if ((yyval.dv).nv == 0) {
3553 (yyval.dv).v = new double[4];
3554 (yyval.dv).maxv = 4;
3557 double *oldv = (yyval.dv).v;
3558 (yyval.dv).maxv *= 2;
3560 (yyval.dv).v = new double[(yyval.dv).maxv];
3561 memcpy((yyval.dv).v, oldv, (yyval.dv).nv*sizeof(double));
3563 // workaround for bug in Compaq C++ V6.5-033
3564 // for Compaq Tru64 UNIX V5.1A (Rev. 1885)
3565 double *foo = new double[(yyval.dv).maxv];
3566 memcpy(foo, oldv, (yyval.dv).nv*sizeof(double));
3572 (yyval.dv).v[(yyval.dv).nv] = (yyvsp[0].x);
3575 #line 3576 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3579 #line 1155 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3580 { (yyval.pair) = (yyvsp[0].pair); }
3581 #line 3582 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3585 #line 1157 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3587 position pos = (yyvsp[0].pl);
3588 (yyval.pair).x = pos.x;
3589 (yyval.pair).y = pos.y;
3591 #line 3592 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3595 #line 1163 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3597 position pos = (yyvsp[-1].pl);
3598 (yyval.pair).x = pos.x;
3599 (yyval.pair).y = pos.y;
3601 #line 3602 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3605 #line 1172 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3606 { (yyval.pair) = (yyvsp[0].pair); }
3607 #line 3608 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3611 #line 1174 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3613 (yyval.pair).x = (yyvsp[-2].pair).x + (yyvsp[0].pair).x;
3614 (yyval.pair).y = (yyvsp[-2].pair).y + (yyvsp[0].pair).y;
3616 #line 3617 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3620 #line 1179 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3622 (yyval.pair).x = (yyvsp[-3].pair).x + (yyvsp[-1].pair).x;
3623 (yyval.pair).y = (yyvsp[-3].pair).y + (yyvsp[-1].pair).y;
3625 #line 3626 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3629 #line 1184 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3631 (yyval.pair).x = (yyvsp[-2].pair).x - (yyvsp[0].pair).x;
3632 (yyval.pair).y = (yyvsp[-2].pair).y - (yyvsp[0].pair).y;
3634 #line 3635 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3638 #line 1189 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3640 (yyval.pair).x = (yyvsp[-3].pair).x - (yyvsp[-1].pair).x;
3641 (yyval.pair).y = (yyvsp[-3].pair).y - (yyvsp[-1].pair).y;
3643 #line 3644 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3647 #line 1194 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3649 (yyval.pair).x = (yyvsp[-3].pair).x;
3650 (yyval.pair).y = (yyvsp[-1].pair).y;
3652 #line 3653 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3656 #line 1199 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3658 (yyval.pair).x = (1.0 - (yyvsp[-4].x))*(yyvsp[-2].pair).x + (yyvsp[-4].x)*(yyvsp[0].pair).x;
3659 (yyval.pair).y = (1.0 - (yyvsp[-4].x))*(yyvsp[-2].pair).y + (yyvsp[-4].x)*(yyvsp[0].pair).y;
3661 #line 3662 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3665 #line 1204 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3667 (yyval.pair).x = (1.0 - (yyvsp[-5].x))*(yyvsp[-3].pair).x + (yyvsp[-5].x)*(yyvsp[-1].pair).x;
3668 (yyval.pair).y = (1.0 - (yyvsp[-5].x))*(yyvsp[-3].pair).y + (yyvsp[-5].x)*(yyvsp[-1].pair).y;
3670 #line 3671 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3674 #line 1210 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3676 (yyval.pair).x = (1.0 - (yyvsp[-5].x))*(yyvsp[-3].pair).x + (yyvsp[-5].x)*(yyvsp[-1].pair).x;
3677 (yyval.pair).y = (1.0 - (yyvsp[-5].x))*(yyvsp[-3].pair).y + (yyvsp[-5].x)*(yyvsp[-1].pair).y;
3679 #line 3680 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3683 #line 1215 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3685 (yyval.pair).x = (1.0 - (yyvsp[-6].x))*(yyvsp[-4].pair).x + (yyvsp[-6].x)*(yyvsp[-2].pair).x;
3686 (yyval.pair).y = (1.0 - (yyvsp[-6].x))*(yyvsp[-4].pair).y + (yyvsp[-6].x)*(yyvsp[-2].pair).y;
3688 #line 3689 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3692 #line 1228 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3694 (yyval.pair).x = (yyvsp[-2].x);
3695 (yyval.pair).y = (yyvsp[0].x);
3697 #line 3698 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3701 #line 1233 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3702 { (yyval.pair) = (yyvsp[-1].pair); }
3703 #line 3704 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3707 #line 1239 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3708 { (yyval.pl) = (yyvsp[0].pl); }
3709 #line 3710 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3713 #line 1241 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3715 path pth((yyvsp[0].crn));
3716 if (!pth.follow((yyvsp[-1].pl), & (yyval.pl)))
3719 #line 3720 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3723 #line 1247 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3725 path pth((yyvsp[-1].crn));
3726 if (!pth.follow((yyvsp[0].pl), & (yyval.pl)))
3729 #line 3730 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3733 #line 1253 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3735 path pth((yyvsp[-2].crn));
3736 if (!pth.follow((yyvsp[0].pl), & (yyval.pl)))
3739 #line 3740 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3743 #line 1259 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3745 (yyval.pl).x = current_position.x;
3746 (yyval.pl).y = current_position.y;
3749 #line 3750 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3753 #line 1268 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3755 place *p = lookup_label((yyvsp[0].str));
3757 lex_error("there is no place '%1'", (yyvsp[0].str));
3761 free((yyvsp[0].str));
3763 #line 3764 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3767 #line 1278 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3768 { (yyval.pl).obj = (yyvsp[0].obj); }
3769 #line 3770 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3773 #line 1280 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3775 path pth((yyvsp[0].str));
3776 if (!pth.follow((yyvsp[-2].pl), & (yyval.pl)))
3779 #line 3780 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3783 #line 1289 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3784 { (yyval.n) = (yyvsp[0].n); }
3785 #line 3786 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3789 #line 1291 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3791 // XXX Check for overflow (and non-integers?).
3792 (yyval.n) = (int)(yyvsp[-1].x);
3794 #line 3795 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3798 #line 1299 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3800 #line 3801 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3804 #line 1301 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3805 { (yyval.n) = (yyvsp[-1].n); }
3806 #line 3807 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3810 #line 1306 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3814 for (p = olist.head; p != 0; p = p->next)
3815 if (p->type() == (yyvsp[0].obtype) && ++count == (yyvsp[-1].n)) {
3820 lex_error("there is no %1%2 %3", (yyvsp[-1].n), ordinal_postfix((yyvsp[-1].n)),
3821 object_type_name((yyvsp[0].obtype)));
3825 #line 3826 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3829 #line 1321 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3833 for (p = olist.tail; p != 0; p = p->prev)
3834 if (p->type() == (yyvsp[0].obtype) && ++count == (yyvsp[-1].n)) {
3839 lex_error("there is no %1%2 last %3", (yyvsp[-1].n),
3840 ordinal_postfix((yyvsp[-1].n)), object_type_name((yyvsp[0].obtype)));
3844 #line 3845 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3848 #line 1339 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3849 { (yyval.obtype) = BOX_OBJECT; }
3850 #line 3851 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3854 #line 1341 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3855 { (yyval.obtype) = CIRCLE_OBJECT; }
3856 #line 3857 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3860 #line 1343 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3861 { (yyval.obtype) = ELLIPSE_OBJECT; }
3862 #line 3863 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3866 #line 1345 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3867 { (yyval.obtype) = ARC_OBJECT; }
3868 #line 3869 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3872 #line 1347 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3873 { (yyval.obtype) = LINE_OBJECT; }
3874 #line 3875 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3878 #line 1349 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3879 { (yyval.obtype) = ARROW_OBJECT; }
3880 #line 3881 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3884 #line 1351 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3885 { (yyval.obtype) = SPLINE_OBJECT; }
3886 #line 3887 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3890 #line 1353 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3891 { (yyval.obtype) = BLOCK_OBJECT; }
3892 #line 3893 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3896 #line 1355 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3897 { (yyval.obtype) = TEXT_OBJECT; }
3898 #line 3899 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3902 #line 1360 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3903 { (yyval.pth) = new path((yyvsp[0].str)); }
3904 #line 3905 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3908 #line 1362 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3910 (yyval.pth) = (yyvsp[-2].pth);
3911 (yyval.pth)->append((yyvsp[0].str));
3913 #line 3914 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3917 #line 1370 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3918 { (yyval.pth) = new path((yyvsp[0].crn)); }
3919 #line 3920 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3923 #line 1374 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3924 { (yyval.pth) = (yyvsp[0].pth); }
3925 #line 3926 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3929 #line 1376 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3931 (yyval.pth) = (yyvsp[-1].pth);
3932 (yyval.pth)->append((yyvsp[0].crn));
3934 #line 3935 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3938 #line 1384 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3939 { (yyval.pth) = (yyvsp[0].pth); }
3940 #line 3941 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3944 #line 1386 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3946 (yyval.pth) = (yyvsp[-3].pth);
3947 (yyval.pth)->set_ypath((yyvsp[-1].pth));
3949 #line 3950 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3953 #line 1392 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3955 lex_warning("'%1%2 last %3' in 'with' argument ignored",
3956 (yyvsp[-3].n), ordinal_postfix((yyvsp[-3].n)), object_type_name((yyvsp[-1].obtype)));
3957 (yyval.pth) = (yyvsp[0].pth);
3959 #line 3960 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3963 #line 1398 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3965 lex_warning("'last %1' in 'with' argument ignored",
3966 object_type_name((yyvsp[-1].obtype)));
3967 (yyval.pth) = (yyvsp[0].pth);
3969 #line 3970 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3973 #line 1404 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3975 lex_warning("'%1%2 %3' in 'with' argument ignored",
3976 (yyvsp[-2].n), ordinal_postfix((yyvsp[-2].n)), object_type_name((yyvsp[-1].obtype)));
3977 (yyval.pth) = (yyvsp[0].pth);
3979 #line 3980 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3983 #line 1410 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3985 lex_warning("initial '%1' in 'with' argument ignored", (yyvsp[-1].str));
3986 a_delete (yyvsp[-1].str);
3987 (yyval.pth) = (yyvsp[0].pth);
3989 #line 3990 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3993 #line 1419 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
3994 { (yyval.crn) = &object::north; }
3995 #line 3996 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
3999 #line 1421 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4000 { (yyval.crn) = &object::east; }
4001 #line 4002 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4005 #line 1423 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4006 { (yyval.crn) = &object::west; }
4007 #line 4008 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4011 #line 1425 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4012 { (yyval.crn) = &object::south; }
4013 #line 4014 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4017 #line 1427 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4018 { (yyval.crn) = &object::north_east; }
4019 #line 4020 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4023 #line 1429 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4024 { (yyval.crn) = &object:: south_east; }
4025 #line 4026 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4029 #line 1431 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4030 { (yyval.crn) = &object::north_west; }
4031 #line 4032 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4035 #line 1433 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4036 { (yyval.crn) = &object::south_west; }
4037 #line 4038 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4041 #line 1435 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4042 { (yyval.crn) = &object::center; }
4043 #line 4044 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4047 #line 1437 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4048 { (yyval.crn) = &object::start; }
4049 #line 4050 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4053 #line 1439 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4054 { (yyval.crn) = &object::end; }
4055 #line 4056 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4059 #line 1441 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4060 { (yyval.crn) = &object::north; }
4061 #line 4062 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4065 #line 1443 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4066 { (yyval.crn) = &object::south; }
4067 #line 4068 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4071 #line 1445 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4072 { (yyval.crn) = &object::west; }
4073 #line 4074 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4077 #line 1447 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4078 { (yyval.crn) = &object::east; }
4079 #line 4080 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4083 #line 1449 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4084 { (yyval.crn) = &object::north_west; }
4085 #line 4086 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4089 #line 1451 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4090 { (yyval.crn) = &object::south_west; }
4091 #line 4092 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4095 #line 1453 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4096 { (yyval.crn) = &object::north_east; }
4097 #line 4098 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4101 #line 1455 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4102 { (yyval.crn) = &object::south_east; }
4103 #line 4104 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4107 #line 1457 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4108 { (yyval.crn) = &object::west; }
4109 #line 4110 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4113 #line 1459 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4114 { (yyval.crn) = &object::east; }
4115 #line 4116 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4119 #line 1461 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4120 { (yyval.crn) = &object::north_west; }
4121 #line 4122 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4125 #line 1463 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4126 { (yyval.crn) = &object::south_west; }
4127 #line 4128 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4131 #line 1465 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4132 { (yyval.crn) = &object::north_east; }
4133 #line 4134 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4137 #line 1467 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4138 { (yyval.crn) = &object::south_east; }
4139 #line 4140 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4143 #line 1469 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4144 { (yyval.crn) = &object::north; }
4145 #line 4146 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4149 #line 1471 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4150 { (yyval.crn) = &object::south; }
4151 #line 4152 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4155 #line 1473 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4156 { (yyval.crn) = &object::east; }
4157 #line 4158 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4161 #line 1475 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4162 { (yyval.crn) = &object::west; }
4163 #line 4164 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4167 #line 1477 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4168 { (yyval.crn) = &object::center; }
4169 #line 4170 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4173 #line 1479 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4174 { (yyval.crn) = &object::start; }
4175 #line 4176 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4179 #line 1481 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4180 { (yyval.crn) = &object::end; }
4181 #line 4182 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4185 #line 1486 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4186 { (yyval.x) = (yyvsp[0].x); }
4187 #line 4188 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4191 #line 1488 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4192 { (yyval.x) = (yyvsp[0].x); }
4193 #line 4194 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4197 #line 1493 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4198 { (yyval.x) = ((yyvsp[-2].x) < (yyvsp[0].x)); }
4199 #line 4200 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4203 #line 1498 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4205 if (!lookup_variable((yyvsp[0].str), & (yyval.x))) {
4206 lex_error("there is no variable '%1'", (yyvsp[0].str));
4209 free((yyvsp[0].str));
4211 #line 4212 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4215 #line 1506 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4216 { (yyval.x) = (yyvsp[0].x); }
4217 #line 4218 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4221 #line 1508 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4223 if ((yyvsp[-1].pl).obj != 0)
4224 (yyval.x) = (yyvsp[-1].pl).obj->origin().x;
4226 (yyval.x) = (yyvsp[-1].pl).x;
4228 #line 4229 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4232 #line 1515 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4234 if ((yyvsp[-1].pl).obj != 0)
4235 (yyval.x) = (yyvsp[-1].pl).obj->origin().y;
4237 (yyval.x) = (yyvsp[-1].pl).y;
4239 #line 4240 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4243 #line 1522 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4245 if ((yyvsp[-1].pl).obj != 0)
4246 (yyval.x) = (yyvsp[-1].pl).obj->height();
4250 #line 4251 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4254 #line 1529 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4256 if ((yyvsp[-1].pl).obj != 0)
4257 (yyval.x) = (yyvsp[-1].pl).obj->width();
4261 #line 4262 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4265 #line 1536 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4267 if ((yyvsp[-1].pl).obj != 0)
4268 (yyval.x) = (yyvsp[-1].pl).obj->radius();
4272 #line 4273 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4276 #line 1543 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4277 { (yyval.x) = (yyvsp[-2].x) + (yyvsp[0].x); }
4278 #line 4279 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4282 #line 1545 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4283 { (yyval.x) = (yyvsp[-2].x) - (yyvsp[0].x); }
4284 #line 4285 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4288 #line 1547 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4289 { (yyval.x) = (yyvsp[-2].x) * (yyvsp[0].x); }
4290 #line 4291 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4294 #line 1549 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4296 if ((yyvsp[0].x) == 0.0) {
4297 lex_error("division by zero");
4300 (yyval.x) = (yyvsp[-2].x)/(yyvsp[0].x);
4302 #line 4303 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4306 #line 1557 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4308 if ((yyvsp[0].x) == 0.0) {
4309 lex_error("modulus by zero");
4312 (yyval.x) = fmod((yyvsp[-2].x), (yyvsp[0].x));
4314 #line 4315 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4318 #line 1565 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4321 (yyval.x) = pow((yyvsp[-2].x), (yyvsp[0].x));
4322 if (errno == EDOM) {
4323 lex_error("arguments to '^' operator out of domain");
4326 if (errno == ERANGE) {
4327 lex_error("result of '^' operator out of range");
4331 #line 4332 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4335 #line 1578 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4336 { (yyval.x) = -(yyvsp[0].x); }
4337 #line 4338 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4341 #line 1580 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4342 { (yyval.x) = (yyvsp[-1].x); }
4343 #line 4344 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4347 #line 1582 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4350 (yyval.x) = sin((yyvsp[-1].x));
4351 if (errno == ERANGE) {
4352 lex_error("sin result out of range");
4356 #line 4357 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4360 #line 1591 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4363 (yyval.x) = cos((yyvsp[-1].x));
4364 if (errno == ERANGE) {
4365 lex_error("cos result out of range");
4369 #line 4370 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4373 #line 1600 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4376 (yyval.x) = atan2((yyvsp[-3].x), (yyvsp[-1].x));
4377 if (errno == EDOM) {
4378 lex_error("atan2 argument out of domain");
4381 if (errno == ERANGE) {
4382 lex_error("atan2 result out of range");
4386 #line 4387 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4390 #line 1613 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4393 (yyval.x) = log10((yyvsp[-1].x));
4394 if (errno == ERANGE) {
4395 lex_error("log result out of range");
4399 #line 4400 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4403 #line 1622 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4406 (yyval.x) = pow(10.0, (yyvsp[-1].x));
4407 if (errno == ERANGE) {
4408 lex_error("exp result out of range");
4412 #line 4413 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4416 #line 1631 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4419 (yyval.x) = sqrt((yyvsp[-1].x));
4420 if (errno == EDOM) {
4421 lex_error("sqrt argument out of domain");
4425 #line 4426 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4429 #line 1640 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4430 { (yyval.x) = (yyvsp[-3].x) > (yyvsp[-1].x) ? (yyvsp[-3].x) : (yyvsp[-1].x); }
4431 #line 4432 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4435 #line 1642 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4436 { (yyval.x) = (yyvsp[-3].x) < (yyvsp[-1].x) ? (yyvsp[-3].x) : (yyvsp[-1].x); }
4437 #line 4438 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4441 #line 1644 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4442 { (yyval.x) = (yyvsp[-1].x) < 0 ? -floor(-(yyvsp[-1].x)) : floor((yyvsp[-1].x)); }
4443 #line 4444 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4447 #line 1646 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4448 { (yyval.x) = 1.0 + floor(((rand()&0x7fff)/double(0x7fff))*(yyvsp[-1].x)); }
4449 #line 4450 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4453 #line 1648 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4455 /* return a random number in the range [0,1) */
4456 /* portable, but not very random */
4457 (yyval.x) = (rand() & 0x7fff) / double(0x8000);
4459 #line 4460 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4463 #line 1654 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4466 srand((unsigned int)(yyvsp[-1].x));
4468 #line 4469 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4472 #line 1659 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4473 { (yyval.x) = ((yyvsp[-2].x) <= (yyvsp[0].x)); }
4474 #line 4475 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4478 #line 1661 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4479 { (yyval.x) = ((yyvsp[-2].x) > (yyvsp[0].x)); }
4480 #line 4481 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4484 #line 1663 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4485 { (yyval.x) = ((yyvsp[-2].x) >= (yyvsp[0].x)); }
4486 #line 4487 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4490 #line 1665 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4491 { (yyval.x) = ((yyvsp[-2].x) == (yyvsp[0].x)); }
4492 #line 4493 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4496 #line 1667 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4497 { (yyval.x) = ((yyvsp[-2].x) != (yyvsp[0].x)); }
4498 #line 4499 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4502 #line 1669 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4503 { (yyval.x) = ((yyvsp[-2].x) != 0.0 && (yyvsp[0].x) != 0.0); }
4504 #line 4505 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4508 #line 1671 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4509 { (yyval.x) = ((yyvsp[-2].x) != 0.0 || (yyvsp[0].x) != 0.0); }
4510 #line 4511 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4514 #line 1673 "../src/preproc/pic/pic.ypp" /* yacc.c:1645 */
4515 { (yyval.x) = ((yyvsp[0].x) == 0.0); }
4516 #line 4517 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4520 #line 4521 "src/preproc/pic/pic.cpp" /* yacc.c:1645 */
4523 /* User semantic actions sometimes alter yychar, and that requires
4524 that yytoken be updated with the new translation. We take the
4525 approach of translating immediately before every use of yytoken.
4526 One alternative is translating here after every semantic action,
4527 but that translation would be missed if the semantic action invokes
4528 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4529 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
4530 incorrect destructor might then be invoked immediately. In the
4531 case of YYERROR or YYBACKUP, subsequent parser actions might lead
4532 to an incorrect destructor call or verbose syntax error message
4533 before the lookahead is translated. */
4534 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4538 YY_STACK_PRINT (yyss, yyssp);
4542 /* Now 'shift' the result of the reduction. Determine what state
4543 that goes to, based on the state we popped back to and the rule
4544 number reduced by. */
4546 const int yylhs = yyr1[yyn] - YYNTOKENS;
4547 const int yyi = yypgoto[yylhs] + *yyssp;
4548 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
4550 : yydefgoto[yylhs]);
4556 /*--------------------------------------.
4557 | yyerrlab -- here on detecting error. |
4558 `--------------------------------------*/
4560 /* Make sure we have latest lookahead translation. See comments at
4561 user semantic actions for why this is necessary. */
4562 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4564 /* If not already recovering from an error, report this error. */
4568 #if ! YYERROR_VERBOSE
4569 yyerror (YY_("syntax error"));
4571 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4574 char const *yymsgp = YY_("syntax error");
4575 int yysyntax_error_status;
4576 yysyntax_error_status = YYSYNTAX_ERROR;
4577 if (yysyntax_error_status == 0)
4579 else if (yysyntax_error_status == 1)
4581 if (yymsg != yymsgbuf)
4582 YYSTACK_FREE (yymsg);
4583 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
4587 yymsg_alloc = sizeof yymsgbuf;
4588 yysyntax_error_status = 2;
4592 yysyntax_error_status = YYSYNTAX_ERROR;
4597 if (yysyntax_error_status == 2)
4598 goto yyexhaustedlab;
4600 # undef YYSYNTAX_ERROR
4606 if (yyerrstatus == 3)
4608 /* If just tried and failed to reuse lookahead token after an
4609 error, discard it. */
4611 if (yychar <= YYEOF)
4613 /* Return failure if at end of input. */
4614 if (yychar == YYEOF)
4619 yydestruct ("Error: discarding",
4625 /* Else will try to reuse lookahead token after shifting the error
4630 /*---------------------------------------------------.
4631 | yyerrorlab -- error raised explicitly by YYERROR. |
4632 `---------------------------------------------------*/
4635 /* Pacify compilers like GCC when the user code never invokes
4636 YYERROR and the label yyerrorlab therefore never appears in user
4638 if (/*CONSTCOND*/ 0)
4641 /* Do not reclaim the symbols of the rule whose action triggered
4645 YY_STACK_PRINT (yyss, yyssp);
4650 /*-------------------------------------------------------------.
4651 | yyerrlab1 -- common code for both syntax error and YYERROR. |
4652 `-------------------------------------------------------------*/
4654 yyerrstatus = 3; /* Each real token shifted decrements this. */
4658 yyn = yypact[yystate];
4659 if (!yypact_value_is_default (yyn))
4662 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4670 /* Pop the current state because it cannot handle the error token. */
4675 yydestruct ("Error: popping",
4676 yystos[yystate], yyvsp);
4679 YY_STACK_PRINT (yyss, yyssp);
4682 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4684 YY_IGNORE_MAYBE_UNINITIALIZED_END
4687 /* Shift the error token. */
4688 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4694 /*-------------------------------------.
4695 | yyacceptlab -- YYACCEPT comes here. |
4696 `-------------------------------------*/
4701 /*-----------------------------------.
4702 | yyabortlab -- YYABORT comes here. |
4703 `-----------------------------------*/
4708 #if !defined yyoverflow || YYERROR_VERBOSE
4709 /*-------------------------------------------------.
4710 | yyexhaustedlab -- memory exhaustion comes here. |
4711 `-------------------------------------------------*/
4713 yyerror (YY_("memory exhausted"));
4719 if (yychar != YYEMPTY)
4721 /* Make sure we have latest lookahead translation. See comments at
4722 user semantic actions for why this is necessary. */
4723 yytoken = YYTRANSLATE (yychar);
4724 yydestruct ("Cleanup: discarding lookahead",
4727 /* Do not reclaim the symbols of the rule whose action triggered
4728 this YYABORT or YYACCEPT. */
4730 YY_STACK_PRINT (yyss, yyssp);
4731 while (yyssp != yyss)
4733 yydestruct ("Cleanup: popping",
4734 yystos[*yyssp], yyvsp);
4739 YYSTACK_FREE (yyss);
4742 if (yymsg != yymsgbuf)
4743 YYSTACK_FREE (yymsg);
4747 #line 1677 "../src/preproc/pic/pic.ypp" /* yacc.c:1903 */
4750 /* bison defines const to be empty unless __STDC__ is defined, which it
4751 isn't under cfront */
4760 int scaled; // non-zero if val should be multiplied by scale
4761 } defaults_table[] = {
4762 { "arcrad", .25, 1 },
4763 { "arrowht", .1, 1 },
4764 { "arrowwid", .05, 1 },
4765 { "circlerad", .25, 1 },
4767 { "boxwid", .75, 1 },
4768 { "boxrad", 0.0, 1 },
4769 { "dashwid", .05, 1 },
4770 { "ellipseht", .5, 1 },
4771 { "ellipsewid", .75, 1 },
4772 { "moveht", .5, 1 },
4773 { "movewid", .5, 1 },
4774 { "lineht", .5, 1 },
4775 { "linewid", .5, 1 },
4776 { "textht", 0.0, 1 },
4777 { "textwid", 0.0, 1 },
4778 { "scale", 1.0, 0 },
4779 { "linethick", -1.0, 0 }, // in points
4780 { "fillval", .5, 0 },
4781 { "arrowhead", 1.0, 0 },
4782 { "maxpswid", 8.5, 0 },
4783 { "maxpsht", 11.0, 0 },
4786 place *lookup_label(const char *label)
4788 saved_state *state = current_saved_state;
4789 PTABLE(place) *tbl = current_table;
4791 place *pl = tbl->lookup(label);
4797 state = state->prev;
4801 void define_label(const char *label, const place *pl)
4803 place *p = new place[1];
4805 current_table->define(label, p);
4808 int lookup_variable(const char *name, double *val)
4810 place *pl = lookup_label(name);
4818 void define_variable(const char *name, double val)
4820 place *p = new place[1];
4824 current_table->define(name, p);
4825 if (strcmp(name, "scale") == 0) {
4826 // When the scale changes, reset all scaled pre-defined variables to
4827 // their default values.
4828 for (unsigned int i = 0;
4829 i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
4830 if (defaults_table[i].scaled)
4831 define_variable(defaults_table[i].name, val*defaults_table[i].val);
4835 // called once only (not once per parse)
4839 current_direction = RIGHT_DIRECTION;
4840 current_position.x = 0.0;
4841 current_position.y = 0.0;
4842 // This resets everything to its default value.
4846 void reset(const char *nm)
4848 for (unsigned int i = 0;
4849 i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
4850 if (strcmp(nm, defaults_table[i].name) == 0) {
4851 double val = defaults_table[i].val;
4852 if (defaults_table[i].scaled) {
4854 lookup_variable("scale", &scale);
4857 define_variable(defaults_table[i].name, val);
4860 lex_error("'%1' is not a predefined variable", nm);
4865 // We only have to explicitly reset the pre-defined variables that
4866 // aren't scaled because 'scale' is not scaled, and changing the
4867 // value of 'scale' will reset all the pre-defined variables that
4869 for (unsigned int i = 0;
4870 i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
4871 if (!defaults_table[i].scaled)
4872 define_variable(defaults_table[i].name, defaults_table[i].val);
4875 // called after each parse
4877 void parse_cleanup()
4879 while (current_saved_state != 0) {
4880 delete current_table;
4881 current_table = current_saved_state->tbl;
4882 saved_state *tem = current_saved_state;
4883 current_saved_state = current_saved_state->prev;
4886 assert(current_table == &top_table);
4887 PTABLE_ITERATOR(place) iter(current_table);
4890 while (iter.next(&key, &pl))
4892 position pos = pl->obj->origin();
4897 while (olist.head != 0) {
4898 object *tem = olist.head;
4899 olist.head = olist.head->next;
4903 current_direction = RIGHT_DIRECTION;
4904 current_position.x = 0.0;
4905 current_position.y = 0.0;
4908 const char *ordinal_postfix(int n)
4910 if (n < 10 || n > 20)
4922 const char *object_type_name(object_type type)
4929 case ELLIPSE_OBJECT:
4953 static char sprintf_buf[1024];
4955 char *format_number(const char *form, double n)
4959 return do_sprintf(form, &n, 1);
4962 char *do_sprintf(const char *form, const double *v, int nv)
4969 one_format += *form++;
4970 for (; *form != '\0' && strchr("#-+ 0123456789.", *form) != 0; form++)
4971 one_format += *form;
4972 if (*form == '\0' || strchr("eEfgG%", *form) == 0) {
4973 lex_error("bad sprintf format");
4974 result += one_format;
4979 one_format += *form++;
4981 snprintf(sprintf_buf, sizeof(sprintf_buf),
4982 "%s", one_format.contents());
4986 lex_error("too few arguments to snprintf");
4987 result += one_format;
4991 one_format += *form++;
4993 snprintf(sprintf_buf, sizeof(sprintf_buf),
4994 one_format.contents(), v[i++]);
4997 result += sprintf_buf;
5003 return strsave(result.contents());