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)