Index: pikchr.c ================================================================== --- pikchr.c +++ pikchr.c @@ -566,20 +566,21 @@ #define T_TOP 83 #define T_BOTTOM 84 #define T_START 85 #define T_END 86 #define T_IN 87 -#define T_DOT_U 88 -#define T_LAST 89 -#define T_NUMBER 90 -#define T_FUNC1 91 -#define T_FUNC2 92 -#define T_DIST 93 -#define T_DOT_XY 94 -#define T_X 95 -#define T_Y 96 -#define T_DOT_L 97 +#define T_THIS 88 +#define T_DOT_U 89 +#define T_LAST 90 +#define T_NUMBER 91 +#define T_FUNC1 92 +#define T_FUNC2 93 +#define T_DIST 94 +#define T_DOT_XY 95 +#define T_X 96 +#define T_Y 97 +#define T_DOT_L 98 #endif /**************** End token definitions ***************************************/ /* The next sections is a series of control #defines. ** various aspects of the generated parser. @@ -635,22 +636,22 @@ #ifndef INTERFACE # define INTERFACE 1 #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned char -#define YYNOCODE 134 +#define YYNOCODE 135 #define YYACTIONTYPE unsigned short int #define pik_parserTOKENTYPE PToken typedef union { int yyinit; pik_parserTOKENTYPE yy0; - PObj* yy38; - PPoint yy43; - short int yy44; - PList* yy119; - PRel yy200; - PNum yy265; + PRel yy10; + PObj* yy36; + PPoint yy79; + PNum yy153; + short int yy164; + PList* yy227; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 #endif #define pik_parserARG_SDECL @@ -663,21 +664,21 @@ #define pik_parserCTX_PARAM ,p #define pik_parserCTX_FETCH Pik *p=yypParser->p; #define pik_parserCTX_STORE yypParser->p=p; #define YYFALLBACK 1 #define YYNSTATE 164 -#define YYNRULE 155 -#define YYNRULE_WITH_ACTION 115 -#define YYNTOKEN 98 +#define YYNRULE 156 +#define YYNRULE_WITH_ACTION 116 +#define YYNTOKEN 99 #define YY_MAX_SHIFT 163 -#define YY_MIN_SHIFTREDUCE 286 -#define YY_MAX_SHIFTREDUCE 440 -#define YY_ERROR_ACTION 441 -#define YY_ACCEPT_ACTION 442 -#define YY_NO_ACTION 443 -#define YY_MIN_REDUCE 444 -#define YY_MAX_REDUCE 598 +#define YY_MIN_SHIFTREDUCE 287 +#define YY_MAX_SHIFTREDUCE 442 +#define YY_ERROR_ACTION 443 +#define YY_ACCEPT_ACTION 444 +#define YY_NO_ACTION 445 +#define YY_MIN_REDUCE 446 +#define YY_MAX_REDUCE 601 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. @@ -740,333 +741,341 @@ ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (1263) +#define YY_ACTTAB_COUNT (1303) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 572, 493, 161, 119, 25, 450, 29, 74, 129, 148, - /* 10 */ 572, 490, 161, 119, 451, 113, 120, 161, 119, 528, - /* 20 */ 425, 426, 338, 556, 81, 30, 557, 558, 572, 64, - /* 30 */ 63, 62, 61, 321, 322, 9, 8, 33, 149, 32, - /* 40 */ 7, 71, 127, 38, 334, 66, 48, 37, 28, 338, - /* 50 */ 338, 338, 338, 423, 424, 339, 340, 341, 342, 343, - /* 60 */ 344, 345, 346, 347, 472, 526, 161, 119, 574, 77, - /* 70 */ 574, 73, 374, 148, 472, 531, 161, 119, 112, 113, - /* 80 */ 120, 161, 119, 128, 425, 426, 338, 305, 81, 376, - /* 90 */ 158, 76, 472, 529, 161, 119, 31, 321, 322, 9, - /* 100 */ 8, 33, 149, 32, 7, 71, 127, 329, 334, 66, - /* 110 */ 576, 83, 36, 338, 338, 338, 338, 423, 424, 339, - /* 120 */ 340, 341, 342, 343, 344, 345, 346, 347, 392, 433, - /* 130 */ 309, 59, 60, 409, 410, 411, 412, 107, 84, 374, - /* 140 */ 65, 108, 2, 46, 401, 162, 120, 161, 119, 117, - /* 150 */ 476, 80, 118, 307, 79, 133, 35, 126, 439, 438, - /* 160 */ 298, 123, 122, 402, 403, 404, 406, 80, 152, 307, - /* 170 */ 79, 327, 409, 410, 411, 412, 392, 54, 51, 59, - /* 180 */ 60, 64, 63, 62, 61, 312, 3, 102, 378, 157, - /* 190 */ 42, 432, 446, 452, 29, 300, 301, 302, 448, 304, - /* 200 */ 62, 61, 64, 63, 62, 61, 297, 47, 106, 163, - /* 210 */ 434, 435, 436, 437, 27, 389, 117, 391, 155, 154, - /* 220 */ 153, 392, 433, 49, 59, 60, 64, 63, 62, 61, - /* 230 */ 532, 69, 374, 396, 397, 2, 376, 158, 356, 296, - /* 240 */ 156, 156, 156, 67, 392, 433, 13, 59, 60, 4, - /* 250 */ 107, 439, 438, 377, 159, 374, 106, 5, 2, 120, - /* 260 */ 161, 119, 131, 449, 117, 391, 155, 154, 153, 392, - /* 270 */ 532, 6, 59, 60, 439, 438, 532, 444, 422, 532, - /* 280 */ 374, 152, 421, 42, 432, 1, 395, 36, 156, 156, - /* 290 */ 156, 11, 12, 355, 64, 63, 62, 61, 430, 118, - /* 300 */ 14, 106, 138, 434, 435, 436, 437, 432, 428, 117, - /* 310 */ 391, 155, 154, 153, 16, 69, 142, 140, 64, 63, - /* 320 */ 62, 61, 139, 18, 106, 15, 434, 435, 436, 437, - /* 330 */ 45, 44, 117, 391, 155, 154, 153, 358, 19, 55, - /* 340 */ 64, 63, 62, 61, 20, 147, 146, 68, 114, 106, - /* 350 */ 23, 382, 43, 26, 425, 426, 338, 117, 391, 155, - /* 360 */ 154, 153, 392, 57, 58, 59, 60, 390, 380, 375, - /* 370 */ 381, 17, 160, 374, 70, 39, 42, 443, 443, 443, - /* 380 */ 443, 22, 21, 338, 338, 338, 338, 423, 424, 24, - /* 390 */ 443, 145, 141, 429, 142, 140, 64, 63, 62, 61, - /* 400 */ 392, 471, 443, 59, 60, 443, 443, 132, 130, 389, - /* 410 */ 443, 374, 443, 443, 42, 443, 443, 55, 443, 64, - /* 420 */ 63, 62, 61, 147, 146, 392, 143, 443, 59, 60, - /* 430 */ 43, 443, 389, 443, 443, 443, 374, 471, 443, 42, - /* 440 */ 52, 443, 106, 443, 392, 144, 443, 59, 60, 443, - /* 450 */ 117, 391, 155, 154, 153, 374, 443, 443, 42, 22, - /* 460 */ 21, 121, 445, 452, 29, 443, 443, 24, 448, 145, - /* 470 */ 141, 429, 142, 140, 64, 63, 62, 61, 443, 163, - /* 480 */ 106, 443, 392, 442, 27, 59, 60, 443, 117, 391, - /* 490 */ 155, 154, 153, 374, 443, 55, 42, 443, 443, 443, - /* 500 */ 443, 147, 146, 443, 443, 106, 443, 392, 43, 443, - /* 510 */ 59, 60, 443, 117, 391, 155, 154, 153, 102, 443, - /* 520 */ 74, 42, 148, 443, 106, 443, 443, 124, 113, 120, - /* 530 */ 161, 119, 117, 391, 155, 154, 153, 22, 21, 392, - /* 540 */ 443, 443, 59, 60, 443, 24, 443, 145, 141, 429, - /* 550 */ 374, 149, 392, 40, 443, 59, 60, 443, 85, 443, - /* 560 */ 443, 443, 106, 374, 443, 443, 41, 120, 161, 119, - /* 570 */ 117, 391, 155, 154, 153, 349, 349, 349, 349, 349, - /* 580 */ 349, 349, 349, 349, 349, 443, 443, 106, 443, 152, - /* 590 */ 443, 443, 88, 443, 443, 117, 391, 155, 154, 153, - /* 600 */ 443, 120, 161, 119, 72, 443, 148, 10, 477, 477, - /* 610 */ 443, 125, 113, 120, 161, 119, 443, 443, 443, 106, - /* 620 */ 443, 443, 433, 152, 443, 443, 443, 117, 391, 155, - /* 630 */ 154, 153, 106, 443, 443, 149, 64, 63, 62, 61, - /* 640 */ 117, 391, 155, 154, 153, 443, 74, 443, 148, 354, - /* 650 */ 107, 439, 438, 495, 113, 120, 161, 119, 443, 120, - /* 660 */ 161, 119, 443, 461, 443, 74, 443, 148, 75, 443, - /* 670 */ 78, 78, 494, 113, 120, 161, 119, 149, 74, 443, - /* 680 */ 148, 152, 443, 443, 432, 488, 113, 120, 161, 119, - /* 690 */ 74, 443, 148, 443, 443, 443, 149, 482, 113, 120, - /* 700 */ 161, 119, 88, 434, 435, 436, 437, 443, 443, 149, - /* 710 */ 443, 120, 161, 119, 443, 74, 443, 148, 110, 110, - /* 720 */ 443, 149, 481, 113, 120, 161, 119, 443, 443, 443, - /* 730 */ 74, 443, 148, 152, 443, 443, 443, 478, 113, 120, - /* 740 */ 161, 119, 443, 74, 443, 148, 149, 443, 443, 443, - /* 750 */ 134, 113, 120, 161, 119, 74, 443, 148, 443, 443, - /* 760 */ 443, 149, 515, 113, 120, 161, 119, 443, 74, 443, - /* 770 */ 148, 443, 443, 443, 149, 137, 113, 120, 161, 119, - /* 780 */ 74, 443, 148, 443, 443, 443, 149, 523, 113, 120, - /* 790 */ 161, 119, 443, 74, 443, 148, 443, 443, 443, 149, - /* 800 */ 525, 113, 120, 161, 119, 443, 74, 443, 148, 443, - /* 810 */ 443, 149, 443, 522, 113, 120, 161, 119, 74, 443, - /* 820 */ 148, 86, 443, 443, 149, 524, 113, 120, 161, 119, - /* 830 */ 120, 161, 119, 74, 443, 148, 443, 149, 443, 443, - /* 840 */ 521, 113, 120, 161, 119, 443, 74, 443, 148, 149, - /* 850 */ 443, 443, 152, 520, 113, 120, 161, 119, 74, 443, - /* 860 */ 148, 443, 443, 443, 149, 519, 113, 120, 161, 119, - /* 870 */ 443, 74, 443, 148, 443, 443, 443, 149, 518, 113, - /* 880 */ 120, 161, 119, 74, 443, 148, 443, 443, 443, 149, - /* 890 */ 517, 113, 120, 161, 119, 433, 74, 443, 148, 443, - /* 900 */ 443, 443, 149, 150, 113, 120, 161, 119, 443, 74, - /* 910 */ 443, 148, 443, 443, 149, 443, 151, 113, 120, 161, - /* 920 */ 119, 74, 443, 148, 439, 438, 443, 149, 136, 113, - /* 930 */ 120, 161, 119, 443, 443, 443, 74, 443, 148, 443, - /* 940 */ 149, 443, 443, 135, 113, 120, 161, 119, 443, 88, - /* 950 */ 443, 443, 149, 443, 443, 443, 443, 432, 120, 161, - /* 960 */ 119, 443, 443, 443, 443, 82, 443, 149, 443, 443, - /* 970 */ 443, 443, 464, 443, 34, 443, 434, 435, 436, 437, - /* 980 */ 152, 107, 109, 445, 452, 29, 443, 443, 443, 448, - /* 990 */ 120, 161, 119, 443, 461, 443, 443, 88, 443, 443, - /* 1000 */ 163, 443, 566, 443, 443, 27, 120, 161, 119, 88, - /* 1010 */ 443, 443, 152, 111, 111, 443, 443, 443, 120, 161, - /* 1020 */ 119, 98, 443, 443, 89, 473, 443, 90, 152, 443, - /* 1030 */ 120, 161, 119, 120, 161, 119, 120, 161, 119, 87, - /* 1040 */ 152, 443, 443, 64, 63, 62, 61, 443, 120, 161, - /* 1050 */ 119, 443, 152, 443, 443, 152, 443, 443, 152, 443, - /* 1060 */ 443, 443, 99, 443, 50, 443, 443, 443, 100, 443, - /* 1070 */ 152, 120, 161, 119, 443, 101, 443, 120, 161, 119, - /* 1080 */ 91, 443, 443, 443, 120, 161, 119, 103, 443, 120, - /* 1090 */ 161, 119, 92, 152, 443, 443, 120, 161, 119, 152, - /* 1100 */ 443, 120, 161, 119, 443, 93, 152, 443, 443, 443, - /* 1110 */ 104, 152, 443, 443, 120, 161, 119, 94, 152, 120, - /* 1120 */ 161, 119, 105, 152, 443, 443, 120, 161, 119, 443, - /* 1130 */ 443, 120, 161, 119, 95, 443, 152, 443, 443, 443, - /* 1140 */ 96, 152, 443, 120, 161, 119, 443, 443, 152, 120, - /* 1150 */ 161, 119, 97, 152, 443, 443, 443, 443, 546, 443, - /* 1160 */ 443, 120, 161, 119, 443, 152, 443, 120, 161, 119, - /* 1170 */ 443, 152, 443, 443, 443, 545, 443, 443, 443, 443, - /* 1180 */ 443, 544, 443, 152, 120, 161, 119, 543, 443, 152, - /* 1190 */ 120, 161, 119, 115, 443, 443, 120, 161, 119, 116, - /* 1200 */ 443, 443, 120, 161, 119, 443, 152, 443, 120, 161, - /* 1210 */ 119, 443, 152, 64, 63, 62, 61, 443, 152, 64, - /* 1220 */ 63, 62, 61, 443, 152, 443, 353, 443, 443, 443, - /* 1230 */ 152, 64, 63, 62, 61, 64, 63, 62, 61, 443, - /* 1240 */ 53, 443, 443, 443, 394, 64, 63, 62, 61, 64, - /* 1250 */ 63, 62, 61, 443, 443, 443, 56, 443, 393, 443, - /* 1260 */ 443, 443, 389, + /* 0 */ 575, 495, 161, 119, 25, 452, 29, 74, 129, 148, + /* 10 */ 575, 492, 161, 119, 453, 113, 120, 161, 119, 530, + /* 20 */ 427, 428, 339, 559, 81, 30, 560, 561, 575, 64, + /* 30 */ 63, 62, 61, 322, 323, 9, 8, 33, 149, 32, + /* 40 */ 7, 71, 127, 38, 335, 66, 48, 37, 28, 339, + /* 50 */ 339, 339, 339, 425, 426, 340, 341, 342, 343, 344, + /* 60 */ 345, 346, 347, 348, 474, 528, 161, 119, 577, 77, + /* 70 */ 577, 73, 376, 148, 474, 533, 161, 119, 112, 113, + /* 80 */ 120, 161, 119, 128, 427, 428, 339, 357, 81, 531, + /* 90 */ 161, 119, 474, 36, 330, 13, 306, 322, 323, 9, + /* 100 */ 8, 33, 149, 32, 7, 71, 127, 328, 335, 66, + /* 110 */ 579, 310, 31, 339, 339, 339, 339, 425, 426, 340, + /* 120 */ 341, 342, 343, 344, 345, 346, 347, 348, 394, 435, + /* 130 */ 46, 59, 60, 64, 63, 62, 61, 54, 51, 376, + /* 140 */ 69, 108, 2, 47, 403, 83, 297, 435, 375, 84, + /* 150 */ 117, 80, 35, 308, 79, 133, 122, 126, 441, 440, + /* 160 */ 299, 123, 3, 404, 405, 406, 408, 80, 298, 308, + /* 170 */ 79, 4, 411, 412, 413, 414, 441, 440, 350, 350, + /* 180 */ 350, 350, 350, 350, 350, 350, 350, 350, 62, 61, + /* 190 */ 67, 434, 1, 75, 378, 158, 74, 76, 148, 411, + /* 200 */ 412, 413, 414, 124, 113, 120, 161, 119, 106, 434, + /* 210 */ 436, 437, 438, 439, 5, 375, 6, 117, 393, 155, + /* 220 */ 154, 153, 394, 435, 69, 59, 60, 149, 436, 437, + /* 230 */ 438, 439, 535, 376, 398, 399, 2, 424, 427, 428, + /* 240 */ 339, 156, 156, 156, 423, 394, 435, 65, 59, 60, + /* 250 */ 162, 131, 441, 440, 397, 72, 376, 148, 118, 2, + /* 260 */ 380, 157, 125, 113, 120, 161, 119, 339, 339, 339, + /* 270 */ 339, 425, 426, 535, 11, 441, 440, 394, 356, 535, + /* 280 */ 59, 60, 535, 379, 159, 434, 149, 12, 102, 446, + /* 290 */ 432, 42, 138, 14, 435, 139, 301, 302, 303, 36, + /* 300 */ 305, 430, 106, 16, 436, 437, 438, 439, 434, 375, + /* 310 */ 18, 117, 393, 155, 154, 153, 44, 142, 140, 64, + /* 320 */ 63, 62, 61, 441, 440, 106, 19, 436, 437, 438, + /* 330 */ 439, 45, 375, 20, 117, 393, 155, 154, 153, 68, + /* 340 */ 55, 114, 64, 63, 62, 61, 147, 146, 394, 473, + /* 350 */ 359, 59, 60, 43, 23, 391, 434, 106, 26, 376, + /* 360 */ 57, 58, 42, 49, 375, 392, 117, 393, 155, 154, + /* 370 */ 153, 64, 63, 62, 61, 436, 437, 438, 439, 384, + /* 380 */ 382, 383, 22, 21, 377, 473, 160, 70, 39, 445, + /* 390 */ 24, 445, 145, 141, 431, 142, 140, 64, 63, 62, + /* 400 */ 61, 394, 15, 445, 59, 60, 64, 63, 62, 61, + /* 410 */ 391, 445, 376, 445, 445, 42, 445, 445, 55, 391, + /* 420 */ 156, 156, 156, 445, 147, 146, 445, 52, 106, 445, + /* 430 */ 445, 43, 445, 445, 445, 375, 445, 117, 393, 155, + /* 440 */ 154, 153, 445, 394, 143, 445, 59, 60, 64, 63, + /* 450 */ 62, 61, 313, 445, 376, 378, 158, 42, 445, 445, + /* 460 */ 22, 21, 121, 447, 454, 29, 445, 445, 24, 450, + /* 470 */ 145, 141, 431, 142, 140, 64, 63, 62, 61, 445, + /* 480 */ 163, 106, 445, 445, 444, 27, 445, 445, 375, 445, + /* 490 */ 117, 393, 155, 154, 153, 445, 55, 74, 445, 148, + /* 500 */ 445, 445, 147, 146, 497, 113, 120, 161, 119, 43, + /* 510 */ 445, 394, 445, 445, 59, 60, 445, 445, 445, 118, + /* 520 */ 445, 445, 376, 106, 445, 42, 445, 445, 149, 445, + /* 530 */ 375, 445, 117, 393, 155, 154, 153, 445, 22, 21, + /* 540 */ 394, 144, 445, 59, 60, 445, 24, 445, 145, 141, + /* 550 */ 431, 376, 445, 445, 42, 445, 132, 130, 394, 445, + /* 560 */ 445, 59, 60, 109, 447, 454, 29, 445, 445, 376, + /* 570 */ 450, 445, 42, 445, 394, 445, 445, 59, 60, 445, + /* 580 */ 445, 163, 445, 445, 445, 102, 27, 445, 42, 445, + /* 590 */ 445, 106, 445, 64, 63, 62, 61, 445, 375, 445, + /* 600 */ 117, 393, 155, 154, 153, 394, 355, 445, 59, 60, + /* 610 */ 445, 445, 445, 445, 445, 74, 376, 148, 445, 40, + /* 620 */ 106, 445, 496, 113, 120, 161, 119, 375, 445, 117, + /* 630 */ 393, 155, 154, 153, 445, 448, 454, 29, 106, 445, + /* 640 */ 445, 450, 445, 445, 445, 375, 149, 117, 393, 155, + /* 650 */ 154, 153, 163, 445, 106, 445, 445, 27, 445, 445, + /* 660 */ 445, 375, 445, 117, 393, 155, 154, 153, 394, 445, + /* 670 */ 445, 59, 60, 64, 63, 62, 61, 445, 445, 376, + /* 680 */ 445, 445, 41, 445, 445, 106, 354, 64, 63, 62, + /* 690 */ 61, 445, 375, 445, 117, 393, 155, 154, 153, 445, + /* 700 */ 445, 445, 74, 445, 148, 445, 88, 445, 445, 490, + /* 710 */ 113, 120, 161, 119, 445, 120, 161, 119, 17, 74, + /* 720 */ 445, 148, 110, 110, 445, 445, 484, 113, 120, 161, + /* 730 */ 119, 445, 445, 149, 74, 445, 148, 152, 445, 445, + /* 740 */ 445, 483, 113, 120, 161, 119, 445, 445, 106, 445, + /* 750 */ 149, 445, 445, 107, 445, 375, 445, 117, 393, 155, + /* 760 */ 154, 153, 120, 161, 119, 149, 478, 74, 445, 148, + /* 770 */ 445, 88, 445, 445, 480, 113, 120, 161, 119, 445, + /* 780 */ 120, 161, 119, 74, 152, 148, 10, 479, 479, 445, + /* 790 */ 134, 113, 120, 161, 119, 445, 445, 445, 149, 74, + /* 800 */ 445, 148, 152, 445, 445, 445, 517, 113, 120, 161, + /* 810 */ 119, 445, 445, 74, 149, 148, 445, 445, 445, 445, + /* 820 */ 137, 113, 120, 161, 119, 74, 445, 148, 445, 445, + /* 830 */ 149, 445, 525, 113, 120, 161, 119, 445, 74, 445, + /* 840 */ 148, 445, 445, 445, 149, 527, 113, 120, 161, 119, + /* 850 */ 445, 445, 74, 445, 148, 445, 149, 445, 445, 524, + /* 860 */ 113, 120, 161, 119, 74, 445, 148, 445, 445, 149, + /* 870 */ 445, 526, 113, 120, 161, 119, 445, 445, 74, 445, + /* 880 */ 148, 445, 88, 149, 445, 523, 113, 120, 161, 119, + /* 890 */ 445, 120, 161, 119, 74, 149, 148, 85, 111, 111, + /* 900 */ 445, 522, 113, 120, 161, 119, 120, 161, 119, 149, + /* 910 */ 74, 445, 148, 152, 445, 445, 445, 521, 113, 120, + /* 920 */ 161, 119, 445, 445, 74, 149, 148, 445, 152, 445, + /* 930 */ 445, 520, 113, 120, 161, 119, 74, 445, 148, 445, + /* 940 */ 445, 149, 445, 519, 113, 120, 161, 119, 445, 74, + /* 950 */ 445, 148, 445, 445, 445, 149, 150, 113, 120, 161, + /* 960 */ 119, 445, 445, 74, 445, 148, 445, 149, 445, 445, + /* 970 */ 151, 113, 120, 161, 119, 74, 445, 148, 445, 445, + /* 980 */ 149, 445, 136, 113, 120, 161, 119, 445, 445, 74, + /* 990 */ 445, 148, 107, 445, 149, 445, 135, 113, 120, 161, + /* 1000 */ 119, 120, 161, 119, 445, 463, 149, 445, 88, 445, + /* 1010 */ 445, 445, 78, 78, 445, 445, 107, 120, 161, 119, + /* 1020 */ 149, 445, 445, 152, 82, 120, 161, 119, 445, 463, + /* 1030 */ 445, 466, 86, 34, 445, 88, 445, 569, 445, 152, + /* 1040 */ 445, 120, 161, 119, 120, 161, 119, 152, 107, 445, + /* 1050 */ 445, 475, 64, 63, 62, 61, 445, 120, 161, 119, + /* 1060 */ 98, 451, 445, 152, 89, 396, 152, 90, 445, 120, + /* 1070 */ 161, 119, 445, 120, 161, 119, 120, 161, 119, 152, + /* 1080 */ 445, 64, 63, 62, 61, 445, 445, 445, 445, 445, + /* 1090 */ 87, 152, 445, 99, 395, 152, 100, 445, 152, 120, + /* 1100 */ 161, 119, 120, 161, 119, 120, 161, 119, 445, 101, + /* 1110 */ 64, 63, 62, 61, 445, 445, 445, 445, 120, 161, + /* 1120 */ 119, 152, 91, 391, 152, 445, 445, 152, 103, 445, + /* 1130 */ 445, 120, 161, 119, 445, 92, 445, 120, 161, 119, + /* 1140 */ 152, 93, 445, 445, 120, 161, 119, 104, 445, 445, + /* 1150 */ 120, 161, 119, 152, 445, 445, 120, 161, 119, 152, + /* 1160 */ 445, 445, 445, 445, 94, 445, 152, 445, 445, 445, + /* 1170 */ 105, 445, 152, 120, 161, 119, 445, 95, 152, 120, + /* 1180 */ 161, 119, 96, 445, 445, 445, 120, 161, 119, 445, + /* 1190 */ 445, 120, 161, 119, 97, 152, 445, 445, 445, 445, + /* 1200 */ 549, 152, 445, 120, 161, 119, 548, 445, 152, 120, + /* 1210 */ 161, 119, 445, 152, 445, 120, 161, 119, 445, 445, + /* 1220 */ 445, 445, 445, 547, 445, 152, 445, 445, 445, 445, + /* 1230 */ 445, 152, 120, 161, 119, 546, 445, 152, 445, 115, + /* 1240 */ 445, 445, 116, 445, 120, 161, 119, 445, 120, 161, + /* 1250 */ 119, 120, 161, 119, 152, 64, 63, 62, 61, 64, + /* 1260 */ 63, 62, 61, 445, 445, 445, 152, 445, 445, 445, + /* 1270 */ 152, 445, 445, 152, 445, 445, 50, 445, 445, 445, + /* 1280 */ 53, 64, 63, 62, 61, 445, 445, 445, 445, 445, + /* 1290 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, + /* 1300 */ 445, 445, 56, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 0, 111, 112, 113, 132, 100, 101, 102, 104, 104, - /* 10 */ 10, 111, 112, 113, 109, 110, 111, 112, 113, 104, - /* 20 */ 20, 21, 22, 103, 24, 124, 106, 107, 28, 4, - /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 133, 39, - /* 40 */ 40, 41, 42, 103, 44, 45, 106, 107, 105, 49, + /* 0 */ 0, 112, 113, 114, 133, 101, 102, 103, 105, 105, + /* 10 */ 10, 112, 113, 114, 110, 111, 112, 113, 114, 105, + /* 20 */ 20, 21, 22, 104, 24, 125, 107, 108, 28, 4, + /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 134, 39, + /* 40 */ 40, 41, 42, 104, 44, 45, 107, 108, 106, 49, /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - /* 60 */ 60, 61, 62, 63, 0, 111, 112, 113, 128, 129, - /* 70 */ 130, 102, 12, 104, 10, 111, 112, 113, 109, 110, - /* 80 */ 111, 112, 113, 104, 20, 21, 22, 25, 24, 26, - /* 90 */ 27, 48, 28, 111, 112, 113, 126, 33, 34, 35, - /* 100 */ 36, 37, 133, 39, 40, 41, 42, 2, 44, 45, - /* 110 */ 131, 114, 10, 49, 50, 51, 52, 53, 54, 55, + /* 60 */ 60, 61, 62, 63, 0, 112, 113, 114, 129, 130, + /* 70 */ 131, 103, 12, 105, 10, 112, 113, 114, 110, 111, + /* 80 */ 112, 113, 114, 105, 20, 21, 22, 17, 24, 112, + /* 90 */ 113, 114, 28, 10, 2, 25, 25, 33, 34, 35, + /* 100 */ 36, 37, 134, 39, 40, 41, 42, 2, 44, 45, + /* 110 */ 132, 28, 127, 49, 50, 51, 52, 53, 54, 55, /* 120 */ 56, 57, 58, 59, 60, 61, 62, 63, 1, 2, - /* 130 */ 28, 4, 5, 29, 30, 31, 32, 102, 114, 12, - /* 140 */ 97, 81, 15, 38, 1, 82, 111, 112, 113, 89, - /* 150 */ 115, 24, 89, 26, 27, 12, 127, 14, 31, 32, - /* 160 */ 19, 18, 1, 20, 21, 22, 23, 24, 133, 26, - /* 170 */ 27, 2, 29, 30, 31, 32, 1, 4, 5, 4, - /* 180 */ 5, 4, 5, 6, 7, 8, 16, 12, 26, 27, - /* 190 */ 15, 64, 99, 100, 101, 20, 21, 22, 105, 24, - /* 200 */ 6, 7, 4, 5, 6, 7, 17, 38, 81, 116, - /* 210 */ 83, 84, 85, 86, 121, 17, 89, 90, 91, 92, - /* 220 */ 93, 1, 2, 25, 4, 5, 4, 5, 6, 7, - /* 230 */ 48, 3, 12, 95, 96, 15, 26, 27, 17, 17, - /* 240 */ 20, 21, 22, 43, 1, 2, 25, 4, 5, 15, - /* 250 */ 102, 31, 32, 26, 27, 12, 81, 40, 15, 111, - /* 260 */ 112, 113, 47, 115, 89, 90, 91, 92, 93, 1, - /* 270 */ 88, 40, 4, 5, 31, 32, 94, 0, 41, 97, - /* 280 */ 12, 133, 41, 15, 64, 13, 17, 10, 20, 21, - /* 290 */ 22, 25, 74, 17, 4, 5, 6, 7, 79, 89, - /* 300 */ 3, 81, 78, 83, 84, 85, 86, 64, 79, 89, - /* 310 */ 90, 91, 92, 93, 3, 87, 2, 3, 4, 5, - /* 320 */ 6, 7, 80, 3, 81, 35, 83, 84, 85, 86, - /* 330 */ 16, 38, 89, 90, 91, 92, 93, 76, 3, 25, - /* 340 */ 4, 5, 6, 7, 3, 31, 32, 3, 94, 81, - /* 350 */ 25, 28, 38, 15, 20, 21, 22, 89, 90, 91, - /* 360 */ 92, 93, 1, 15, 15, 4, 5, 17, 28, 12, - /* 370 */ 28, 35, 88, 12, 3, 11, 15, 134, 134, 134, - /* 380 */ 134, 67, 68, 49, 50, 51, 52, 53, 54, 75, - /* 390 */ 134, 77, 78, 79, 2, 3, 4, 5, 6, 7, - /* 400 */ 1, 2, 134, 4, 5, 134, 134, 46, 47, 17, - /* 410 */ 134, 12, 134, 134, 15, 134, 134, 25, 134, 4, - /* 420 */ 5, 6, 7, 31, 32, 1, 2, 134, 4, 5, - /* 430 */ 38, 134, 17, 134, 134, 134, 12, 38, 134, 15, - /* 440 */ 25, 134, 81, 134, 1, 2, 134, 4, 5, 134, - /* 450 */ 89, 90, 91, 92, 93, 12, 134, 134, 15, 67, - /* 460 */ 68, 98, 99, 100, 101, 134, 134, 75, 105, 77, - /* 470 */ 78, 79, 2, 3, 4, 5, 6, 7, 134, 116, - /* 480 */ 81, 134, 1, 120, 121, 4, 5, 134, 89, 90, - /* 490 */ 91, 92, 93, 12, 134, 25, 15, 134, 134, 134, - /* 500 */ 134, 31, 32, 134, 134, 81, 134, 1, 38, 134, - /* 510 */ 4, 5, 134, 89, 90, 91, 92, 93, 12, 134, - /* 520 */ 102, 15, 104, 134, 81, 134, 134, 109, 110, 111, - /* 530 */ 112, 113, 89, 90, 91, 92, 93, 67, 68, 1, - /* 540 */ 134, 134, 4, 5, 134, 75, 134, 77, 78, 79, - /* 550 */ 12, 133, 1, 15, 134, 4, 5, 134, 102, 134, - /* 560 */ 134, 134, 81, 12, 134, 134, 15, 111, 112, 113, - /* 570 */ 89, 90, 91, 92, 93, 64, 65, 66, 67, 68, - /* 580 */ 69, 70, 71, 72, 73, 134, 134, 81, 134, 133, - /* 590 */ 134, 134, 102, 134, 134, 89, 90, 91, 92, 93, - /* 600 */ 134, 111, 112, 113, 102, 134, 104, 117, 118, 119, - /* 610 */ 134, 109, 110, 111, 112, 113, 134, 134, 134, 81, - /* 620 */ 134, 134, 2, 133, 134, 134, 134, 89, 90, 91, - /* 630 */ 92, 93, 81, 134, 134, 133, 4, 5, 6, 7, - /* 640 */ 89, 90, 91, 92, 93, 134, 102, 134, 104, 17, - /* 650 */ 102, 31, 32, 109, 110, 111, 112, 113, 134, 111, - /* 660 */ 112, 113, 134, 115, 134, 102, 134, 104, 48, 134, - /* 670 */ 122, 123, 109, 110, 111, 112, 113, 133, 102, 134, - /* 680 */ 104, 133, 134, 134, 64, 109, 110, 111, 112, 113, - /* 690 */ 102, 134, 104, 134, 134, 134, 133, 109, 110, 111, - /* 700 */ 112, 113, 102, 83, 84, 85, 86, 134, 134, 133, - /* 710 */ 134, 111, 112, 113, 134, 102, 134, 104, 118, 119, - /* 720 */ 134, 133, 109, 110, 111, 112, 113, 134, 134, 134, - /* 730 */ 102, 134, 104, 133, 134, 134, 134, 109, 110, 111, - /* 740 */ 112, 113, 134, 102, 134, 104, 133, 134, 134, 134, - /* 750 */ 109, 110, 111, 112, 113, 102, 134, 104, 134, 134, - /* 760 */ 134, 133, 109, 110, 111, 112, 113, 134, 102, 134, - /* 770 */ 104, 134, 134, 134, 133, 109, 110, 111, 112, 113, - /* 780 */ 102, 134, 104, 134, 134, 134, 133, 109, 110, 111, - /* 790 */ 112, 113, 134, 102, 134, 104, 134, 134, 134, 133, - /* 800 */ 109, 110, 111, 112, 113, 134, 102, 134, 104, 134, - /* 810 */ 134, 133, 134, 109, 110, 111, 112, 113, 102, 134, - /* 820 */ 104, 102, 134, 134, 133, 109, 110, 111, 112, 113, - /* 830 */ 111, 112, 113, 102, 134, 104, 134, 133, 134, 134, - /* 840 */ 109, 110, 111, 112, 113, 134, 102, 134, 104, 133, - /* 850 */ 134, 134, 133, 109, 110, 111, 112, 113, 102, 134, - /* 860 */ 104, 134, 134, 134, 133, 109, 110, 111, 112, 113, - /* 870 */ 134, 102, 134, 104, 134, 134, 134, 133, 109, 110, - /* 880 */ 111, 112, 113, 102, 134, 104, 134, 134, 134, 133, - /* 890 */ 109, 110, 111, 112, 113, 2, 102, 134, 104, 134, - /* 900 */ 134, 134, 133, 109, 110, 111, 112, 113, 134, 102, - /* 910 */ 134, 104, 134, 134, 133, 134, 109, 110, 111, 112, - /* 920 */ 113, 102, 134, 104, 31, 32, 134, 133, 109, 110, - /* 930 */ 111, 112, 113, 134, 134, 134, 102, 134, 104, 134, - /* 940 */ 133, 134, 134, 109, 110, 111, 112, 113, 134, 102, - /* 950 */ 134, 134, 133, 134, 134, 134, 134, 64, 111, 112, - /* 960 */ 113, 134, 134, 134, 134, 118, 134, 133, 134, 134, - /* 970 */ 134, 134, 125, 134, 127, 134, 83, 84, 85, 86, - /* 980 */ 133, 102, 98, 99, 100, 101, 134, 134, 134, 105, - /* 990 */ 111, 112, 113, 134, 115, 134, 134, 102, 134, 134, - /* 1000 */ 116, 134, 123, 134, 134, 121, 111, 112, 113, 102, - /* 1010 */ 134, 134, 133, 118, 119, 134, 134, 134, 111, 112, - /* 1020 */ 113, 102, 134, 134, 102, 118, 134, 102, 133, 134, - /* 1030 */ 111, 112, 113, 111, 112, 113, 111, 112, 113, 102, - /* 1040 */ 133, 134, 134, 4, 5, 6, 7, 134, 111, 112, - /* 1050 */ 113, 134, 133, 134, 134, 133, 134, 134, 133, 134, - /* 1060 */ 134, 134, 102, 134, 25, 134, 134, 134, 102, 134, - /* 1070 */ 133, 111, 112, 113, 134, 102, 134, 111, 112, 113, - /* 1080 */ 102, 134, 134, 134, 111, 112, 113, 102, 134, 111, - /* 1090 */ 112, 113, 102, 133, 134, 134, 111, 112, 113, 133, - /* 1100 */ 134, 111, 112, 113, 134, 102, 133, 134, 134, 134, - /* 1110 */ 102, 133, 134, 134, 111, 112, 113, 102, 133, 111, - /* 1120 */ 112, 113, 102, 133, 134, 134, 111, 112, 113, 134, - /* 1130 */ 134, 111, 112, 113, 102, 134, 133, 134, 134, 134, - /* 1140 */ 102, 133, 134, 111, 112, 113, 134, 134, 133, 111, - /* 1150 */ 112, 113, 102, 133, 134, 134, 134, 134, 102, 134, - /* 1160 */ 134, 111, 112, 113, 134, 133, 134, 111, 112, 113, - /* 1170 */ 134, 133, 134, 134, 134, 102, 134, 134, 134, 134, - /* 1180 */ 134, 102, 134, 133, 111, 112, 113, 102, 134, 133, - /* 1190 */ 111, 112, 113, 102, 134, 134, 111, 112, 113, 102, - /* 1200 */ 134, 134, 111, 112, 113, 134, 133, 134, 111, 112, - /* 1210 */ 113, 134, 133, 4, 5, 6, 7, 134, 133, 4, - /* 1220 */ 5, 6, 7, 134, 133, 134, 17, 134, 134, 134, - /* 1230 */ 133, 4, 5, 6, 7, 4, 5, 6, 7, 134, - /* 1240 */ 25, 134, 134, 134, 17, 4, 5, 6, 7, 4, - /* 1250 */ 5, 6, 7, 134, 134, 134, 25, 134, 17, 134, - /* 1260 */ 134, 134, 17, 134, 134, 134, 134, 134, 134, 134, - /* 1270 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1280 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1290 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1300 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1310 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1320 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1330 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - /* 1340 */ 134, 134, 134, 134, 134, 134, 134, 134, 98, 98, - /* 1350 */ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - /* 1360 */ 98, + /* 130 */ 38, 4, 5, 4, 5, 6, 7, 4, 5, 12, + /* 140 */ 3, 81, 15, 38, 1, 115, 17, 2, 88, 115, + /* 150 */ 90, 24, 128, 26, 27, 12, 1, 14, 31, 32, + /* 160 */ 19, 18, 16, 20, 21, 22, 23, 24, 17, 26, + /* 170 */ 27, 15, 29, 30, 31, 32, 31, 32, 64, 65, + /* 180 */ 66, 67, 68, 69, 70, 71, 72, 73, 6, 7, + /* 190 */ 43, 64, 13, 48, 26, 27, 103, 48, 105, 29, + /* 200 */ 30, 31, 32, 110, 111, 112, 113, 114, 81, 64, + /* 210 */ 83, 84, 85, 86, 40, 88, 40, 90, 91, 92, + /* 220 */ 93, 94, 1, 2, 87, 4, 5, 134, 83, 84, + /* 230 */ 85, 86, 48, 12, 96, 97, 15, 41, 20, 21, + /* 240 */ 22, 20, 21, 22, 41, 1, 2, 98, 4, 5, + /* 250 */ 82, 47, 31, 32, 17, 103, 12, 105, 90, 15, + /* 260 */ 26, 27, 110, 111, 112, 113, 114, 49, 50, 51, + /* 270 */ 52, 53, 54, 89, 25, 31, 32, 1, 17, 95, + /* 280 */ 4, 5, 98, 26, 27, 64, 134, 74, 12, 0, + /* 290 */ 79, 15, 78, 3, 2, 80, 20, 21, 22, 10, + /* 300 */ 24, 79, 81, 3, 83, 84, 85, 86, 64, 88, + /* 310 */ 3, 90, 91, 92, 93, 94, 38, 2, 3, 4, + /* 320 */ 5, 6, 7, 31, 32, 81, 3, 83, 84, 85, + /* 330 */ 86, 16, 88, 3, 90, 91, 92, 93, 94, 3, + /* 340 */ 25, 95, 4, 5, 6, 7, 31, 32, 1, 2, + /* 350 */ 76, 4, 5, 38, 25, 17, 64, 81, 15, 12, + /* 360 */ 15, 15, 15, 25, 88, 17, 90, 91, 92, 93, + /* 370 */ 94, 4, 5, 6, 7, 83, 84, 85, 86, 28, + /* 380 */ 28, 28, 67, 68, 12, 38, 89, 3, 11, 135, + /* 390 */ 75, 135, 77, 78, 79, 2, 3, 4, 5, 6, + /* 400 */ 7, 1, 35, 135, 4, 5, 4, 5, 6, 7, + /* 410 */ 17, 135, 12, 135, 135, 15, 135, 135, 25, 17, + /* 420 */ 20, 21, 22, 135, 31, 32, 135, 25, 81, 135, + /* 430 */ 135, 38, 135, 135, 135, 88, 135, 90, 91, 92, + /* 440 */ 93, 94, 135, 1, 2, 135, 4, 5, 4, 5, + /* 450 */ 6, 7, 8, 135, 12, 26, 27, 15, 135, 135, + /* 460 */ 67, 68, 99, 100, 101, 102, 135, 135, 75, 106, + /* 470 */ 77, 78, 79, 2, 3, 4, 5, 6, 7, 135, + /* 480 */ 117, 81, 135, 135, 121, 122, 135, 135, 88, 135, + /* 490 */ 90, 91, 92, 93, 94, 135, 25, 103, 135, 105, + /* 500 */ 135, 135, 31, 32, 110, 111, 112, 113, 114, 38, + /* 510 */ 135, 1, 135, 135, 4, 5, 135, 135, 135, 90, + /* 520 */ 135, 135, 12, 81, 135, 15, 135, 135, 134, 135, + /* 530 */ 88, 135, 90, 91, 92, 93, 94, 135, 67, 68, + /* 540 */ 1, 2, 135, 4, 5, 135, 75, 135, 77, 78, + /* 550 */ 79, 12, 135, 135, 15, 135, 46, 47, 1, 135, + /* 560 */ 135, 4, 5, 99, 100, 101, 102, 135, 135, 12, + /* 570 */ 106, 135, 15, 135, 1, 135, 135, 4, 5, 135, + /* 580 */ 135, 117, 135, 135, 135, 12, 122, 135, 15, 135, + /* 590 */ 135, 81, 135, 4, 5, 6, 7, 135, 88, 135, + /* 600 */ 90, 91, 92, 93, 94, 1, 17, 135, 4, 5, + /* 610 */ 135, 135, 135, 135, 135, 103, 12, 105, 135, 15, + /* 620 */ 81, 135, 110, 111, 112, 113, 114, 88, 135, 90, + /* 630 */ 91, 92, 93, 94, 135, 100, 101, 102, 81, 135, + /* 640 */ 135, 106, 135, 135, 135, 88, 134, 90, 91, 92, + /* 650 */ 93, 94, 117, 135, 81, 135, 135, 122, 135, 135, + /* 660 */ 135, 88, 135, 90, 91, 92, 93, 94, 1, 135, + /* 670 */ 135, 4, 5, 4, 5, 6, 7, 135, 135, 12, + /* 680 */ 135, 135, 15, 135, 135, 81, 17, 4, 5, 6, + /* 690 */ 7, 135, 88, 135, 90, 91, 92, 93, 94, 135, + /* 700 */ 135, 135, 103, 135, 105, 135, 103, 135, 135, 110, + /* 710 */ 111, 112, 113, 114, 135, 112, 113, 114, 35, 103, + /* 720 */ 135, 105, 119, 120, 135, 135, 110, 111, 112, 113, + /* 730 */ 114, 135, 135, 134, 103, 135, 105, 134, 135, 135, + /* 740 */ 135, 110, 111, 112, 113, 114, 135, 135, 81, 135, + /* 750 */ 134, 135, 135, 103, 135, 88, 135, 90, 91, 92, + /* 760 */ 93, 94, 112, 113, 114, 134, 116, 103, 135, 105, + /* 770 */ 135, 103, 135, 135, 110, 111, 112, 113, 114, 135, + /* 780 */ 112, 113, 114, 103, 134, 105, 118, 119, 120, 135, + /* 790 */ 110, 111, 112, 113, 114, 135, 135, 135, 134, 103, + /* 800 */ 135, 105, 134, 135, 135, 135, 110, 111, 112, 113, + /* 810 */ 114, 135, 135, 103, 134, 105, 135, 135, 135, 135, + /* 820 */ 110, 111, 112, 113, 114, 103, 135, 105, 135, 135, + /* 830 */ 134, 135, 110, 111, 112, 113, 114, 135, 103, 135, + /* 840 */ 105, 135, 135, 135, 134, 110, 111, 112, 113, 114, + /* 850 */ 135, 135, 103, 135, 105, 135, 134, 135, 135, 110, + /* 860 */ 111, 112, 113, 114, 103, 135, 105, 135, 135, 134, + /* 870 */ 135, 110, 111, 112, 113, 114, 135, 135, 103, 135, + /* 880 */ 105, 135, 103, 134, 135, 110, 111, 112, 113, 114, + /* 890 */ 135, 112, 113, 114, 103, 134, 105, 103, 119, 120, + /* 900 */ 135, 110, 111, 112, 113, 114, 112, 113, 114, 134, + /* 910 */ 103, 135, 105, 134, 135, 135, 135, 110, 111, 112, + /* 920 */ 113, 114, 135, 135, 103, 134, 105, 135, 134, 135, + /* 930 */ 135, 110, 111, 112, 113, 114, 103, 135, 105, 135, + /* 940 */ 135, 134, 135, 110, 111, 112, 113, 114, 135, 103, + /* 950 */ 135, 105, 135, 135, 135, 134, 110, 111, 112, 113, + /* 960 */ 114, 135, 135, 103, 135, 105, 135, 134, 135, 135, + /* 970 */ 110, 111, 112, 113, 114, 103, 135, 105, 135, 135, + /* 980 */ 134, 135, 110, 111, 112, 113, 114, 135, 135, 103, + /* 990 */ 135, 105, 103, 135, 134, 135, 110, 111, 112, 113, + /* 1000 */ 114, 112, 113, 114, 135, 116, 134, 135, 103, 135, + /* 1010 */ 135, 135, 123, 124, 135, 135, 103, 112, 113, 114, + /* 1020 */ 134, 135, 135, 134, 119, 112, 113, 114, 135, 116, + /* 1030 */ 135, 126, 103, 128, 135, 103, 135, 124, 135, 134, + /* 1040 */ 135, 112, 113, 114, 112, 113, 114, 134, 103, 135, + /* 1050 */ 135, 119, 4, 5, 6, 7, 135, 112, 113, 114, + /* 1060 */ 103, 116, 135, 134, 103, 17, 134, 103, 135, 112, + /* 1070 */ 113, 114, 135, 112, 113, 114, 112, 113, 114, 134, + /* 1080 */ 135, 4, 5, 6, 7, 135, 135, 135, 135, 135, + /* 1090 */ 103, 134, 135, 103, 17, 134, 103, 135, 134, 112, + /* 1100 */ 113, 114, 112, 113, 114, 112, 113, 114, 135, 103, + /* 1110 */ 4, 5, 6, 7, 135, 135, 135, 135, 112, 113, + /* 1120 */ 114, 134, 103, 17, 134, 135, 135, 134, 103, 135, + /* 1130 */ 135, 112, 113, 114, 135, 103, 135, 112, 113, 114, + /* 1140 */ 134, 103, 135, 135, 112, 113, 114, 103, 135, 135, + /* 1150 */ 112, 113, 114, 134, 135, 135, 112, 113, 114, 134, + /* 1160 */ 135, 135, 135, 135, 103, 135, 134, 135, 135, 135, + /* 1170 */ 103, 135, 134, 112, 113, 114, 135, 103, 134, 112, + /* 1180 */ 113, 114, 103, 135, 135, 135, 112, 113, 114, 135, + /* 1190 */ 135, 112, 113, 114, 103, 134, 135, 135, 135, 135, + /* 1200 */ 103, 134, 135, 112, 113, 114, 103, 135, 134, 112, + /* 1210 */ 113, 114, 135, 134, 135, 112, 113, 114, 135, 135, + /* 1220 */ 135, 135, 135, 103, 135, 134, 135, 135, 135, 135, + /* 1230 */ 135, 134, 112, 113, 114, 103, 135, 134, 135, 103, + /* 1240 */ 135, 135, 103, 135, 112, 113, 114, 135, 112, 113, + /* 1250 */ 114, 112, 113, 114, 134, 4, 5, 6, 7, 4, + /* 1260 */ 5, 6, 7, 135, 135, 135, 134, 135, 135, 135, + /* 1270 */ 134, 135, 135, 134, 135, 135, 25, 135, 135, 135, + /* 1280 */ 25, 4, 5, 6, 7, 135, 135, 135, 135, 135, + /* 1290 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1300 */ 135, 135, 25, 135, 135, 135, 135, 135, 135, 135, + /* 1310 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1320 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1330 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1340 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1350 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1360 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1370 */ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + /* 1380 */ 135, 99, 99, 99, 99, 99, 99, 99, 99, 99, + /* 1390 */ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + /* 1400 */ 99, 99, }; #define YY_SHIFT_COUNT (163) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (1245) +#define YY_SHIFT_MAX (1277) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 143, 127, 220, 243, 243, 243, 243, 243, 243, 243, - /* 10 */ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - /* 20 */ 243, 243, 243, 243, 243, 243, 243, 175, 361, 481, - /* 30 */ 175, 143, 399, 399, 0, 64, 143, 506, 481, 506, - /* 40 */ 268, 268, 268, 424, 443, 481, 481, 481, 481, 481, - /* 50 */ 481, 538, 481, 481, 551, 481, 481, 481, 481, 481, - /* 60 */ 481, 481, 481, 481, 481, 334, 60, 60, 60, 60, - /* 70 */ 60, 620, 314, 392, 470, 893, 893, 104, 62, 1263, - /* 80 */ 1263, 1263, 1263, 511, 511, 198, 415, 222, 177, 290, - /* 90 */ 336, 632, 1039, 1209, 1215, 1227, 1231, 1241, 1245, 25, - /* 100 */ 25, 25, 182, 25, 25, 25, 63, 25, 210, 102, - /* 110 */ 105, 169, 221, 173, 138, 194, 194, 162, 227, 228, - /* 120 */ 43, 277, 141, 161, 189, 170, 234, 200, 217, 231, - /* 130 */ 237, 241, 215, 272, 269, 266, 218, 276, 219, 224, - /* 140 */ 242, 229, 297, 311, 320, 293, 335, 341, 344, 254, - /* 150 */ 261, 325, 254, 338, 348, 349, 350, 323, 340, 342, - /* 160 */ 357, 284, 371, 364, + /* 0 */ 143, 127, 221, 244, 244, 244, 244, 244, 244, 244, + /* 10 */ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + /* 20 */ 244, 244, 244, 244, 244, 244, 244, 276, 510, 557, + /* 30 */ 276, 143, 347, 347, 0, 64, 143, 573, 557, 573, + /* 40 */ 400, 400, 400, 442, 539, 557, 557, 557, 557, 557, + /* 50 */ 557, 604, 557, 557, 667, 557, 557, 557, 557, 557, + /* 60 */ 557, 557, 557, 557, 557, 218, 60, 60, 60, 60, + /* 70 */ 60, 145, 315, 393, 471, 292, 292, 170, 71, 1303, + /* 80 */ 1303, 1303, 1303, 114, 114, 338, 402, 129, 444, 367, + /* 90 */ 683, 589, 1251, 669, 1255, 1048, 1277, 1077, 1106, 25, + /* 100 */ 25, 25, 184, 25, 25, 25, 168, 25, 429, 83, + /* 110 */ 92, 105, 70, 133, 138, 182, 182, 234, 257, 137, + /* 120 */ 149, 289, 141, 155, 151, 146, 156, 147, 174, 176, + /* 130 */ 196, 203, 204, 179, 237, 249, 213, 261, 211, 214, + /* 140 */ 215, 222, 290, 300, 307, 278, 323, 330, 336, 246, + /* 150 */ 274, 329, 246, 343, 345, 346, 348, 351, 352, 353, + /* 160 */ 372, 297, 384, 377, }; #define YY_REDUCE_COUNT (82) -#define YY_REDUCE_MIN (-128) -#define YY_REDUCE_MAX (1097) +#define YY_REDUCE_MIN (-129) +#define YY_REDUCE_MAX (1139) static const short yy_reduce_ofst[] = { - /* 0 */ 363, -95, -31, 418, 502, 544, 563, 576, 588, 613, - /* 10 */ 628, 641, 653, 666, 678, 691, 704, 716, 731, 744, - /* 20 */ 756, 769, 781, 794, 807, 819, 834, 548, 490, 847, - /* 30 */ 879, 884, 600, 895, -60, -60, 93, 35, 907, 148, - /* 40 */ 456, 719, 919, 922, 925, 937, 960, 966, 973, 978, - /* 50 */ 985, 990, 1003, 1008, 1015, 1020, 1032, 1038, 1050, 1056, - /* 60 */ 1073, 1079, 1085, 1091, 1097, -80, -110, -100, -46, -36, - /* 70 */ -18, -21, -128, -128, -128, -96, -85, -57, -99, -30, - /* 80 */ -3, 24, 29, + /* 0 */ 363, -96, -32, 93, 152, 394, 512, 599, 616, 631, + /* 10 */ 664, 680, 696, 710, 722, 735, 749, 761, 775, 791, + /* 20 */ 807, 821, 833, 846, 860, 872, 886, 889, 668, 905, + /* 30 */ 913, 464, 603, 779, -61, -61, 535, 650, 932, 945, + /* 40 */ 794, 929, 957, 961, 964, 987, 990, 993, 1006, 1019, + /* 50 */ 1025, 1032, 1038, 1044, 1061, 1067, 1074, 1079, 1091, 1097, + /* 60 */ 1103, 1120, 1132, 1136, 1139, -81, -111, -101, -47, -37, + /* 70 */ -23, -22, -129, -129, -129, -97, -86, -58, -100, -15, + /* 80 */ 30, 34, 24, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 447, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 10 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 20 */ 441, 441, 441, 441, 441, 441, 441, 441, 471, 573, - /* 30 */ 441, 447, 577, 483, 578, 578, 447, 441, 441, 441, - /* 40 */ 441, 441, 441, 441, 441, 441, 441, 441, 475, 441, - /* 50 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 60 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 70 */ 441, 441, 441, 441, 441, 441, 441, 441, 453, 468, - /* 80 */ 506, 506, 573, 466, 491, 441, 441, 441, 469, 441, - /* 90 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 486, - /* 100 */ 484, 474, 457, 510, 509, 508, 441, 563, 441, 441, - /* 110 */ 441, 441, 441, 585, 441, 542, 541, 537, 441, 530, - /* 120 */ 527, 441, 441, 441, 441, 441, 441, 489, 441, 441, - /* 130 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 140 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 589, - /* 150 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, - /* 160 */ 441, 598, 441, 441, + /* 0 */ 449, 443, 443, 443, 443, 443, 443, 443, 443, 443, + /* 10 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + /* 20 */ 443, 443, 443, 443, 443, 443, 443, 443, 473, 576, + /* 30 */ 443, 449, 580, 485, 581, 581, 449, 443, 443, 443, + /* 40 */ 443, 443, 443, 443, 443, 443, 443, 443, 477, 443, + /* 50 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + /* 60 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + /* 70 */ 443, 443, 443, 443, 443, 443, 443, 443, 455, 470, + /* 80 */ 508, 508, 576, 468, 493, 443, 443, 443, 471, 443, + /* 90 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 488, + /* 100 */ 486, 476, 459, 512, 511, 510, 443, 566, 443, 443, + /* 110 */ 443, 443, 443, 588, 443, 545, 544, 540, 443, 532, + /* 120 */ 529, 443, 443, 443, 443, 443, 443, 491, 443, 443, + /* 130 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + /* 140 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 592, + /* 150 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + /* 160 */ 443, 601, 443, 443, }; /********** End of lemon-generated parsing tables *****************************/ /* The next table maps tokens (terminal symbols) into fallback tokens. ** If a construct like the following: @@ -1170,10 +1179,11 @@ 0, /* TOP => nothing */ 0, /* BOTTOM => nothing */ 0, /* START => nothing */ 0, /* END => nothing */ 0, /* IN => nothing */ + 0, /* THIS => nothing */ 0, /* DOT_U => nothing */ 0, /* LAST => nothing */ 0, /* NUMBER => nothing */ 0, /* FUNC1 => nothing */ 0, /* FUNC2 => nothing */ @@ -1356,56 +1366,57 @@ /* 83 */ "TOP", /* 84 */ "BOTTOM", /* 85 */ "START", /* 86 */ "END", /* 87 */ "IN", - /* 88 */ "DOT_U", - /* 89 */ "LAST", - /* 90 */ "NUMBER", - /* 91 */ "FUNC1", - /* 92 */ "FUNC2", - /* 93 */ "DIST", - /* 94 */ "DOT_XY", - /* 95 */ "X", - /* 96 */ "Y", - /* 97 */ "DOT_L", - /* 98 */ "statement_list", - /* 99 */ "statement", - /* 100 */ "unnamed_statement", - /* 101 */ "basetype", - /* 102 */ "expr", - /* 103 */ "numproperty", - /* 104 */ "edge", - /* 105 */ "direction", - /* 106 */ "dashproperty", - /* 107 */ "colorproperty", - /* 108 */ "locproperty", - /* 109 */ "position", - /* 110 */ "place", - /* 111 */ "object", - /* 112 */ "objectname", - /* 113 */ "nth", - /* 114 */ "textposition", - /* 115 */ "rvalue", - /* 116 */ "lvalue", - /* 117 */ "even", - /* 118 */ "relexpr", - /* 119 */ "optrelexpr", - /* 120 */ "document", - /* 121 */ "print", - /* 122 */ "prlist", - /* 123 */ "pritem", - /* 124 */ "prsep", - /* 125 */ "attribute_list", - /* 126 */ "savelist", - /* 127 */ "alist", - /* 128 */ "attribute", - /* 129 */ "go", - /* 130 */ "boolproperty", - /* 131 */ "withclause", - /* 132 */ "between", - /* 133 */ "place2", + /* 88 */ "THIS", + /* 89 */ "DOT_U", + /* 90 */ "LAST", + /* 91 */ "NUMBER", + /* 92 */ "FUNC1", + /* 93 */ "FUNC2", + /* 94 */ "DIST", + /* 95 */ "DOT_XY", + /* 96 */ "X", + /* 97 */ "Y", + /* 98 */ "DOT_L", + /* 99 */ "statement_list", + /* 100 */ "statement", + /* 101 */ "unnamed_statement", + /* 102 */ "basetype", + /* 103 */ "expr", + /* 104 */ "numproperty", + /* 105 */ "edge", + /* 106 */ "direction", + /* 107 */ "dashproperty", + /* 108 */ "colorproperty", + /* 109 */ "locproperty", + /* 110 */ "position", + /* 111 */ "place", + /* 112 */ "object", + /* 113 */ "objectname", + /* 114 */ "nth", + /* 115 */ "textposition", + /* 116 */ "rvalue", + /* 117 */ "lvalue", + /* 118 */ "even", + /* 119 */ "relexpr", + /* 120 */ "optrelexpr", + /* 121 */ "document", + /* 122 */ "print", + /* 123 */ "prlist", + /* 124 */ "pritem", + /* 125 */ "prsep", + /* 126 */ "attribute_list", + /* 127 */ "savelist", + /* 128 */ "alist", + /* 129 */ "attribute", + /* 130 */ "go", + /* 131 */ "boolproperty", + /* 132 */ "withclause", + /* 133 */ "between", + /* 134 */ "place2", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. @@ -1497,77 +1508,78 @@ /* 83 */ "place2 ::= object", /* 84 */ "place2 ::= object DOT_E edge", /* 85 */ "place2 ::= NTH VERTEX OF object", /* 86 */ "object ::= nth", /* 87 */ "object ::= nth OF|IN object", - /* 88 */ "objectname ::= PLACENAME", - /* 89 */ "objectname ::= objectname DOT_U PLACENAME", - /* 90 */ "nth ::= NTH CLASSNAME", - /* 91 */ "nth ::= NTH LAST CLASSNAME", - /* 92 */ "nth ::= LAST CLASSNAME", - /* 93 */ "nth ::= LAST", - /* 94 */ "nth ::= NTH LB RB", - /* 95 */ "nth ::= NTH LAST LB RB", - /* 96 */ "nth ::= LAST LB RB", - /* 97 */ "expr ::= expr PLUS expr", - /* 98 */ "expr ::= expr MINUS expr", - /* 99 */ "expr ::= expr STAR expr", - /* 100 */ "expr ::= expr SLASH expr", - /* 101 */ "expr ::= MINUS expr", - /* 102 */ "expr ::= PLUS expr", - /* 103 */ "expr ::= LP expr RP", - /* 104 */ "expr ::= LP FILL|COLOR|THICKNESS RP", - /* 105 */ "expr ::= NUMBER", - /* 106 */ "expr ::= ID", - /* 107 */ "expr ::= FUNC1 LP expr RP", - /* 108 */ "expr ::= FUNC2 LP expr COMMA expr RP", - /* 109 */ "expr ::= DIST LP position COMMA position RP", - /* 110 */ "expr ::= place2 DOT_XY X", - /* 111 */ "expr ::= place2 DOT_XY Y", - /* 112 */ "expr ::= object DOT_L numproperty", - /* 113 */ "expr ::= object DOT_L dashproperty", - /* 114 */ "expr ::= object DOT_L colorproperty", - /* 115 */ "lvalue ::= ID", - /* 116 */ "lvalue ::= FILL", - /* 117 */ "lvalue ::= COLOR", - /* 118 */ "lvalue ::= THICKNESS", - /* 119 */ "rvalue ::= expr", - /* 120 */ "print ::= PRINT", - /* 121 */ "prlist ::= pritem", - /* 122 */ "prlist ::= prlist prsep pritem", - /* 123 */ "direction ::= UP", - /* 124 */ "direction ::= DOWN", - /* 125 */ "direction ::= LEFT", - /* 126 */ "direction ::= RIGHT", - /* 127 */ "optrelexpr ::= relexpr", - /* 128 */ "attribute_list ::= alist", - /* 129 */ "alist ::=", - /* 130 */ "alist ::= alist attribute", - /* 131 */ "attribute ::= boolproperty", - /* 132 */ "attribute ::= WITH withclause", - /* 133 */ "go ::= GO", - /* 134 */ "go ::=", - /* 135 */ "even ::= UNTIL EVEN WITH", - /* 136 */ "even ::= EVEN WITH", - /* 137 */ "dashproperty ::= DOTTED", - /* 138 */ "dashproperty ::= DASHED", - /* 139 */ "colorproperty ::= FILL", - /* 140 */ "colorproperty ::= COLOR", - /* 141 */ "position ::= place", - /* 142 */ "between ::= WAY BETWEEN", - /* 143 */ "between ::= BETWEEN", - /* 144 */ "between ::= OF THE WAY BETWEEN", - /* 145 */ "place ::= place2", - /* 146 */ "edge ::= CENTER", - /* 147 */ "edge ::= EDGEPT", - /* 148 */ "edge ::= TOP", - /* 149 */ "edge ::= BOTTOM", - /* 150 */ "edge ::= START", - /* 151 */ "edge ::= END", - /* 152 */ "edge ::= RIGHT", - /* 153 */ "edge ::= LEFT", - /* 154 */ "object ::= objectname", + /* 88 */ "objectname ::= THIS", + /* 89 */ "objectname ::= PLACENAME", + /* 90 */ "objectname ::= objectname DOT_U PLACENAME", + /* 91 */ "nth ::= NTH CLASSNAME", + /* 92 */ "nth ::= NTH LAST CLASSNAME", + /* 93 */ "nth ::= LAST CLASSNAME", + /* 94 */ "nth ::= LAST", + /* 95 */ "nth ::= NTH LB RB", + /* 96 */ "nth ::= NTH LAST LB RB", + /* 97 */ "nth ::= LAST LB RB", + /* 98 */ "expr ::= expr PLUS expr", + /* 99 */ "expr ::= expr MINUS expr", + /* 100 */ "expr ::= expr STAR expr", + /* 101 */ "expr ::= expr SLASH expr", + /* 102 */ "expr ::= MINUS expr", + /* 103 */ "expr ::= PLUS expr", + /* 104 */ "expr ::= LP expr RP", + /* 105 */ "expr ::= LP FILL|COLOR|THICKNESS RP", + /* 106 */ "expr ::= NUMBER", + /* 107 */ "expr ::= ID", + /* 108 */ "expr ::= FUNC1 LP expr RP", + /* 109 */ "expr ::= FUNC2 LP expr COMMA expr RP", + /* 110 */ "expr ::= DIST LP position COMMA position RP", + /* 111 */ "expr ::= place2 DOT_XY X", + /* 112 */ "expr ::= place2 DOT_XY Y", + /* 113 */ "expr ::= object DOT_L numproperty", + /* 114 */ "expr ::= object DOT_L dashproperty", + /* 115 */ "expr ::= object DOT_L colorproperty", + /* 116 */ "lvalue ::= ID", + /* 117 */ "lvalue ::= FILL", + /* 118 */ "lvalue ::= COLOR", + /* 119 */ "lvalue ::= THICKNESS", + /* 120 */ "rvalue ::= expr", + /* 121 */ "print ::= PRINT", + /* 122 */ "prlist ::= pritem", + /* 123 */ "prlist ::= prlist prsep pritem", + /* 124 */ "direction ::= UP", + /* 125 */ "direction ::= DOWN", + /* 126 */ "direction ::= LEFT", + /* 127 */ "direction ::= RIGHT", + /* 128 */ "optrelexpr ::= relexpr", + /* 129 */ "attribute_list ::= alist", + /* 130 */ "alist ::=", + /* 131 */ "alist ::= alist attribute", + /* 132 */ "attribute ::= boolproperty", + /* 133 */ "attribute ::= WITH withclause", + /* 134 */ "go ::= GO", + /* 135 */ "go ::=", + /* 136 */ "even ::= UNTIL EVEN WITH", + /* 137 */ "even ::= EVEN WITH", + /* 138 */ "dashproperty ::= DOTTED", + /* 139 */ "dashproperty ::= DASHED", + /* 140 */ "colorproperty ::= FILL", + /* 141 */ "colorproperty ::= COLOR", + /* 142 */ "position ::= place", + /* 143 */ "between ::= WAY BETWEEN", + /* 144 */ "between ::= BETWEEN", + /* 145 */ "between ::= OF THE WAY BETWEEN", + /* 146 */ "place ::= place2", + /* 147 */ "edge ::= CENTER", + /* 148 */ "edge ::= EDGEPT", + /* 149 */ "edge ::= TOP", + /* 150 */ "edge ::= BOTTOM", + /* 151 */ "edge ::= START", + /* 152 */ "edge ::= END", + /* 153 */ "edge ::= RIGHT", + /* 154 */ "edge ::= LEFT", + /* 155 */ "object ::= objectname", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 @@ -1689,24 +1701,24 @@ ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are *not* used ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 98: /* statement_list */ + case 99: /* statement_list */ { #line 494 "pikchr.y" -pik_elist_free(p,(yypminor->yy119)); -#line 1723 "pikchr.c" +pik_elist_free(p,(yypminor->yy227)); +#line 1735 "pikchr.c" } break; - case 99: /* statement */ - case 100: /* unnamed_statement */ - case 101: /* basetype */ + case 100: /* statement */ + case 101: /* unnamed_statement */ + case 102: /* basetype */ { #line 496 "pikchr.y" -pik_elem_free(p,(yypminor->yy38)); -#line 1732 "pikchr.c" +pik_elem_free(p,(yypminor->yy36)); +#line 1744 "pikchr.c" } break; /********* End destructor definitions *****************************************/ default: break; /* If no destructor action specified: do nothing */ } @@ -1923,11 +1935,11 @@ ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ #line 528 "pikchr.y" pik_error(p, 0, "parser stack overflow"); -#line 1953 "pikchr.c" +#line 1965 "pikchr.c" /******** End %stack_overflow code ********************************************/ pik_parserARG_STORE /* Suppress warning about unused %extra_argument var */ pik_parserCTX_STORE } @@ -1995,165 +2007,166 @@ } /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { - 120, /* (0) document ::= statement_list */ - 98, /* (1) statement_list ::= statement */ - 98, /* (2) statement_list ::= statement_list EOL statement */ - 99, /* (3) statement ::= */ - 99, /* (4) statement ::= direction */ - 99, /* (5) statement ::= lvalue ASSIGN rvalue */ - 99, /* (6) statement ::= PLACENAME COLON unnamed_statement */ - 99, /* (7) statement ::= PLACENAME COLON position */ - 99, /* (8) statement ::= unnamed_statement */ - 99, /* (9) statement ::= print prlist */ - 99, /* (10) statement ::= ASSERT LP expr EQ expr RP */ - 99, /* (11) statement ::= ASSERT LP position EQ position RP */ - 99, /* (12) statement ::= DEFINE ID CODEBLOCK */ - 115, /* (13) rvalue ::= PLACENAME */ - 123, /* (14) pritem ::= FILL */ - 123, /* (15) pritem ::= COLOR */ - 123, /* (16) pritem ::= THICKNESS */ - 123, /* (17) pritem ::= rvalue */ - 123, /* (18) pritem ::= STRING */ - 124, /* (19) prsep ::= COMMA */ - 100, /* (20) unnamed_statement ::= basetype attribute_list */ - 101, /* (21) basetype ::= CLASSNAME */ - 101, /* (22) basetype ::= STRING textposition */ - 101, /* (23) basetype ::= LB savelist statement_list RB */ - 126, /* (24) savelist ::= */ - 118, /* (25) relexpr ::= expr */ - 118, /* (26) relexpr ::= expr PERCENT */ - 119, /* (27) optrelexpr ::= */ - 125, /* (28) attribute_list ::= relexpr alist */ - 128, /* (29) attribute ::= numproperty relexpr */ - 128, /* (30) attribute ::= dashproperty expr */ - 128, /* (31) attribute ::= dashproperty */ - 128, /* (32) attribute ::= colorproperty rvalue */ - 128, /* (33) attribute ::= go direction optrelexpr */ - 128, /* (34) attribute ::= go direction even position */ - 128, /* (35) attribute ::= CLOSE */ - 128, /* (36) attribute ::= CHOP */ - 128, /* (37) attribute ::= FROM position */ - 128, /* (38) attribute ::= TO position */ - 128, /* (39) attribute ::= THEN */ - 128, /* (40) attribute ::= THEN optrelexpr HEADING expr */ - 128, /* (41) attribute ::= THEN optrelexpr EDGEPT */ - 128, /* (42) attribute ::= GO optrelexpr HEADING expr */ - 128, /* (43) attribute ::= GO optrelexpr EDGEPT */ - 128, /* (44) attribute ::= AT position */ - 128, /* (45) attribute ::= SAME */ - 128, /* (46) attribute ::= SAME AS object */ - 128, /* (47) attribute ::= STRING textposition */ - 128, /* (48) attribute ::= FIT */ - 128, /* (49) attribute ::= BEHIND object */ - 131, /* (50) withclause ::= DOT_E edge AT position */ - 131, /* (51) withclause ::= edge AT position */ - 103, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */ - 130, /* (53) boolproperty ::= CW */ - 130, /* (54) boolproperty ::= CCW */ - 130, /* (55) boolproperty ::= LARROW */ - 130, /* (56) boolproperty ::= RARROW */ - 130, /* (57) boolproperty ::= LRARROW */ - 130, /* (58) boolproperty ::= INVIS */ - 130, /* (59) boolproperty ::= THICK */ - 130, /* (60) boolproperty ::= THIN */ - 130, /* (61) boolproperty ::= SOLID */ - 114, /* (62) textposition ::= */ - 114, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */ - 109, /* (64) position ::= expr COMMA expr */ - 109, /* (65) position ::= place PLUS expr COMMA expr */ - 109, /* (66) position ::= place MINUS expr COMMA expr */ - 109, /* (67) position ::= place PLUS LP expr COMMA expr RP */ - 109, /* (68) position ::= place MINUS LP expr COMMA expr RP */ - 109, /* (69) position ::= LP position COMMA position RP */ - 109, /* (70) position ::= LP position RP */ - 109, /* (71) position ::= expr between position AND position */ - 109, /* (72) position ::= expr LT position COMMA position GT */ - 109, /* (73) position ::= expr ABOVE position */ - 109, /* (74) position ::= expr BELOW position */ - 109, /* (75) position ::= expr LEFT OF position */ - 109, /* (76) position ::= expr RIGHT OF position */ - 109, /* (77) position ::= expr ON HEADING EDGEPT OF position */ - 109, /* (78) position ::= expr HEADING EDGEPT OF position */ - 109, /* (79) position ::= expr EDGEPT OF position */ - 109, /* (80) position ::= expr ON HEADING expr FROM position */ - 109, /* (81) position ::= expr HEADING expr FROM position */ - 110, /* (82) place ::= edge OF object */ - 133, /* (83) place2 ::= object */ - 133, /* (84) place2 ::= object DOT_E edge */ - 133, /* (85) place2 ::= NTH VERTEX OF object */ - 111, /* (86) object ::= nth */ - 111, /* (87) object ::= nth OF|IN object */ - 112, /* (88) objectname ::= PLACENAME */ - 112, /* (89) objectname ::= objectname DOT_U PLACENAME */ - 113, /* (90) nth ::= NTH CLASSNAME */ - 113, /* (91) nth ::= NTH LAST CLASSNAME */ - 113, /* (92) nth ::= LAST CLASSNAME */ - 113, /* (93) nth ::= LAST */ - 113, /* (94) nth ::= NTH LB RB */ - 113, /* (95) nth ::= NTH LAST LB RB */ - 113, /* (96) nth ::= LAST LB RB */ - 102, /* (97) expr ::= expr PLUS expr */ - 102, /* (98) expr ::= expr MINUS expr */ - 102, /* (99) expr ::= expr STAR expr */ - 102, /* (100) expr ::= expr SLASH expr */ - 102, /* (101) expr ::= MINUS expr */ - 102, /* (102) expr ::= PLUS expr */ - 102, /* (103) expr ::= LP expr RP */ - 102, /* (104) expr ::= LP FILL|COLOR|THICKNESS RP */ - 102, /* (105) expr ::= NUMBER */ - 102, /* (106) expr ::= ID */ - 102, /* (107) expr ::= FUNC1 LP expr RP */ - 102, /* (108) expr ::= FUNC2 LP expr COMMA expr RP */ - 102, /* (109) expr ::= DIST LP position COMMA position RP */ - 102, /* (110) expr ::= place2 DOT_XY X */ - 102, /* (111) expr ::= place2 DOT_XY Y */ - 102, /* (112) expr ::= object DOT_L numproperty */ - 102, /* (113) expr ::= object DOT_L dashproperty */ - 102, /* (114) expr ::= object DOT_L colorproperty */ - 116, /* (115) lvalue ::= ID */ - 116, /* (116) lvalue ::= FILL */ - 116, /* (117) lvalue ::= COLOR */ - 116, /* (118) lvalue ::= THICKNESS */ - 115, /* (119) rvalue ::= expr */ - 121, /* (120) print ::= PRINT */ - 122, /* (121) prlist ::= pritem */ - 122, /* (122) prlist ::= prlist prsep pritem */ - 105, /* (123) direction ::= UP */ - 105, /* (124) direction ::= DOWN */ - 105, /* (125) direction ::= LEFT */ - 105, /* (126) direction ::= RIGHT */ - 119, /* (127) optrelexpr ::= relexpr */ - 125, /* (128) attribute_list ::= alist */ - 127, /* (129) alist ::= */ - 127, /* (130) alist ::= alist attribute */ - 128, /* (131) attribute ::= boolproperty */ - 128, /* (132) attribute ::= WITH withclause */ - 129, /* (133) go ::= GO */ - 129, /* (134) go ::= */ - 117, /* (135) even ::= UNTIL EVEN WITH */ - 117, /* (136) even ::= EVEN WITH */ - 106, /* (137) dashproperty ::= DOTTED */ - 106, /* (138) dashproperty ::= DASHED */ - 107, /* (139) colorproperty ::= FILL */ - 107, /* (140) colorproperty ::= COLOR */ - 109, /* (141) position ::= place */ - 132, /* (142) between ::= WAY BETWEEN */ - 132, /* (143) between ::= BETWEEN */ - 132, /* (144) between ::= OF THE WAY BETWEEN */ - 110, /* (145) place ::= place2 */ - 104, /* (146) edge ::= CENTER */ - 104, /* (147) edge ::= EDGEPT */ - 104, /* (148) edge ::= TOP */ - 104, /* (149) edge ::= BOTTOM */ - 104, /* (150) edge ::= START */ - 104, /* (151) edge ::= END */ - 104, /* (152) edge ::= RIGHT */ - 104, /* (153) edge ::= LEFT */ - 111, /* (154) object ::= objectname */ + 121, /* (0) document ::= statement_list */ + 99, /* (1) statement_list ::= statement */ + 99, /* (2) statement_list ::= statement_list EOL statement */ + 100, /* (3) statement ::= */ + 100, /* (4) statement ::= direction */ + 100, /* (5) statement ::= lvalue ASSIGN rvalue */ + 100, /* (6) statement ::= PLACENAME COLON unnamed_statement */ + 100, /* (7) statement ::= PLACENAME COLON position */ + 100, /* (8) statement ::= unnamed_statement */ + 100, /* (9) statement ::= print prlist */ + 100, /* (10) statement ::= ASSERT LP expr EQ expr RP */ + 100, /* (11) statement ::= ASSERT LP position EQ position RP */ + 100, /* (12) statement ::= DEFINE ID CODEBLOCK */ + 116, /* (13) rvalue ::= PLACENAME */ + 124, /* (14) pritem ::= FILL */ + 124, /* (15) pritem ::= COLOR */ + 124, /* (16) pritem ::= THICKNESS */ + 124, /* (17) pritem ::= rvalue */ + 124, /* (18) pritem ::= STRING */ + 125, /* (19) prsep ::= COMMA */ + 101, /* (20) unnamed_statement ::= basetype attribute_list */ + 102, /* (21) basetype ::= CLASSNAME */ + 102, /* (22) basetype ::= STRING textposition */ + 102, /* (23) basetype ::= LB savelist statement_list RB */ + 127, /* (24) savelist ::= */ + 119, /* (25) relexpr ::= expr */ + 119, /* (26) relexpr ::= expr PERCENT */ + 120, /* (27) optrelexpr ::= */ + 126, /* (28) attribute_list ::= relexpr alist */ + 129, /* (29) attribute ::= numproperty relexpr */ + 129, /* (30) attribute ::= dashproperty expr */ + 129, /* (31) attribute ::= dashproperty */ + 129, /* (32) attribute ::= colorproperty rvalue */ + 129, /* (33) attribute ::= go direction optrelexpr */ + 129, /* (34) attribute ::= go direction even position */ + 129, /* (35) attribute ::= CLOSE */ + 129, /* (36) attribute ::= CHOP */ + 129, /* (37) attribute ::= FROM position */ + 129, /* (38) attribute ::= TO position */ + 129, /* (39) attribute ::= THEN */ + 129, /* (40) attribute ::= THEN optrelexpr HEADING expr */ + 129, /* (41) attribute ::= THEN optrelexpr EDGEPT */ + 129, /* (42) attribute ::= GO optrelexpr HEADING expr */ + 129, /* (43) attribute ::= GO optrelexpr EDGEPT */ + 129, /* (44) attribute ::= AT position */ + 129, /* (45) attribute ::= SAME */ + 129, /* (46) attribute ::= SAME AS object */ + 129, /* (47) attribute ::= STRING textposition */ + 129, /* (48) attribute ::= FIT */ + 129, /* (49) attribute ::= BEHIND object */ + 132, /* (50) withclause ::= DOT_E edge AT position */ + 132, /* (51) withclause ::= edge AT position */ + 104, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */ + 131, /* (53) boolproperty ::= CW */ + 131, /* (54) boolproperty ::= CCW */ + 131, /* (55) boolproperty ::= LARROW */ + 131, /* (56) boolproperty ::= RARROW */ + 131, /* (57) boolproperty ::= LRARROW */ + 131, /* (58) boolproperty ::= INVIS */ + 131, /* (59) boolproperty ::= THICK */ + 131, /* (60) boolproperty ::= THIN */ + 131, /* (61) boolproperty ::= SOLID */ + 115, /* (62) textposition ::= */ + 115, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */ + 110, /* (64) position ::= expr COMMA expr */ + 110, /* (65) position ::= place PLUS expr COMMA expr */ + 110, /* (66) position ::= place MINUS expr COMMA expr */ + 110, /* (67) position ::= place PLUS LP expr COMMA expr RP */ + 110, /* (68) position ::= place MINUS LP expr COMMA expr RP */ + 110, /* (69) position ::= LP position COMMA position RP */ + 110, /* (70) position ::= LP position RP */ + 110, /* (71) position ::= expr between position AND position */ + 110, /* (72) position ::= expr LT position COMMA position GT */ + 110, /* (73) position ::= expr ABOVE position */ + 110, /* (74) position ::= expr BELOW position */ + 110, /* (75) position ::= expr LEFT OF position */ + 110, /* (76) position ::= expr RIGHT OF position */ + 110, /* (77) position ::= expr ON HEADING EDGEPT OF position */ + 110, /* (78) position ::= expr HEADING EDGEPT OF position */ + 110, /* (79) position ::= expr EDGEPT OF position */ + 110, /* (80) position ::= expr ON HEADING expr FROM position */ + 110, /* (81) position ::= expr HEADING expr FROM position */ + 111, /* (82) place ::= edge OF object */ + 134, /* (83) place2 ::= object */ + 134, /* (84) place2 ::= object DOT_E edge */ + 134, /* (85) place2 ::= NTH VERTEX OF object */ + 112, /* (86) object ::= nth */ + 112, /* (87) object ::= nth OF|IN object */ + 113, /* (88) objectname ::= THIS */ + 113, /* (89) objectname ::= PLACENAME */ + 113, /* (90) objectname ::= objectname DOT_U PLACENAME */ + 114, /* (91) nth ::= NTH CLASSNAME */ + 114, /* (92) nth ::= NTH LAST CLASSNAME */ + 114, /* (93) nth ::= LAST CLASSNAME */ + 114, /* (94) nth ::= LAST */ + 114, /* (95) nth ::= NTH LB RB */ + 114, /* (96) nth ::= NTH LAST LB RB */ + 114, /* (97) nth ::= LAST LB RB */ + 103, /* (98) expr ::= expr PLUS expr */ + 103, /* (99) expr ::= expr MINUS expr */ + 103, /* (100) expr ::= expr STAR expr */ + 103, /* (101) expr ::= expr SLASH expr */ + 103, /* (102) expr ::= MINUS expr */ + 103, /* (103) expr ::= PLUS expr */ + 103, /* (104) expr ::= LP expr RP */ + 103, /* (105) expr ::= LP FILL|COLOR|THICKNESS RP */ + 103, /* (106) expr ::= NUMBER */ + 103, /* (107) expr ::= ID */ + 103, /* (108) expr ::= FUNC1 LP expr RP */ + 103, /* (109) expr ::= FUNC2 LP expr COMMA expr RP */ + 103, /* (110) expr ::= DIST LP position COMMA position RP */ + 103, /* (111) expr ::= place2 DOT_XY X */ + 103, /* (112) expr ::= place2 DOT_XY Y */ + 103, /* (113) expr ::= object DOT_L numproperty */ + 103, /* (114) expr ::= object DOT_L dashproperty */ + 103, /* (115) expr ::= object DOT_L colorproperty */ + 117, /* (116) lvalue ::= ID */ + 117, /* (117) lvalue ::= FILL */ + 117, /* (118) lvalue ::= COLOR */ + 117, /* (119) lvalue ::= THICKNESS */ + 116, /* (120) rvalue ::= expr */ + 122, /* (121) print ::= PRINT */ + 123, /* (122) prlist ::= pritem */ + 123, /* (123) prlist ::= prlist prsep pritem */ + 106, /* (124) direction ::= UP */ + 106, /* (125) direction ::= DOWN */ + 106, /* (126) direction ::= LEFT */ + 106, /* (127) direction ::= RIGHT */ + 120, /* (128) optrelexpr ::= relexpr */ + 126, /* (129) attribute_list ::= alist */ + 128, /* (130) alist ::= */ + 128, /* (131) alist ::= alist attribute */ + 129, /* (132) attribute ::= boolproperty */ + 129, /* (133) attribute ::= WITH withclause */ + 130, /* (134) go ::= GO */ + 130, /* (135) go ::= */ + 118, /* (136) even ::= UNTIL EVEN WITH */ + 118, /* (137) even ::= EVEN WITH */ + 107, /* (138) dashproperty ::= DOTTED */ + 107, /* (139) dashproperty ::= DASHED */ + 108, /* (140) colorproperty ::= FILL */ + 108, /* (141) colorproperty ::= COLOR */ + 110, /* (142) position ::= place */ + 133, /* (143) between ::= WAY BETWEEN */ + 133, /* (144) between ::= BETWEEN */ + 133, /* (145) between ::= OF THE WAY BETWEEN */ + 111, /* (146) place ::= place2 */ + 105, /* (147) edge ::= CENTER */ + 105, /* (148) edge ::= EDGEPT */ + 105, /* (149) edge ::= TOP */ + 105, /* (150) edge ::= BOTTOM */ + 105, /* (151) edge ::= START */ + 105, /* (152) edge ::= END */ + 105, /* (153) edge ::= RIGHT */ + 105, /* (154) edge ::= LEFT */ + 112, /* (155) object ::= objectname */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number ** of symbols on the right-hand side of that rule. */ static const signed char yyRuleInfoNRhs[] = { @@ -2243,77 +2256,78 @@ -1, /* (83) place2 ::= object */ -3, /* (84) place2 ::= object DOT_E edge */ -4, /* (85) place2 ::= NTH VERTEX OF object */ -1, /* (86) object ::= nth */ -3, /* (87) object ::= nth OF|IN object */ - -1, /* (88) objectname ::= PLACENAME */ - -3, /* (89) objectname ::= objectname DOT_U PLACENAME */ - -2, /* (90) nth ::= NTH CLASSNAME */ - -3, /* (91) nth ::= NTH LAST CLASSNAME */ - -2, /* (92) nth ::= LAST CLASSNAME */ - -1, /* (93) nth ::= LAST */ - -3, /* (94) nth ::= NTH LB RB */ - -4, /* (95) nth ::= NTH LAST LB RB */ - -3, /* (96) nth ::= LAST LB RB */ - -3, /* (97) expr ::= expr PLUS expr */ - -3, /* (98) expr ::= expr MINUS expr */ - -3, /* (99) expr ::= expr STAR expr */ - -3, /* (100) expr ::= expr SLASH expr */ - -2, /* (101) expr ::= MINUS expr */ - -2, /* (102) expr ::= PLUS expr */ - -3, /* (103) expr ::= LP expr RP */ - -3, /* (104) expr ::= LP FILL|COLOR|THICKNESS RP */ - -1, /* (105) expr ::= NUMBER */ - -1, /* (106) expr ::= ID */ - -4, /* (107) expr ::= FUNC1 LP expr RP */ - -6, /* (108) expr ::= FUNC2 LP expr COMMA expr RP */ - -6, /* (109) expr ::= DIST LP position COMMA position RP */ - -3, /* (110) expr ::= place2 DOT_XY X */ - -3, /* (111) expr ::= place2 DOT_XY Y */ - -3, /* (112) expr ::= object DOT_L numproperty */ - -3, /* (113) expr ::= object DOT_L dashproperty */ - -3, /* (114) expr ::= object DOT_L colorproperty */ - -1, /* (115) lvalue ::= ID */ - -1, /* (116) lvalue ::= FILL */ - -1, /* (117) lvalue ::= COLOR */ - -1, /* (118) lvalue ::= THICKNESS */ - -1, /* (119) rvalue ::= expr */ - -1, /* (120) print ::= PRINT */ - -1, /* (121) prlist ::= pritem */ - -3, /* (122) prlist ::= prlist prsep pritem */ - -1, /* (123) direction ::= UP */ - -1, /* (124) direction ::= DOWN */ - -1, /* (125) direction ::= LEFT */ - -1, /* (126) direction ::= RIGHT */ - -1, /* (127) optrelexpr ::= relexpr */ - -1, /* (128) attribute_list ::= alist */ - 0, /* (129) alist ::= */ - -2, /* (130) alist ::= alist attribute */ - -1, /* (131) attribute ::= boolproperty */ - -2, /* (132) attribute ::= WITH withclause */ - -1, /* (133) go ::= GO */ - 0, /* (134) go ::= */ - -3, /* (135) even ::= UNTIL EVEN WITH */ - -2, /* (136) even ::= EVEN WITH */ - -1, /* (137) dashproperty ::= DOTTED */ - -1, /* (138) dashproperty ::= DASHED */ - -1, /* (139) colorproperty ::= FILL */ - -1, /* (140) colorproperty ::= COLOR */ - -1, /* (141) position ::= place */ - -2, /* (142) between ::= WAY BETWEEN */ - -1, /* (143) between ::= BETWEEN */ - -4, /* (144) between ::= OF THE WAY BETWEEN */ - -1, /* (145) place ::= place2 */ - -1, /* (146) edge ::= CENTER */ - -1, /* (147) edge ::= EDGEPT */ - -1, /* (148) edge ::= TOP */ - -1, /* (149) edge ::= BOTTOM */ - -1, /* (150) edge ::= START */ - -1, /* (151) edge ::= END */ - -1, /* (152) edge ::= RIGHT */ - -1, /* (153) edge ::= LEFT */ - -1, /* (154) object ::= objectname */ + -1, /* (88) objectname ::= THIS */ + -1, /* (89) objectname ::= PLACENAME */ + -3, /* (90) objectname ::= objectname DOT_U PLACENAME */ + -2, /* (91) nth ::= NTH CLASSNAME */ + -3, /* (92) nth ::= NTH LAST CLASSNAME */ + -2, /* (93) nth ::= LAST CLASSNAME */ + -1, /* (94) nth ::= LAST */ + -3, /* (95) nth ::= NTH LB RB */ + -4, /* (96) nth ::= NTH LAST LB RB */ + -3, /* (97) nth ::= LAST LB RB */ + -3, /* (98) expr ::= expr PLUS expr */ + -3, /* (99) expr ::= expr MINUS expr */ + -3, /* (100) expr ::= expr STAR expr */ + -3, /* (101) expr ::= expr SLASH expr */ + -2, /* (102) expr ::= MINUS expr */ + -2, /* (103) expr ::= PLUS expr */ + -3, /* (104) expr ::= LP expr RP */ + -3, /* (105) expr ::= LP FILL|COLOR|THICKNESS RP */ + -1, /* (106) expr ::= NUMBER */ + -1, /* (107) expr ::= ID */ + -4, /* (108) expr ::= FUNC1 LP expr RP */ + -6, /* (109) expr ::= FUNC2 LP expr COMMA expr RP */ + -6, /* (110) expr ::= DIST LP position COMMA position RP */ + -3, /* (111) expr ::= place2 DOT_XY X */ + -3, /* (112) expr ::= place2 DOT_XY Y */ + -3, /* (113) expr ::= object DOT_L numproperty */ + -3, /* (114) expr ::= object DOT_L dashproperty */ + -3, /* (115) expr ::= object DOT_L colorproperty */ + -1, /* (116) lvalue ::= ID */ + -1, /* (117) lvalue ::= FILL */ + -1, /* (118) lvalue ::= COLOR */ + -1, /* (119) lvalue ::= THICKNESS */ + -1, /* (120) rvalue ::= expr */ + -1, /* (121) print ::= PRINT */ + -1, /* (122) prlist ::= pritem */ + -3, /* (123) prlist ::= prlist prsep pritem */ + -1, /* (124) direction ::= UP */ + -1, /* (125) direction ::= DOWN */ + -1, /* (126) direction ::= LEFT */ + -1, /* (127) direction ::= RIGHT */ + -1, /* (128) optrelexpr ::= relexpr */ + -1, /* (129) attribute_list ::= alist */ + 0, /* (130) alist ::= */ + -2, /* (131) alist ::= alist attribute */ + -1, /* (132) attribute ::= boolproperty */ + -2, /* (133) attribute ::= WITH withclause */ + -1, /* (134) go ::= GO */ + 0, /* (135) go ::= */ + -3, /* (136) even ::= UNTIL EVEN WITH */ + -2, /* (137) even ::= EVEN WITH */ + -1, /* (138) dashproperty ::= DOTTED */ + -1, /* (139) dashproperty ::= DASHED */ + -1, /* (140) colorproperty ::= FILL */ + -1, /* (141) colorproperty ::= COLOR */ + -1, /* (142) position ::= place */ + -2, /* (143) between ::= WAY BETWEEN */ + -1, /* (144) between ::= BETWEEN */ + -4, /* (145) between ::= OF THE WAY BETWEEN */ + -1, /* (146) place ::= place2 */ + -1, /* (147) edge ::= CENTER */ + -1, /* (148) edge ::= EDGEPT */ + -1, /* (149) edge ::= TOP */ + -1, /* (150) edge ::= BOTTOM */ + -1, /* (151) edge ::= START */ + -1, /* (152) edge ::= END */ + -1, /* (153) edge ::= RIGHT */ + -1, /* (154) edge ::= LEFT */ + -1, /* (155) object ::= objectname */ }; static void yy_accept(yyParser*); /* Forward Declaration */ /* @@ -2402,656 +2416,661 @@ */ /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; case 0: /* document ::= statement_list */ #line 532 "pikchr.y" -{pik_render(p,yymsp[0].minor.yy119);} -#line 2433 "pikchr.c" +{pik_render(p,yymsp[0].minor.yy227);} +#line 2447 "pikchr.c" break; case 1: /* statement_list ::= statement */ #line 535 "pikchr.y" -{ yylhsminor.yy119 = pik_elist_append(p,0,yymsp[0].minor.yy38); } -#line 2438 "pikchr.c" - yymsp[0].minor.yy119 = yylhsminor.yy119; +{ yylhsminor.yy227 = pik_elist_append(p,0,yymsp[0].minor.yy36); } +#line 2452 "pikchr.c" + yymsp[0].minor.yy227 = yylhsminor.yy227; break; case 2: /* statement_list ::= statement_list EOL statement */ #line 537 "pikchr.y" -{ yylhsminor.yy119 = pik_elist_append(p,yymsp[-2].minor.yy119,yymsp[0].minor.yy38); } -#line 2444 "pikchr.c" - yymsp[-2].minor.yy119 = yylhsminor.yy119; +{ yylhsminor.yy227 = pik_elist_append(p,yymsp[-2].minor.yy227,yymsp[0].minor.yy36); } +#line 2458 "pikchr.c" + yymsp[-2].minor.yy227 = yylhsminor.yy227; break; case 3: /* statement ::= */ #line 540 "pikchr.y" -{ yymsp[1].minor.yy38 = 0; } -#line 2450 "pikchr.c" +{ yymsp[1].minor.yy36 = 0; } +#line 2464 "pikchr.c" break; case 4: /* statement ::= direction */ #line 541 "pikchr.y" -{ pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy38=0; } -#line 2455 "pikchr.c" - yymsp[0].minor.yy38 = yylhsminor.yy38; +{ pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy36=0; } +#line 2469 "pikchr.c" + yymsp[0].minor.yy36 = yylhsminor.yy36; break; case 5: /* statement ::= lvalue ASSIGN rvalue */ #line 542 "pikchr.y" -{pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy265,&yymsp[-1].minor.yy0); yylhsminor.yy38=0;} -#line 2461 "pikchr.c" - yymsp[-2].minor.yy38 = yylhsminor.yy38; +{pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy153,&yymsp[-1].minor.yy0); yylhsminor.yy36=0;} +#line 2475 "pikchr.c" + yymsp[-2].minor.yy36 = yylhsminor.yy36; break; case 6: /* statement ::= PLACENAME COLON unnamed_statement */ #line 544 "pikchr.y" -{ yylhsminor.yy38 = yymsp[0].minor.yy38; pik_elem_setname(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0); } -#line 2467 "pikchr.c" - yymsp[-2].minor.yy38 = yylhsminor.yy38; +{ yylhsminor.yy36 = yymsp[0].minor.yy36; pik_elem_setname(p,yymsp[0].minor.yy36,&yymsp[-2].minor.yy0); } +#line 2481 "pikchr.c" + yymsp[-2].minor.yy36 = yylhsminor.yy36; break; case 7: /* statement ::= PLACENAME COLON position */ #line 546 "pikchr.y" -{ yylhsminor.yy38 = pik_elem_new(p,0,0,0); - if(yylhsminor.yy38){ yylhsminor.yy38->ptAt = yymsp[0].minor.yy43; pik_elem_setname(p,yylhsminor.yy38,&yymsp[-2].minor.yy0); }} -#line 2474 "pikchr.c" - yymsp[-2].minor.yy38 = yylhsminor.yy38; +{ yylhsminor.yy36 = pik_elem_new(p,0,0,0); + if(yylhsminor.yy36){ yylhsminor.yy36->ptAt = yymsp[0].minor.yy79; pik_elem_setname(p,yylhsminor.yy36,&yymsp[-2].minor.yy0); }} +#line 2488 "pikchr.c" + yymsp[-2].minor.yy36 = yylhsminor.yy36; break; case 8: /* statement ::= unnamed_statement */ #line 548 "pikchr.y" -{yylhsminor.yy38 = yymsp[0].minor.yy38;} -#line 2480 "pikchr.c" - yymsp[0].minor.yy38 = yylhsminor.yy38; +{yylhsminor.yy36 = yymsp[0].minor.yy36;} +#line 2494 "pikchr.c" + yymsp[0].minor.yy36 = yylhsminor.yy36; break; case 9: /* statement ::= print prlist */ #line 549 "pikchr.y" -{pik_append(p,"
\n",5); yymsp[-1].minor.yy38=0;} -#line 2486 "pikchr.c" +{pik_append(p,"
\n",5); yymsp[-1].minor.yy36=0;} +#line 2500 "pikchr.c" break; case 10: /* statement ::= ASSERT LP expr EQ expr RP */ #line 554 "pikchr.y" -{yymsp[-5].minor.yy38=pik_assert(p,yymsp[-3].minor.yy265,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy265);} -#line 2491 "pikchr.c" +{yymsp[-5].minor.yy36=pik_assert(p,yymsp[-3].minor.yy153,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy153);} +#line 2505 "pikchr.c" break; case 11: /* statement ::= ASSERT LP position EQ position RP */ #line 556 "pikchr.y" -{yymsp[-5].minor.yy38=pik_position_assert(p,&yymsp[-3].minor.yy43,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy43);} -#line 2496 "pikchr.c" +{yymsp[-5].minor.yy36=pik_position_assert(p,&yymsp[-3].minor.yy79,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy79);} +#line 2510 "pikchr.c" break; case 12: /* statement ::= DEFINE ID CODEBLOCK */ #line 557 "pikchr.y" -{yymsp[-2].minor.yy38=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} -#line 2501 "pikchr.c" +{yymsp[-2].minor.yy36=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} +#line 2515 "pikchr.c" break; case 13: /* rvalue ::= PLACENAME */ #line 568 "pikchr.y" -{yylhsminor.yy265 = pik_lookup_color(p,&yymsp[0].minor.yy0);} -#line 2506 "pikchr.c" - yymsp[0].minor.yy265 = yylhsminor.yy265; +{yylhsminor.yy153 = pik_lookup_color(p,&yymsp[0].minor.yy0);} +#line 2520 "pikchr.c" + yymsp[0].minor.yy153 = yylhsminor.yy153; break; case 14: /* pritem ::= FILL */ case 15: /* pritem ::= COLOR */ yytestcase(yyruleno==15); case 16: /* pritem ::= THICKNESS */ yytestcase(yyruleno==16); #line 573 "pikchr.y" {pik_append_num(p,"",pik_value(p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.n,0));} -#line 2514 "pikchr.c" +#line 2528 "pikchr.c" break; case 17: /* pritem ::= rvalue */ #line 576 "pikchr.y" -{pik_append_num(p,"",yymsp[0].minor.yy265);} -#line 2519 "pikchr.c" +{pik_append_num(p,"",yymsp[0].minor.yy153);} +#line 2533 "pikchr.c" break; case 18: /* pritem ::= STRING */ #line 577 "pikchr.y" {pik_append_text(p,yymsp[0].minor.yy0.z+1,yymsp[0].minor.yy0.n-2,0);} -#line 2524 "pikchr.c" +#line 2538 "pikchr.c" break; case 19: /* prsep ::= COMMA */ #line 578 "pikchr.y" {pik_append(p, " ", 1);} -#line 2529 "pikchr.c" +#line 2543 "pikchr.c" break; case 20: /* unnamed_statement ::= basetype attribute_list */ #line 581 "pikchr.y" -{yylhsminor.yy38 = yymsp[-1].minor.yy38; pik_after_adding_attributes(p,yylhsminor.yy38);} -#line 2534 "pikchr.c" - yymsp[-1].minor.yy38 = yylhsminor.yy38; +{yylhsminor.yy36 = yymsp[-1].minor.yy36; pik_after_adding_attributes(p,yylhsminor.yy36);} +#line 2548 "pikchr.c" + yymsp[-1].minor.yy36 = yylhsminor.yy36; break; case 21: /* basetype ::= CLASSNAME */ #line 583 "pikchr.y" -{yylhsminor.yy38 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); } -#line 2540 "pikchr.c" - yymsp[0].minor.yy38 = yylhsminor.yy38; +{yylhsminor.yy36 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); } +#line 2554 "pikchr.c" + yymsp[0].minor.yy36 = yylhsminor.yy36; break; case 22: /* basetype ::= STRING textposition */ #line 585 "pikchr.y" -{yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy44; yylhsminor.yy38 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); } -#line 2546 "pikchr.c" - yymsp[-1].minor.yy38 = yylhsminor.yy38; +{yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy164; yylhsminor.yy36 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); } +#line 2560 "pikchr.c" + yymsp[-1].minor.yy36 = yylhsminor.yy36; break; case 23: /* basetype ::= LB savelist statement_list RB */ #line 587 "pikchr.y" -{ p->list = yymsp[-2].minor.yy119; yymsp[-3].minor.yy38 = pik_elem_new(p,0,0,yymsp[-1].minor.yy119); if(yymsp[-3].minor.yy38) yymsp[-3].minor.yy38->errTok = yymsp[0].minor.yy0; } -#line 2552 "pikchr.c" +{ p->list = yymsp[-2].minor.yy227; yymsp[-3].minor.yy36 = pik_elem_new(p,0,0,yymsp[-1].minor.yy227); if(yymsp[-3].minor.yy36) yymsp[-3].minor.yy36->errTok = yymsp[0].minor.yy0; } +#line 2566 "pikchr.c" break; case 24: /* savelist ::= */ #line 592 "pikchr.y" -{yymsp[1].minor.yy119 = p->list; p->list = 0;} -#line 2557 "pikchr.c" +{yymsp[1].minor.yy227 = p->list; p->list = 0;} +#line 2571 "pikchr.c" break; case 25: /* relexpr ::= expr */ #line 599 "pikchr.y" -{yylhsminor.yy200.rAbs = yymsp[0].minor.yy265; yylhsminor.yy200.rRel = 0;} -#line 2562 "pikchr.c" - yymsp[0].minor.yy200 = yylhsminor.yy200; +{yylhsminor.yy10.rAbs = yymsp[0].minor.yy153; yylhsminor.yy10.rRel = 0;} +#line 2576 "pikchr.c" + yymsp[0].minor.yy10 = yylhsminor.yy10; break; case 26: /* relexpr ::= expr PERCENT */ #line 600 "pikchr.y" -{yylhsminor.yy200.rAbs = 0; yylhsminor.yy200.rRel = yymsp[-1].minor.yy265/100;} -#line 2568 "pikchr.c" - yymsp[-1].minor.yy200 = yylhsminor.yy200; +{yylhsminor.yy10.rAbs = 0; yylhsminor.yy10.rRel = yymsp[-1].minor.yy153/100;} +#line 2582 "pikchr.c" + yymsp[-1].minor.yy10 = yylhsminor.yy10; break; case 27: /* optrelexpr ::= */ #line 602 "pikchr.y" -{yymsp[1].minor.yy200.rAbs = 0; yymsp[1].minor.yy200.rRel = 1.0;} -#line 2574 "pikchr.c" +{yymsp[1].minor.yy10.rAbs = 0; yymsp[1].minor.yy10.rRel = 1.0;} +#line 2588 "pikchr.c" break; case 28: /* attribute_list ::= relexpr alist */ #line 604 "pikchr.y" -{pik_add_direction(p,0,&yymsp[-1].minor.yy200);} -#line 2579 "pikchr.c" +{pik_add_direction(p,0,&yymsp[-1].minor.yy10);} +#line 2593 "pikchr.c" break; case 29: /* attribute ::= numproperty relexpr */ #line 608 "pikchr.y" -{ pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy200); } -#line 2584 "pikchr.c" +{ pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy10); } +#line 2598 "pikchr.c" break; case 30: /* attribute ::= dashproperty expr */ #line 609 "pikchr.y" -{ pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy265); } -#line 2589 "pikchr.c" +{ pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy153); } +#line 2603 "pikchr.c" break; case 31: /* attribute ::= dashproperty */ #line 610 "pikchr.y" { pik_set_dashed(p,&yymsp[0].minor.yy0,0); } -#line 2594 "pikchr.c" +#line 2608 "pikchr.c" break; case 32: /* attribute ::= colorproperty rvalue */ #line 611 "pikchr.y" -{ pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy265); } -#line 2599 "pikchr.c" +{ pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy153); } +#line 2613 "pikchr.c" break; case 33: /* attribute ::= go direction optrelexpr */ #line 612 "pikchr.y" -{ pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy200);} -#line 2604 "pikchr.c" +{ pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy10);} +#line 2618 "pikchr.c" break; case 34: /* attribute ::= go direction even position */ #line 613 "pikchr.y" -{pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy43);} -#line 2609 "pikchr.c" +{pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy79);} +#line 2623 "pikchr.c" break; case 35: /* attribute ::= CLOSE */ #line 614 "pikchr.y" { pik_close_path(p,&yymsp[0].minor.yy0); } -#line 2614 "pikchr.c" +#line 2628 "pikchr.c" break; case 36: /* attribute ::= CHOP */ #line 615 "pikchr.y" { p->cur->bChop = 1; } -#line 2619 "pikchr.c" +#line 2633 "pikchr.c" break; case 37: /* attribute ::= FROM position */ #line 616 "pikchr.y" -{ pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy43); } -#line 2624 "pikchr.c" +{ pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy79); } +#line 2638 "pikchr.c" break; case 38: /* attribute ::= TO position */ #line 617 "pikchr.y" -{ pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy43); } -#line 2629 "pikchr.c" +{ pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy79); } +#line 2643 "pikchr.c" break; case 39: /* attribute ::= THEN */ #line 618 "pikchr.y" { pik_then(p, &yymsp[0].minor.yy0, p->cur); } -#line 2634 "pikchr.c" +#line 2648 "pikchr.c" break; case 40: /* attribute ::= THEN optrelexpr HEADING expr */ case 42: /* attribute ::= GO optrelexpr HEADING expr */ yytestcase(yyruleno==42); #line 620 "pikchr.y" -{pik_move_hdg(p,&yymsp[-2].minor.yy200,&yymsp[-1].minor.yy0,yymsp[0].minor.yy265,0,&yymsp[-3].minor.yy0);} -#line 2640 "pikchr.c" +{pik_move_hdg(p,&yymsp[-2].minor.yy10,&yymsp[-1].minor.yy0,yymsp[0].minor.yy153,0,&yymsp[-3].minor.yy0);} +#line 2654 "pikchr.c" break; case 41: /* attribute ::= THEN optrelexpr EDGEPT */ case 43: /* attribute ::= GO optrelexpr EDGEPT */ yytestcase(yyruleno==43); #line 621 "pikchr.y" -{pik_move_hdg(p,&yymsp[-1].minor.yy200,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);} -#line 2646 "pikchr.c" +{pik_move_hdg(p,&yymsp[-1].minor.yy10,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);} +#line 2660 "pikchr.c" break; case 44: /* attribute ::= AT position */ #line 626 "pikchr.y" -{ pik_set_at(p,0,&yymsp[0].minor.yy43,&yymsp[-1].minor.yy0); } -#line 2651 "pikchr.c" +{ pik_set_at(p,0,&yymsp[0].minor.yy79,&yymsp[-1].minor.yy0); } +#line 2665 "pikchr.c" break; case 45: /* attribute ::= SAME */ #line 628 "pikchr.y" {pik_same(p,0,&yymsp[0].minor.yy0);} -#line 2656 "pikchr.c" +#line 2670 "pikchr.c" break; case 46: /* attribute ::= SAME AS object */ #line 629 "pikchr.y" -{pik_same(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);} -#line 2661 "pikchr.c" +{pik_same(p,yymsp[0].minor.yy36,&yymsp[-2].minor.yy0);} +#line 2675 "pikchr.c" break; case 47: /* attribute ::= STRING textposition */ #line 630 "pikchr.y" -{pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy44);} -#line 2666 "pikchr.c" +{pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy164);} +#line 2680 "pikchr.c" break; case 48: /* attribute ::= FIT */ #line 631 "pikchr.y" {pik_size_to_fit(p,&yymsp[0].minor.yy0,3); } -#line 2671 "pikchr.c" +#line 2685 "pikchr.c" break; case 49: /* attribute ::= BEHIND object */ #line 632 "pikchr.y" -{pik_behind(p,yymsp[0].minor.yy38);} -#line 2676 "pikchr.c" +{pik_behind(p,yymsp[0].minor.yy36);} +#line 2690 "pikchr.c" break; case 50: /* withclause ::= DOT_E edge AT position */ case 51: /* withclause ::= edge AT position */ yytestcase(yyruleno==51); #line 640 "pikchr.y" -{ pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy43,&yymsp[-1].minor.yy0); } -#line 2682 "pikchr.c" +{ pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy79,&yymsp[-1].minor.yy0); } +#line 2696 "pikchr.c" break; case 52: /* numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */ #line 644 "pikchr.y" {yylhsminor.yy0 = yymsp[0].minor.yy0;} -#line 2687 "pikchr.c" +#line 2701 "pikchr.c" yymsp[0].minor.yy0 = yylhsminor.yy0; break; case 53: /* boolproperty ::= CW */ #line 655 "pikchr.y" {p->cur->cw = 1;} -#line 2693 "pikchr.c" +#line 2707 "pikchr.c" break; case 54: /* boolproperty ::= CCW */ #line 656 "pikchr.y" {p->cur->cw = 0;} -#line 2698 "pikchr.c" +#line 2712 "pikchr.c" break; case 55: /* boolproperty ::= LARROW */ #line 657 "pikchr.y" {p->cur->larrow=1; p->cur->rarrow=0; } -#line 2703 "pikchr.c" +#line 2717 "pikchr.c" break; case 56: /* boolproperty ::= RARROW */ #line 658 "pikchr.y" {p->cur->larrow=0; p->cur->rarrow=1; } -#line 2708 "pikchr.c" +#line 2722 "pikchr.c" break; case 57: /* boolproperty ::= LRARROW */ #line 659 "pikchr.y" {p->cur->larrow=1; p->cur->rarrow=1; } -#line 2713 "pikchr.c" +#line 2727 "pikchr.c" break; case 58: /* boolproperty ::= INVIS */ #line 660 "pikchr.y" {p->cur->sw = 0.0;} -#line 2718 "pikchr.c" +#line 2732 "pikchr.c" break; case 59: /* boolproperty ::= THICK */ #line 661 "pikchr.y" {p->cur->sw *= 1.5;} -#line 2723 "pikchr.c" +#line 2737 "pikchr.c" break; case 60: /* boolproperty ::= THIN */ #line 662 "pikchr.y" {p->cur->sw *= 0.67;} -#line 2728 "pikchr.c" +#line 2742 "pikchr.c" break; case 61: /* boolproperty ::= SOLID */ #line 663 "pikchr.y" {p->cur->sw = pik_value(p,"thickness",9,0); p->cur->dotted = p->cur->dashed = 0.0;} -#line 2734 "pikchr.c" +#line 2748 "pikchr.c" break; case 62: /* textposition ::= */ #line 666 "pikchr.y" -{yymsp[1].minor.yy44 = 0;} -#line 2739 "pikchr.c" +{yymsp[1].minor.yy164 = 0;} +#line 2753 "pikchr.c" break; case 63: /* textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */ #line 669 "pikchr.y" -{yylhsminor.yy44 = (short int)pik_text_position(yymsp[-1].minor.yy44,&yymsp[0].minor.yy0);} -#line 2744 "pikchr.c" - yymsp[-1].minor.yy44 = yylhsminor.yy44; +{yylhsminor.yy164 = (short int)pik_text_position(yymsp[-1].minor.yy164,&yymsp[0].minor.yy0);} +#line 2758 "pikchr.c" + yymsp[-1].minor.yy164 = yylhsminor.yy164; break; case 64: /* position ::= expr COMMA expr */ #line 672 "pikchr.y" -{yylhsminor.yy43.x=yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[0].minor.yy265;} -#line 2750 "pikchr.c" - yymsp[-2].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79.x=yymsp[-2].minor.yy153; yylhsminor.yy79.y=yymsp[0].minor.yy153;} +#line 2764 "pikchr.c" + yymsp[-2].minor.yy79 = yylhsminor.yy79; break; case 65: /* position ::= place PLUS expr COMMA expr */ #line 674 "pikchr.y" -{yylhsminor.yy43.x=yymsp[-4].minor.yy43.x+yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[-4].minor.yy43.y+yymsp[0].minor.yy265;} -#line 2756 "pikchr.c" - yymsp[-4].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79.x=yymsp[-4].minor.yy79.x+yymsp[-2].minor.yy153; yylhsminor.yy79.y=yymsp[-4].minor.yy79.y+yymsp[0].minor.yy153;} +#line 2770 "pikchr.c" + yymsp[-4].minor.yy79 = yylhsminor.yy79; break; case 66: /* position ::= place MINUS expr COMMA expr */ #line 675 "pikchr.y" -{yylhsminor.yy43.x=yymsp[-4].minor.yy43.x-yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[-4].minor.yy43.y-yymsp[0].minor.yy265;} -#line 2762 "pikchr.c" - yymsp[-4].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79.x=yymsp[-4].minor.yy79.x-yymsp[-2].minor.yy153; yylhsminor.yy79.y=yymsp[-4].minor.yy79.y-yymsp[0].minor.yy153;} +#line 2776 "pikchr.c" + yymsp[-4].minor.yy79 = yylhsminor.yy79; break; case 67: /* position ::= place PLUS LP expr COMMA expr RP */ #line 677 "pikchr.y" -{yylhsminor.yy43.x=yymsp[-6].minor.yy43.x+yymsp[-3].minor.yy265; yylhsminor.yy43.y=yymsp[-6].minor.yy43.y+yymsp[-1].minor.yy265;} -#line 2768 "pikchr.c" - yymsp[-6].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79.x=yymsp[-6].minor.yy79.x+yymsp[-3].minor.yy153; yylhsminor.yy79.y=yymsp[-6].minor.yy79.y+yymsp[-1].minor.yy153;} +#line 2782 "pikchr.c" + yymsp[-6].minor.yy79 = yylhsminor.yy79; break; case 68: /* position ::= place MINUS LP expr COMMA expr RP */ #line 679 "pikchr.y" -{yylhsminor.yy43.x=yymsp[-6].minor.yy43.x-yymsp[-3].minor.yy265; yylhsminor.yy43.y=yymsp[-6].minor.yy43.y-yymsp[-1].minor.yy265;} -#line 2774 "pikchr.c" - yymsp[-6].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79.x=yymsp[-6].minor.yy79.x-yymsp[-3].minor.yy153; yylhsminor.yy79.y=yymsp[-6].minor.yy79.y-yymsp[-1].minor.yy153;} +#line 2788 "pikchr.c" + yymsp[-6].minor.yy79 = yylhsminor.yy79; break; case 69: /* position ::= LP position COMMA position RP */ #line 680 "pikchr.y" -{yymsp[-4].minor.yy43.x=yymsp[-3].minor.yy43.x; yymsp[-4].minor.yy43.y=yymsp[-1].minor.yy43.y;} -#line 2780 "pikchr.c" +{yymsp[-4].minor.yy79.x=yymsp[-3].minor.yy79.x; yymsp[-4].minor.yy79.y=yymsp[-1].minor.yy79.y;} +#line 2794 "pikchr.c" break; case 70: /* position ::= LP position RP */ #line 681 "pikchr.y" -{yymsp[-2].minor.yy43=yymsp[-1].minor.yy43;} -#line 2785 "pikchr.c" +{yymsp[-2].minor.yy79=yymsp[-1].minor.yy79;} +#line 2799 "pikchr.c" break; case 71: /* position ::= expr between position AND position */ #line 683 "pikchr.y" -{yylhsminor.yy43 = pik_position_between(yymsp[-4].minor.yy265,yymsp[-2].minor.yy43,yymsp[0].minor.yy43);} -#line 2790 "pikchr.c" - yymsp[-4].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_between(yymsp[-4].minor.yy153,yymsp[-2].minor.yy79,yymsp[0].minor.yy79);} +#line 2804 "pikchr.c" + yymsp[-4].minor.yy79 = yylhsminor.yy79; break; case 72: /* position ::= expr LT position COMMA position GT */ #line 685 "pikchr.y" -{yylhsminor.yy43 = pik_position_between(yymsp[-5].minor.yy265,yymsp[-3].minor.yy43,yymsp[-1].minor.yy43);} -#line 2796 "pikchr.c" - yymsp[-5].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_between(yymsp[-5].minor.yy153,yymsp[-3].minor.yy79,yymsp[-1].minor.yy79);} +#line 2810 "pikchr.c" + yymsp[-5].minor.yy79 = yylhsminor.yy79; break; case 73: /* position ::= expr ABOVE position */ #line 686 "pikchr.y" -{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.y += yymsp[-2].minor.yy265;} -#line 2802 "pikchr.c" - yymsp[-2].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79=yymsp[0].minor.yy79; yylhsminor.yy79.y += yymsp[-2].minor.yy153;} +#line 2816 "pikchr.c" + yymsp[-2].minor.yy79 = yylhsminor.yy79; break; case 74: /* position ::= expr BELOW position */ #line 687 "pikchr.y" -{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.y -= yymsp[-2].minor.yy265;} -#line 2808 "pikchr.c" - yymsp[-2].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79=yymsp[0].minor.yy79; yylhsminor.yy79.y -= yymsp[-2].minor.yy153;} +#line 2822 "pikchr.c" + yymsp[-2].minor.yy79 = yylhsminor.yy79; break; case 75: /* position ::= expr LEFT OF position */ #line 688 "pikchr.y" -{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.x -= yymsp[-3].minor.yy265;} -#line 2814 "pikchr.c" - yymsp[-3].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79=yymsp[0].minor.yy79; yylhsminor.yy79.x -= yymsp[-3].minor.yy153;} +#line 2828 "pikchr.c" + yymsp[-3].minor.yy79 = yylhsminor.yy79; break; case 76: /* position ::= expr RIGHT OF position */ #line 689 "pikchr.y" -{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.x += yymsp[-3].minor.yy265;} -#line 2820 "pikchr.c" - yymsp[-3].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79=yymsp[0].minor.yy79; yylhsminor.yy79.x += yymsp[-3].minor.yy153;} +#line 2834 "pikchr.c" + yymsp[-3].minor.yy79 = yylhsminor.yy79; break; case 77: /* position ::= expr ON HEADING EDGEPT OF position */ #line 691 "pikchr.y" -{yylhsminor.yy43 = pik_position_at_hdg(yymsp[-5].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);} -#line 2826 "pikchr.c" - yymsp[-5].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_at_hdg(yymsp[-5].minor.yy153,&yymsp[-2].minor.yy0,yymsp[0].minor.yy79);} +#line 2840 "pikchr.c" + yymsp[-5].minor.yy79 = yylhsminor.yy79; break; case 78: /* position ::= expr HEADING EDGEPT OF position */ #line 693 "pikchr.y" -{yylhsminor.yy43 = pik_position_at_hdg(yymsp[-4].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);} -#line 2832 "pikchr.c" - yymsp[-4].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_at_hdg(yymsp[-4].minor.yy153,&yymsp[-2].minor.yy0,yymsp[0].minor.yy79);} +#line 2846 "pikchr.c" + yymsp[-4].minor.yy79 = yylhsminor.yy79; break; case 79: /* position ::= expr EDGEPT OF position */ #line 695 "pikchr.y" -{yylhsminor.yy43 = pik_position_at_hdg(yymsp[-3].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);} -#line 2838 "pikchr.c" - yymsp[-3].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_at_hdg(yymsp[-3].minor.yy153,&yymsp[-2].minor.yy0,yymsp[0].minor.yy79);} +#line 2852 "pikchr.c" + yymsp[-3].minor.yy79 = yylhsminor.yy79; break; case 80: /* position ::= expr ON HEADING expr FROM position */ #line 697 "pikchr.y" -{yylhsminor.yy43 = pik_position_at_angle(yymsp[-5].minor.yy265,yymsp[-2].minor.yy265,yymsp[0].minor.yy43);} -#line 2844 "pikchr.c" - yymsp[-5].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_at_angle(yymsp[-5].minor.yy153,yymsp[-2].minor.yy153,yymsp[0].minor.yy79);} +#line 2858 "pikchr.c" + yymsp[-5].minor.yy79 = yylhsminor.yy79; break; case 81: /* position ::= expr HEADING expr FROM position */ #line 699 "pikchr.y" -{yylhsminor.yy43 = pik_position_at_angle(yymsp[-4].minor.yy265,yymsp[-2].minor.yy265,yymsp[0].minor.yy43);} -#line 2850 "pikchr.c" - yymsp[-4].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_position_at_angle(yymsp[-4].minor.yy153,yymsp[-2].minor.yy153,yymsp[0].minor.yy79);} +#line 2864 "pikchr.c" + yymsp[-4].minor.yy79 = yylhsminor.yy79; break; case 82: /* place ::= edge OF object */ #line 711 "pikchr.y" -{yylhsminor.yy43 = pik_place_of_elem(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);} -#line 2856 "pikchr.c" - yymsp[-2].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_place_of_elem(p,yymsp[0].minor.yy36,&yymsp[-2].minor.yy0);} +#line 2870 "pikchr.c" + yymsp[-2].minor.yy79 = yylhsminor.yy79; break; case 83: /* place2 ::= object */ #line 712 "pikchr.y" -{yylhsminor.yy43 = pik_place_of_elem(p,yymsp[0].minor.yy38,0);} -#line 2862 "pikchr.c" - yymsp[0].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_place_of_elem(p,yymsp[0].minor.yy36,0);} +#line 2876 "pikchr.c" + yymsp[0].minor.yy79 = yylhsminor.yy79; break; case 84: /* place2 ::= object DOT_E edge */ #line 713 "pikchr.y" -{yylhsminor.yy43 = pik_place_of_elem(p,yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);} -#line 2868 "pikchr.c" - yymsp[-2].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_place_of_elem(p,yymsp[-2].minor.yy36,&yymsp[0].minor.yy0);} +#line 2882 "pikchr.c" + yymsp[-2].minor.yy79 = yylhsminor.yy79; break; case 85: /* place2 ::= NTH VERTEX OF object */ #line 714 "pikchr.y" -{yylhsminor.yy43 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy38);} -#line 2874 "pikchr.c" - yymsp[-3].minor.yy43 = yylhsminor.yy43; +{yylhsminor.yy79 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy36);} +#line 2888 "pikchr.c" + yymsp[-3].minor.yy79 = yylhsminor.yy79; break; case 86: /* object ::= nth */ #line 726 "pikchr.y" -{yylhsminor.yy38 = pik_find_nth(p,0,&yymsp[0].minor.yy0);} -#line 2880 "pikchr.c" - yymsp[0].minor.yy38 = yylhsminor.yy38; +{yylhsminor.yy36 = pik_find_nth(p,0,&yymsp[0].minor.yy0);} +#line 2894 "pikchr.c" + yymsp[0].minor.yy36 = yylhsminor.yy36; break; case 87: /* object ::= nth OF|IN object */ #line 727 "pikchr.y" -{yylhsminor.yy38 = pik_find_nth(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);} -#line 2886 "pikchr.c" - yymsp[-2].minor.yy38 = yylhsminor.yy38; +{yylhsminor.yy36 = pik_find_nth(p,yymsp[0].minor.yy36,&yymsp[-2].minor.yy0);} +#line 2900 "pikchr.c" + yymsp[-2].minor.yy36 = yylhsminor.yy36; break; - case 88: /* objectname ::= PLACENAME */ + case 88: /* objectname ::= THIS */ #line 729 "pikchr.y" -{yylhsminor.yy38 = pik_find_byname(p,0,&yymsp[0].minor.yy0);} -#line 2892 "pikchr.c" - yymsp[0].minor.yy38 = yylhsminor.yy38; - break; - case 89: /* objectname ::= objectname DOT_U PLACENAME */ -#line 731 "pikchr.y" -{yylhsminor.yy38 = pik_find_byname(p,yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);} -#line 2898 "pikchr.c" - yymsp[-2].minor.yy38 = yylhsminor.yy38; - break; - case 90: /* nth ::= NTH CLASSNAME */ -#line 733 "pikchr.y" +{yymsp[0].minor.yy36 = p->cur;} +#line 2906 "pikchr.c" + break; + case 89: /* objectname ::= PLACENAME */ +#line 730 "pikchr.y" +{yylhsminor.yy36 = pik_find_byname(p,0,&yymsp[0].minor.yy0);} +#line 2911 "pikchr.c" + yymsp[0].minor.yy36 = yylhsminor.yy36; + break; + case 90: /* objectname ::= objectname DOT_U PLACENAME */ +#line 732 "pikchr.y" +{yylhsminor.yy36 = pik_find_byname(p,yymsp[-2].minor.yy36,&yymsp[0].minor.yy0);} +#line 2917 "pikchr.c" + yymsp[-2].minor.yy36 = yylhsminor.yy36; + break; + case 91: /* nth ::= NTH CLASSNAME */ +#line 734 "pikchr.y" {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-1].minor.yy0); } -#line 2904 "pikchr.c" +#line 2923 "pikchr.c" yymsp[-1].minor.yy0 = yylhsminor.yy0; break; - case 91: /* nth ::= NTH LAST CLASSNAME */ -#line 734 "pikchr.y" + case 92: /* nth ::= NTH LAST CLASSNAME */ +#line 735 "pikchr.y" {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-2].minor.yy0); } -#line 2910 "pikchr.c" +#line 2929 "pikchr.c" yymsp[-2].minor.yy0 = yylhsminor.yy0; break; - case 92: /* nth ::= LAST CLASSNAME */ -#line 735 "pikchr.y" + case 93: /* nth ::= LAST CLASSNAME */ +#line 736 "pikchr.y" {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.eCode = -1;} -#line 2916 "pikchr.c" +#line 2935 "pikchr.c" break; - case 93: /* nth ::= LAST */ -#line 736 "pikchr.y" + case 94: /* nth ::= LAST */ +#line 737 "pikchr.y" {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -1;} -#line 2921 "pikchr.c" +#line 2940 "pikchr.c" yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 94: /* nth ::= NTH LB RB */ -#line 737 "pikchr.y" + case 95: /* nth ::= NTH LB RB */ +#line 738 "pikchr.y" {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-2].minor.yy0);} -#line 2927 "pikchr.c" +#line 2946 "pikchr.c" yymsp[-2].minor.yy0 = yylhsminor.yy0; break; - case 95: /* nth ::= NTH LAST LB RB */ -#line 738 "pikchr.y" + case 96: /* nth ::= NTH LAST LB RB */ +#line 739 "pikchr.y" {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-3].minor.yy0);} -#line 2933 "pikchr.c" +#line 2952 "pikchr.c" yymsp[-3].minor.yy0 = yylhsminor.yy0; break; - case 96: /* nth ::= LAST LB RB */ -#line 739 "pikchr.y" -{yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; } -#line 2939 "pikchr.c" - break; - case 97: /* expr ::= expr PLUS expr */ -#line 741 "pikchr.y" -{yylhsminor.yy265=yymsp[-2].minor.yy265+yymsp[0].minor.yy265;} -#line 2944 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; - break; - case 98: /* expr ::= expr MINUS expr */ -#line 742 "pikchr.y" -{yylhsminor.yy265=yymsp[-2].minor.yy265-yymsp[0].minor.yy265;} -#line 2950 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; - break; - case 99: /* expr ::= expr STAR expr */ -#line 743 "pikchr.y" -{yylhsminor.yy265=yymsp[-2].minor.yy265*yymsp[0].minor.yy265;} -#line 2956 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; - break; - case 100: /* expr ::= expr SLASH expr */ -#line 744 "pikchr.y" -{ - if( yymsp[0].minor.yy265==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy265 = 0.0; } - else{ yylhsminor.yy265 = yymsp[-2].minor.yy265/yymsp[0].minor.yy265; } -} -#line 2965 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; - break; - case 101: /* expr ::= MINUS expr */ -#line 748 "pikchr.y" -{yymsp[-1].minor.yy265=-yymsp[0].minor.yy265;} -#line 2971 "pikchr.c" - break; - case 102: /* expr ::= PLUS expr */ -#line 749 "pikchr.y" -{yymsp[-1].minor.yy265=yymsp[0].minor.yy265;} -#line 2976 "pikchr.c" - break; - case 103: /* expr ::= LP expr RP */ -#line 750 "pikchr.y" -{yymsp[-2].minor.yy265=yymsp[-1].minor.yy265;} -#line 2981 "pikchr.c" - break; - case 104: /* expr ::= LP FILL|COLOR|THICKNESS RP */ + case 97: /* nth ::= LAST LB RB */ +#line 740 "pikchr.y" +{yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; } +#line 2958 "pikchr.c" + break; + case 98: /* expr ::= expr PLUS expr */ +#line 742 "pikchr.y" +{yylhsminor.yy153=yymsp[-2].minor.yy153+yymsp[0].minor.yy153;} +#line 2963 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; + break; + case 99: /* expr ::= expr MINUS expr */ +#line 743 "pikchr.y" +{yylhsminor.yy153=yymsp[-2].minor.yy153-yymsp[0].minor.yy153;} +#line 2969 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; + break; + case 100: /* expr ::= expr STAR expr */ +#line 744 "pikchr.y" +{yylhsminor.yy153=yymsp[-2].minor.yy153*yymsp[0].minor.yy153;} +#line 2975 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; + break; + case 101: /* expr ::= expr SLASH expr */ +#line 745 "pikchr.y" +{ + if( yymsp[0].minor.yy153==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy153 = 0.0; } + else{ yylhsminor.yy153 = yymsp[-2].minor.yy153/yymsp[0].minor.yy153; } +} +#line 2984 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; + break; + case 102: /* expr ::= MINUS expr */ +#line 749 "pikchr.y" +{yymsp[-1].minor.yy153=-yymsp[0].minor.yy153;} +#line 2990 "pikchr.c" + break; + case 103: /* expr ::= PLUS expr */ +#line 750 "pikchr.y" +{yymsp[-1].minor.yy153=yymsp[0].minor.yy153;} +#line 2995 "pikchr.c" + break; + case 104: /* expr ::= LP expr RP */ #line 751 "pikchr.y" -{yymsp[-2].minor.yy265=pik_get_var(p,&yymsp[-1].minor.yy0);} -#line 2986 "pikchr.c" +{yymsp[-2].minor.yy153=yymsp[-1].minor.yy153;} +#line 3000 "pikchr.c" break; - case 105: /* expr ::= NUMBER */ + case 105: /* expr ::= LP FILL|COLOR|THICKNESS RP */ #line 752 "pikchr.y" -{yylhsminor.yy265=pik_atof(&yymsp[0].minor.yy0);} -#line 2991 "pikchr.c" - yymsp[0].minor.yy265 = yylhsminor.yy265; +{yymsp[-2].minor.yy153=pik_get_var(p,&yymsp[-1].minor.yy0);} +#line 3005 "pikchr.c" break; - case 106: /* expr ::= ID */ + case 106: /* expr ::= NUMBER */ #line 753 "pikchr.y" -{yylhsminor.yy265=pik_get_var(p,&yymsp[0].minor.yy0);} -#line 2997 "pikchr.c" - yymsp[0].minor.yy265 = yylhsminor.yy265; +{yylhsminor.yy153=pik_atof(&yymsp[0].minor.yy0);} +#line 3010 "pikchr.c" + yymsp[0].minor.yy153 = yylhsminor.yy153; break; - case 107: /* expr ::= FUNC1 LP expr RP */ + case 107: /* expr ::= ID */ #line 754 "pikchr.y" -{yylhsminor.yy265 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy265,0.0);} -#line 3003 "pikchr.c" - yymsp[-3].minor.yy265 = yylhsminor.yy265; +{yylhsminor.yy153=pik_get_var(p,&yymsp[0].minor.yy0);} +#line 3016 "pikchr.c" + yymsp[0].minor.yy153 = yylhsminor.yy153; break; - case 108: /* expr ::= FUNC2 LP expr COMMA expr RP */ + case 108: /* expr ::= FUNC1 LP expr RP */ #line 755 "pikchr.y" -{yylhsminor.yy265 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy265,yymsp[-1].minor.yy265);} -#line 3009 "pikchr.c" - yymsp[-5].minor.yy265 = yylhsminor.yy265; +{yylhsminor.yy153 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy153,0.0);} +#line 3022 "pikchr.c" + yymsp[-3].minor.yy153 = yylhsminor.yy153; break; - case 109: /* expr ::= DIST LP position COMMA position RP */ + case 109: /* expr ::= FUNC2 LP expr COMMA expr RP */ #line 756 "pikchr.y" -{yymsp[-5].minor.yy265 = pik_dist(&yymsp[-3].minor.yy43,&yymsp[-1].minor.yy43);} -#line 3015 "pikchr.c" +{yylhsminor.yy153 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy153,yymsp[-1].minor.yy153);} +#line 3028 "pikchr.c" + yymsp[-5].minor.yy153 = yylhsminor.yy153; break; - case 110: /* expr ::= place2 DOT_XY X */ + case 110: /* expr ::= DIST LP position COMMA position RP */ #line 757 "pikchr.y" -{yylhsminor.yy265 = yymsp[-2].minor.yy43.x;} -#line 3020 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; +{yymsp[-5].minor.yy153 = pik_dist(&yymsp[-3].minor.yy79,&yymsp[-1].minor.yy79);} +#line 3034 "pikchr.c" break; - case 111: /* expr ::= place2 DOT_XY Y */ + case 111: /* expr ::= place2 DOT_XY X */ #line 758 "pikchr.y" -{yylhsminor.yy265 = yymsp[-2].minor.yy43.y;} -#line 3026 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; +{yylhsminor.yy153 = yymsp[-2].minor.yy79.x;} +#line 3039 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; break; - case 112: /* expr ::= object DOT_L numproperty */ - case 113: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==113); - case 114: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==114); + case 112: /* expr ::= place2 DOT_XY Y */ #line 759 "pikchr.y" -{yylhsminor.yy265=pik_property_of(yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);} -#line 3034 "pikchr.c" - yymsp[-2].minor.yy265 = yylhsminor.yy265; +{yylhsminor.yy153 = yymsp[-2].minor.yy79.y;} +#line 3045 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; + break; + case 113: /* expr ::= object DOT_L numproperty */ + case 114: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==114); + case 115: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==115); +#line 760 "pikchr.y" +{yylhsminor.yy153=pik_property_of(yymsp[-2].minor.yy36,&yymsp[0].minor.yy0);} +#line 3053 "pikchr.c" + yymsp[-2].minor.yy153 = yylhsminor.yy153; break; default: - /* (115) lvalue ::= ID */ yytestcase(yyruleno==115); - /* (116) lvalue ::= FILL */ yytestcase(yyruleno==116); - /* (117) lvalue ::= COLOR */ yytestcase(yyruleno==117); - /* (118) lvalue ::= THICKNESS */ yytestcase(yyruleno==118); - /* (119) rvalue ::= expr */ yytestcase(yyruleno==119); - /* (120) print ::= PRINT */ yytestcase(yyruleno==120); - /* (121) prlist ::= pritem (OPTIMIZED OUT) */ assert(yyruleno!=121); - /* (122) prlist ::= prlist prsep pritem */ yytestcase(yyruleno==122); - /* (123) direction ::= UP */ yytestcase(yyruleno==123); - /* (124) direction ::= DOWN */ yytestcase(yyruleno==124); - /* (125) direction ::= LEFT */ yytestcase(yyruleno==125); - /* (126) direction ::= RIGHT */ yytestcase(yyruleno==126); - /* (127) optrelexpr ::= relexpr (OPTIMIZED OUT) */ assert(yyruleno!=127); - /* (128) attribute_list ::= alist */ yytestcase(yyruleno==128); - /* (129) alist ::= */ yytestcase(yyruleno==129); - /* (130) alist ::= alist attribute */ yytestcase(yyruleno==130); - /* (131) attribute ::= boolproperty (OPTIMIZED OUT) */ assert(yyruleno!=131); - /* (132) attribute ::= WITH withclause */ yytestcase(yyruleno==132); - /* (133) go ::= GO */ yytestcase(yyruleno==133); - /* (134) go ::= */ yytestcase(yyruleno==134); - /* (135) even ::= UNTIL EVEN WITH */ yytestcase(yyruleno==135); - /* (136) even ::= EVEN WITH */ yytestcase(yyruleno==136); - /* (137) dashproperty ::= DOTTED */ yytestcase(yyruleno==137); - /* (138) dashproperty ::= DASHED */ yytestcase(yyruleno==138); - /* (139) colorproperty ::= FILL */ yytestcase(yyruleno==139); - /* (140) colorproperty ::= COLOR */ yytestcase(yyruleno==140); - /* (141) position ::= place */ yytestcase(yyruleno==141); - /* (142) between ::= WAY BETWEEN */ yytestcase(yyruleno==142); - /* (143) between ::= BETWEEN */ yytestcase(yyruleno==143); - /* (144) between ::= OF THE WAY BETWEEN */ yytestcase(yyruleno==144); - /* (145) place ::= place2 */ yytestcase(yyruleno==145); - /* (146) edge ::= CENTER */ yytestcase(yyruleno==146); - /* (147) edge ::= EDGEPT */ yytestcase(yyruleno==147); - /* (148) edge ::= TOP */ yytestcase(yyruleno==148); - /* (149) edge ::= BOTTOM */ yytestcase(yyruleno==149); - /* (150) edge ::= START */ yytestcase(yyruleno==150); - /* (151) edge ::= END */ yytestcase(yyruleno==151); - /* (152) edge ::= RIGHT */ yytestcase(yyruleno==152); - /* (153) edge ::= LEFT */ yytestcase(yyruleno==153); - /* (154) object ::= objectname */ yytestcase(yyruleno==154); + /* (116) lvalue ::= ID */ yytestcase(yyruleno==116); + /* (117) lvalue ::= FILL */ yytestcase(yyruleno==117); + /* (118) lvalue ::= COLOR */ yytestcase(yyruleno==118); + /* (119) lvalue ::= THICKNESS */ yytestcase(yyruleno==119); + /* (120) rvalue ::= expr */ yytestcase(yyruleno==120); + /* (121) print ::= PRINT */ yytestcase(yyruleno==121); + /* (122) prlist ::= pritem (OPTIMIZED OUT) */ assert(yyruleno!=122); + /* (123) prlist ::= prlist prsep pritem */ yytestcase(yyruleno==123); + /* (124) direction ::= UP */ yytestcase(yyruleno==124); + /* (125) direction ::= DOWN */ yytestcase(yyruleno==125); + /* (126) direction ::= LEFT */ yytestcase(yyruleno==126); + /* (127) direction ::= RIGHT */ yytestcase(yyruleno==127); + /* (128) optrelexpr ::= relexpr (OPTIMIZED OUT) */ assert(yyruleno!=128); + /* (129) attribute_list ::= alist */ yytestcase(yyruleno==129); + /* (130) alist ::= */ yytestcase(yyruleno==130); + /* (131) alist ::= alist attribute */ yytestcase(yyruleno==131); + /* (132) attribute ::= boolproperty (OPTIMIZED OUT) */ assert(yyruleno!=132); + /* (133) attribute ::= WITH withclause */ yytestcase(yyruleno==133); + /* (134) go ::= GO */ yytestcase(yyruleno==134); + /* (135) go ::= */ yytestcase(yyruleno==135); + /* (136) even ::= UNTIL EVEN WITH */ yytestcase(yyruleno==136); + /* (137) even ::= EVEN WITH */ yytestcase(yyruleno==137); + /* (138) dashproperty ::= DOTTED */ yytestcase(yyruleno==138); + /* (139) dashproperty ::= DASHED */ yytestcase(yyruleno==139); + /* (140) colorproperty ::= FILL */ yytestcase(yyruleno==140); + /* (141) colorproperty ::= COLOR */ yytestcase(yyruleno==141); + /* (142) position ::= place */ yytestcase(yyruleno==142); + /* (143) between ::= WAY BETWEEN */ yytestcase(yyruleno==143); + /* (144) between ::= BETWEEN */ yytestcase(yyruleno==144); + /* (145) between ::= OF THE WAY BETWEEN */ yytestcase(yyruleno==145); + /* (146) place ::= place2 */ yytestcase(yyruleno==146); + /* (147) edge ::= CENTER */ yytestcase(yyruleno==147); + /* (148) edge ::= EDGEPT */ yytestcase(yyruleno==148); + /* (149) edge ::= TOP */ yytestcase(yyruleno==149); + /* (150) edge ::= BOTTOM */ yytestcase(yyruleno==150); + /* (151) edge ::= START */ yytestcase(yyruleno==151); + /* (152) edge ::= END */ yytestcase(yyruleno==152); + /* (153) edge ::= RIGHT */ yytestcase(yyruleno==153); + /* (154) edge ::= LEFT */ yytestcase(yyruleno==154); + /* (155) object ::= objectname */ yytestcase(yyruleno==155); break; /********** End reduce actions ************************************************/ }; assert( yyrulenocur;} objectname(A) ::= PLACENAME(N). {A = pik_find_byname(p,0,&N);} objectname(A) ::= objectname(B) DOT_U PLACENAME(N). {A = pik_find_byname(p,B,&N);} nth(A) ::= NTH(N) CLASSNAME(ID). {A=ID; A.eCode = pik_nth_value(p,&N); } @@ -4505,10 +4506,11 @@ { "the", 3, T_THE, 0, 0 }, { "then", 4, T_THEN, 0, 0 }, { "thick", 5, T_THICK, 0, 0 }, { "thickness", 9, T_THICKNESS, 0, 0 }, { "thin", 4, T_THIN, 0, 0 }, + { "this", 4, T_THIS, 0, 0 }, { "to", 2, T_TO, 0, 0 }, { "top", 3, T_TOP, 0, CP_N }, { "until", 5, T_UNTIL, 0, 0 }, { "up", 2, T_UP, DIR_UP, 0 }, { "vertex", 6, T_VERTEX, 0, 0 }, ADDED tests/test74.pikchr Index: tests/test74.pikchr ================================================================== --- /dev/null +++ tests/test74.pikchr @@ -0,0 +1,12 @@ +/* Use of the "this" objectname +*/ +A: box "a" fit ht this.wid +B: box "bbbb" fit ht this.wid with .sw at previous.se +C: box "ccccccccc" fit ht this.wid with .sw at previous.se + +D: box "a" fit ht this.wid rad 0.25*this.wid \ + with .n at 1cm below A.s +E: box "bbbb" fit ht this.wid rad 0.25*this.wid \ + with .n at (previous.e.x+0.5*this.width, previous.n.y) +F: box "ccccccccc" fit ht this.wid rad 0.25*this.wid \ + with .n at (previous.e.x+0.5*this.wid, previous.n.y)