Fossil SCM

Update Pikchr to the latest version that supports "solid".

drh 2020-09-30 02:01 trunk
Commit 5251d44f3a35ae44c29ebce71156c2f6aa03418808806eb8f5b8b325f1c5a1a2
1 file changed +1179 -1157
+1179 -1157
--- src/pikchr.c
+++ src/pikchr.c
@@ -530,44 +530,45 @@
530530
#define T_RARROW 58
531531
#define T_LRARROW 59
532532
#define T_INVIS 60
533533
#define T_THICK 61
534534
#define T_THIN 62
535
-#define T_CENTER 63
536
-#define T_LJUST 64
537
-#define T_RJUST 65
538
-#define T_ABOVE 66
539
-#define T_BELOW 67
540
-#define T_ITALIC 68
541
-#define T_BOLD 69
542
-#define T_ALIGNED 70
543
-#define T_BIG 71
544
-#define T_SMALL 72
545
-#define T_AND 73
546
-#define T_LT 74
547
-#define T_GT 75
548
-#define T_ON 76
549
-#define T_WAY 77
550
-#define T_BETWEEN 78
551
-#define T_THE 79
552
-#define T_NTH 80
553
-#define T_VERTEX 81
554
-#define T_TOP 82
555
-#define T_BOTTOM 83
556
-#define T_START 84
557
-#define T_END 85
558
-#define T_IN 86
559
-#define T_DOT_U 87
560
-#define T_LAST 88
561
-#define T_NUMBER 89
562
-#define T_FUNC1 90
563
-#define T_FUNC2 91
564
-#define T_DIST 92
565
-#define T_DOT_XY 93
566
-#define T_X 94
567
-#define T_Y 95
568
-#define T_DOT_L 96
535
+#define T_SOLID 63
536
+#define T_CENTER 64
537
+#define T_LJUST 65
538
+#define T_RJUST 66
539
+#define T_ABOVE 67
540
+#define T_BELOW 68
541
+#define T_ITALIC 69
542
+#define T_BOLD 70
543
+#define T_ALIGNED 71
544
+#define T_BIG 72
545
+#define T_SMALL 73
546
+#define T_AND 74
547
+#define T_LT 75
548
+#define T_GT 76
549
+#define T_ON 77
550
+#define T_WAY 78
551
+#define T_BETWEEN 79
552
+#define T_THE 80
553
+#define T_NTH 81
554
+#define T_VERTEX 82
555
+#define T_TOP 83
556
+#define T_BOTTOM 84
557
+#define T_START 85
558
+#define T_END 86
559
+#define T_IN 87
560
+#define T_DOT_U 88
561
+#define T_LAST 89
562
+#define T_NUMBER 90
563
+#define T_FUNC1 91
564
+#define T_FUNC2 92
565
+#define T_DIST 93
566
+#define T_DOT_XY 94
567
+#define T_X 95
568
+#define T_Y 96
569
+#define T_DOT_L 97
569570
#endif
570571
/**************** End token definitions ***************************************/
571572
572573
/* The next sections is a series of control #defines.
573574
** various aspects of the generated parser.
@@ -623,22 +624,22 @@
623624
#ifndef INTERFACE
624625
# define INTERFACE 1
625626
#endif
626627
/************* Begin control #defines *****************************************/
627628
#define YYCODETYPE unsigned char
628
-#define YYNOCODE 133
629
+#define YYNOCODE 134
629630
#define YYACTIONTYPE unsigned short int
630631
#define pik_parserTOKENTYPE PToken
631632
typedef union {
632633
int yyinit;
633634
pik_parserTOKENTYPE yy0;
634
- int yy46;
635
- PPoint yy47;
636
- PNum yy121;
637
- PRel yy134;
638
- PObj* yy138;
639
- PList* yy191;
635
+ PObj* yy38;
636
+ PPoint yy43;
637
+ PList* yy119;
638
+ int yy196;
639
+ PRel yy200;
640
+ PNum yy265;
640641
} YYMINORTYPE;
641642
#ifndef YYSTACKDEPTH
642643
#define YYSTACKDEPTH 100
643644
#endif
644645
#define pik_parserARG_SDECL
@@ -651,21 +652,21 @@
651652
#define pik_parserCTX_PARAM ,p
652653
#define pik_parserCTX_FETCH Pik *p=yypParser->p;
653654
#define pik_parserCTX_STORE yypParser->p=p;
654655
#define YYFALLBACK 1
655656
#define YYNSTATE 164
656
-#define YYNRULE 154
657
-#define YYNRULE_WITH_ACTION 114
658
-#define YYNTOKEN 97
657
+#define YYNRULE 155
658
+#define YYNRULE_WITH_ACTION 115
659
+#define YYNTOKEN 98
659660
#define YY_MAX_SHIFT 163
660
-#define YY_MIN_SHIFTREDUCE 285
661
-#define YY_MAX_SHIFTREDUCE 438
662
-#define YY_ERROR_ACTION 439
663
-#define YY_ACCEPT_ACTION 440
664
-#define YY_NO_ACTION 441
665
-#define YY_MIN_REDUCE 442
666
-#define YY_MAX_REDUCE 595
661
+#define YY_MIN_SHIFTREDUCE 286
662
+#define YY_MAX_SHIFTREDUCE 440
663
+#define YY_ERROR_ACTION 441
664
+#define YY_ACCEPT_ACTION 442
665
+#define YY_NO_ACTION 443
666
+#define YY_MIN_REDUCE 444
667
+#define YY_MAX_REDUCE 598
667668
/************* End control #defines *******************************************/
668669
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
669670
670671
/* Define the yytestcase() macro to be a no-op if is not already defined
671672
** otherwise.
@@ -728,324 +729,333 @@
728729
** yy_reduce_ofst[] For each state, the offset into yy_action for
729730
** shifting non-terminals after a reduce.
730731
** yy_default[] Default action for each state.
731732
**
732733
*********** Begin parsing tables **********************************************/
733
-#define YY_ACTTAB_COUNT (1223)
734
+#define YY_ACTTAB_COUNT (1263)
734735
static const YYACTIONTYPE yy_action[] = {
735
- /* 0 */ 569, 491, 161, 119, 25, 448, 29, 74, 129, 148,
736
- /* 10 */ 569, 488, 161, 119, 449, 113, 120, 161, 119, 525,
737
- /* 20 */ 423, 424, 337, 553, 81, 36, 554, 555, 569, 64,
738
- /* 30 */ 63, 62, 61, 320, 321, 9, 8, 33, 149, 32,
739
- /* 40 */ 7, 71, 127, 308, 333, 66, 523, 161, 119, 337,
740
- /* 50 */ 337, 337, 337, 421, 422, 338, 339, 340, 341, 342,
741
- /* 60 */ 343, 344, 345, 470, 64, 63, 62, 61, 311, 28,
742
- /* 70 */ 73, 304, 148, 470, 528, 161, 119, 112, 113, 120,
743
- /* 80 */ 161, 119, 128, 423, 424, 337, 354, 81, 526, 161,
744
- /* 90 */ 119, 470, 374, 158, 13, 30, 320, 321, 9, 8,
745
- /* 100 */ 33, 149, 32, 7, 71, 127, 372, 333, 66, 573,
746
- /* 110 */ 328, 31, 337, 337, 337, 337, 421, 422, 338, 339,
747
- /* 120 */ 340, 341, 342, 343, 344, 345, 390, 431, 326, 59,
748
- /* 130 */ 60, 407, 408, 409, 410, 374, 158, 372, 35, 390,
749
- /* 140 */ 2, 38, 59, 60, 48, 37, 46, 162, 442, 80,
750
- /* 150 */ 372, 306, 79, 42, 118, 83, 437, 436, 36, 390,
751
- /* 160 */ 431, 84, 59, 60, 47, 297, 571, 77, 571, 122,
752
- /* 170 */ 372, 296, 390, 2, 108, 59, 60, 76, 156, 156,
753
- /* 180 */ 156, 3, 117, 372, 132, 130, 42, 69, 430, 437,
754
- /* 190 */ 436, 4, 390, 431, 67, 59, 60, 118, 64, 63,
755
- /* 200 */ 62, 61, 5, 372, 6, 106, 2, 432, 433, 434,
756
- /* 210 */ 435, 387, 1, 117, 389, 155, 154, 153, 106, 49,
757
- /* 220 */ 420, 430, 437, 436, 107, 65, 117, 389, 155, 154,
758
- /* 230 */ 153, 54, 51, 120, 161, 119, 419, 459, 106, 131,
759
- /* 240 */ 432, 433, 434, 435, 78, 78, 117, 389, 155, 154,
760
- /* 250 */ 153, 106, 393, 390, 430, 152, 59, 60, 11, 117,
761
- /* 260 */ 389, 155, 154, 153, 102, 376, 157, 42, 394, 395,
762
- /* 270 */ 69, 106, 353, 432, 433, 434, 435, 375, 159, 117,
763
- /* 280 */ 389, 155, 154, 153, 142, 140, 64, 63, 62, 61,
764
- /* 290 */ 12, 64, 63, 62, 61, 62, 61, 428, 45, 138,
765
- /* 300 */ 139, 142, 140, 64, 63, 62, 61, 55, 64, 63,
766
- /* 310 */ 62, 61, 426, 147, 146, 390, 387, 44, 59, 60,
767
- /* 320 */ 43, 295, 15, 14, 55, 16, 102, 18, 19, 42,
768
- /* 330 */ 147, 146, 106, 20, 299, 300, 301, 43, 303, 68,
769
- /* 340 */ 117, 389, 155, 154, 153, 444, 450, 29, 22, 21,
770
- /* 350 */ 114, 446, 356, 23, 26, 57, 24, 58, 145, 141,
771
- /* 360 */ 427, 388, 163, 380, 373, 22, 21, 27, 160, 378,
772
- /* 370 */ 70, 379, 39, 24, 441, 145, 141, 427, 142, 140,
773
- /* 380 */ 64, 63, 62, 61, 347, 347, 347, 347, 347, 347,
774
- /* 390 */ 347, 347, 347, 347, 106, 441, 441, 64, 63, 62,
775
- /* 400 */ 61, 55, 117, 389, 155, 154, 153, 147, 146, 399,
776
- /* 410 */ 387, 441, 441, 441, 43, 441, 441, 441, 52, 441,
777
- /* 420 */ 133, 441, 126, 441, 441, 441, 123, 441, 400, 401,
778
- /* 430 */ 402, 404, 80, 441, 306, 79, 441, 407, 408, 409,
779
- /* 440 */ 410, 441, 22, 21, 390, 441, 441, 59, 60, 441,
780
- /* 450 */ 24, 441, 145, 141, 427, 372, 441, 441, 42, 441,
781
- /* 460 */ 441, 441, 441, 156, 156, 156, 390, 469, 441, 59,
782
- /* 470 */ 60, 390, 143, 441, 59, 60, 441, 372, 441, 529,
783
- /* 480 */ 42, 441, 372, 441, 441, 42, 441, 390, 144, 441,
784
- /* 490 */ 59, 60, 441, 390, 441, 441, 59, 60, 372, 441,
785
- /* 500 */ 441, 42, 441, 469, 372, 88, 390, 40, 441, 59,
786
- /* 510 */ 60, 441, 441, 441, 120, 161, 119, 372, 529, 441,
787
- /* 520 */ 41, 82, 441, 106, 529, 441, 441, 529, 462, 441,
788
- /* 530 */ 34, 117, 389, 155, 154, 153, 152, 85, 64, 63,
789
- /* 540 */ 62, 61, 441, 441, 441, 106, 120, 161, 119, 441,
790
- /* 550 */ 106, 441, 441, 117, 389, 155, 154, 153, 117, 389,
791
- /* 560 */ 155, 154, 153, 441, 441, 441, 106, 441, 152, 17,
792
- /* 570 */ 441, 441, 106, 441, 117, 389, 155, 154, 153, 431,
793
- /* 580 */ 117, 389, 155, 154, 153, 106, 441, 423, 424, 337,
794
- /* 590 */ 441, 441, 86, 117, 389, 155, 154, 153, 441, 441,
795
- /* 600 */ 441, 120, 161, 119, 121, 443, 450, 29, 437, 436,
796
- /* 610 */ 441, 446, 64, 63, 62, 61, 337, 337, 337, 337,
797
- /* 620 */ 421, 422, 163, 152, 441, 75, 440, 27, 109, 443,
798
- /* 630 */ 450, 29, 441, 50, 74, 446, 148, 441, 441, 441,
799
- /* 640 */ 430, 124, 113, 120, 161, 119, 163, 72, 441, 148,
800
- /* 650 */ 441, 27, 431, 441, 125, 113, 120, 161, 119, 432,
801
- /* 660 */ 433, 434, 435, 441, 74, 149, 148, 64, 63, 62,
802
- /* 670 */ 61, 493, 113, 120, 161, 119, 441, 74, 149, 148,
803
- /* 680 */ 352, 437, 436, 441, 492, 113, 120, 161, 119, 74,
804
- /* 690 */ 441, 148, 441, 441, 98, 149, 486, 113, 120, 161,
805
- /* 700 */ 119, 441, 441, 120, 161, 119, 441, 74, 149, 148,
806
- /* 710 */ 441, 441, 441, 430, 480, 113, 120, 161, 119, 74,
807
- /* 720 */ 149, 148, 441, 441, 441, 152, 479, 113, 120, 161,
808
- /* 730 */ 119, 88, 432, 433, 434, 435, 441, 441, 149, 441,
809
- /* 740 */ 120, 161, 119, 441, 74, 441, 148, 110, 110, 441,
810
- /* 750 */ 149, 476, 113, 120, 161, 119, 74, 441, 148, 107,
811
- /* 760 */ 441, 441, 152, 134, 113, 120, 161, 119, 120, 161,
812
- /* 770 */ 119, 441, 459, 441, 74, 149, 148, 441, 441, 441,
813
- /* 780 */ 563, 512, 113, 120, 161, 119, 74, 149, 148, 441,
814
- /* 790 */ 152, 441, 441, 137, 113, 120, 161, 119, 441, 74,
815
- /* 800 */ 441, 148, 441, 441, 441, 149, 520, 113, 120, 161,
816
- /* 810 */ 119, 74, 441, 148, 441, 441, 88, 149, 522, 113,
817
- /* 820 */ 120, 161, 119, 441, 441, 120, 161, 119, 441, 74,
818
- /* 830 */ 149, 148, 111, 111, 441, 441, 519, 113, 120, 161,
819
- /* 840 */ 119, 441, 149, 441, 441, 441, 74, 152, 148, 441,
820
- /* 850 */ 441, 441, 88, 521, 113, 120, 161, 119, 441, 441,
821
- /* 860 */ 149, 120, 161, 119, 441, 74, 441, 148, 471, 441,
822
- /* 870 */ 441, 441, 518, 113, 120, 161, 119, 149, 74, 441,
823
- /* 880 */ 148, 441, 441, 152, 441, 517, 113, 120, 161, 119,
824
- /* 890 */ 74, 441, 148, 441, 441, 441, 149, 516, 113, 120,
825
- /* 900 */ 161, 119, 441, 74, 441, 148, 441, 441, 441, 149,
826
- /* 910 */ 515, 113, 120, 161, 119, 74, 441, 148, 89, 441,
827
- /* 920 */ 441, 149, 514, 113, 120, 161, 119, 120, 161, 119,
828
- /* 930 */ 441, 74, 441, 148, 149, 441, 441, 441, 150, 113,
829
- /* 940 */ 120, 161, 119, 441, 441, 441, 149, 441, 74, 152,
830
- /* 950 */ 148, 441, 441, 441, 90, 151, 113, 120, 161, 119,
831
- /* 960 */ 441, 441, 149, 120, 161, 119, 441, 74, 441, 148,
832
- /* 970 */ 64, 63, 62, 61, 136, 113, 120, 161, 119, 149,
833
- /* 980 */ 74, 441, 148, 351, 441, 152, 441, 135, 113, 120,
834
- /* 990 */ 161, 119, 88, 64, 63, 62, 61, 441, 149, 441,
835
- /* 1000 */ 441, 120, 161, 119, 441, 107, 392, 10, 475, 475,
836
- /* 1010 */ 441, 149, 441, 441, 120, 161, 119, 107, 474, 64,
837
- /* 1020 */ 63, 62, 61, 152, 87, 441, 120, 161, 119, 99,
838
- /* 1030 */ 447, 441, 391, 120, 161, 119, 152, 441, 120, 161,
839
- /* 1040 */ 119, 100, 441, 441, 64, 63, 62, 61, 152, 441,
840
- /* 1050 */ 120, 161, 119, 441, 441, 152, 101, 387, 441, 91,
841
- /* 1060 */ 152, 441, 441, 441, 103, 120, 161, 119, 120, 161,
842
- /* 1070 */ 119, 92, 152, 120, 161, 119, 441, 441, 441, 441,
843
- /* 1080 */ 120, 161, 119, 441, 441, 441, 441, 152, 441, 93,
844
- /* 1090 */ 152, 441, 441, 441, 104, 152, 441, 441, 120, 161,
845
- /* 1100 */ 119, 441, 152, 120, 161, 119, 441, 94, 441, 441,
846
- /* 1110 */ 441, 441, 441, 105, 441, 441, 120, 161, 119, 95,
847
- /* 1120 */ 152, 441, 120, 161, 119, 152, 96, 441, 120, 161,
848
- /* 1130 */ 119, 97, 441, 441, 441, 120, 161, 119, 152, 441,
849
- /* 1140 */ 120, 161, 119, 543, 152, 441, 441, 441, 441, 441,
850
- /* 1150 */ 152, 441, 120, 161, 119, 441, 441, 152, 542, 441,
851
- /* 1160 */ 441, 541, 152, 441, 441, 441, 540, 120, 161, 119,
852
- /* 1170 */ 120, 161, 119, 115, 152, 120, 161, 119, 64, 63,
853
- /* 1180 */ 62, 61, 120, 161, 119, 64, 63, 62, 61, 152,
854
- /* 1190 */ 441, 116, 152, 441, 441, 441, 441, 152, 441, 53,
855
- /* 1200 */ 120, 161, 119, 441, 152, 441, 56, 441, 441, 441,
856
- /* 1210 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
857
- /* 1220 */ 441, 441, 152,
736
+ /* 0 */ 572, 493, 161, 119, 25, 450, 29, 74, 129, 148,
737
+ /* 10 */ 572, 490, 161, 119, 451, 113, 120, 161, 119, 528,
738
+ /* 20 */ 425, 426, 338, 556, 81, 30, 557, 558, 572, 64,
739
+ /* 30 */ 63, 62, 61, 321, 322, 9, 8, 33, 149, 32,
740
+ /* 40 */ 7, 71, 127, 38, 334, 66, 48, 37, 28, 338,
741
+ /* 50 */ 338, 338, 338, 423, 424, 339, 340, 341, 342, 343,
742
+ /* 60 */ 344, 345, 346, 347, 472, 526, 161, 119, 574, 77,
743
+ /* 70 */ 574, 73, 374, 148, 472, 531, 161, 119, 112, 113,
744
+ /* 80 */ 120, 161, 119, 128, 425, 426, 338, 305, 81, 376,
745
+ /* 90 */ 158, 76, 472, 529, 161, 119, 31, 321, 322, 9,
746
+ /* 100 */ 8, 33, 149, 32, 7, 71, 127, 329, 334, 66,
747
+ /* 110 */ 576, 83, 36, 338, 338, 338, 338, 423, 424, 339,
748
+ /* 120 */ 340, 341, 342, 343, 344, 345, 346, 347, 392, 433,
749
+ /* 130 */ 309, 59, 60, 409, 410, 411, 412, 107, 84, 374,
750
+ /* 140 */ 65, 108, 2, 46, 401, 162, 120, 161, 119, 117,
751
+ /* 150 */ 476, 80, 118, 307, 79, 133, 35, 126, 439, 438,
752
+ /* 160 */ 298, 123, 122, 402, 403, 404, 406, 80, 152, 307,
753
+ /* 170 */ 79, 327, 409, 410, 411, 412, 392, 54, 51, 59,
754
+ /* 180 */ 60, 64, 63, 62, 61, 312, 3, 102, 378, 157,
755
+ /* 190 */ 42, 432, 446, 452, 29, 300, 301, 302, 448, 304,
756
+ /* 200 */ 62, 61, 64, 63, 62, 61, 297, 47, 106, 163,
757
+ /* 210 */ 434, 435, 436, 437, 27, 389, 117, 391, 155, 154,
758
+ /* 220 */ 153, 392, 433, 49, 59, 60, 64, 63, 62, 61,
759
+ /* 230 */ 532, 69, 374, 396, 397, 2, 376, 158, 356, 296,
760
+ /* 240 */ 156, 156, 156, 67, 392, 433, 13, 59, 60, 4,
761
+ /* 250 */ 107, 439, 438, 377, 159, 374, 106, 5, 2, 120,
762
+ /* 260 */ 161, 119, 131, 449, 117, 391, 155, 154, 153, 392,
763
+ /* 270 */ 532, 6, 59, 60, 439, 438, 532, 444, 422, 532,
764
+ /* 280 */ 374, 152, 421, 42, 432, 1, 395, 36, 156, 156,
765
+ /* 290 */ 156, 11, 12, 355, 64, 63, 62, 61, 430, 118,
766
+ /* 300 */ 14, 106, 138, 434, 435, 436, 437, 432, 428, 117,
767
+ /* 310 */ 391, 155, 154, 153, 16, 69, 142, 140, 64, 63,
768
+ /* 320 */ 62, 61, 139, 18, 106, 15, 434, 435, 436, 437,
769
+ /* 330 */ 45, 44, 117, 391, 155, 154, 153, 358, 19, 55,
770
+ /* 340 */ 64, 63, 62, 61, 20, 147, 146, 68, 114, 106,
771
+ /* 350 */ 23, 382, 43, 26, 425, 426, 338, 117, 391, 155,
772
+ /* 360 */ 154, 153, 392, 57, 58, 59, 60, 390, 380, 375,
773
+ /* 370 */ 381, 17, 160, 374, 70, 39, 42, 443, 443, 443,
774
+ /* 380 */ 443, 22, 21, 338, 338, 338, 338, 423, 424, 24,
775
+ /* 390 */ 443, 145, 141, 429, 142, 140, 64, 63, 62, 61,
776
+ /* 400 */ 392, 471, 443, 59, 60, 443, 443, 132, 130, 389,
777
+ /* 410 */ 443, 374, 443, 443, 42, 443, 443, 55, 443, 64,
778
+ /* 420 */ 63, 62, 61, 147, 146, 392, 143, 443, 59, 60,
779
+ /* 430 */ 43, 443, 389, 443, 443, 443, 374, 471, 443, 42,
780
+ /* 440 */ 52, 443, 106, 443, 392, 144, 443, 59, 60, 443,
781
+ /* 450 */ 117, 391, 155, 154, 153, 374, 443, 443, 42, 22,
782
+ /* 460 */ 21, 121, 445, 452, 29, 443, 443, 24, 448, 145,
783
+ /* 470 */ 141, 429, 142, 140, 64, 63, 62, 61, 443, 163,
784
+ /* 480 */ 106, 443, 392, 442, 27, 59, 60, 443, 117, 391,
785
+ /* 490 */ 155, 154, 153, 374, 443, 55, 42, 443, 443, 443,
786
+ /* 500 */ 443, 147, 146, 443, 443, 106, 443, 392, 43, 443,
787
+ /* 510 */ 59, 60, 443, 117, 391, 155, 154, 153, 102, 443,
788
+ /* 520 */ 74, 42, 148, 443, 106, 443, 443, 124, 113, 120,
789
+ /* 530 */ 161, 119, 117, 391, 155, 154, 153, 22, 21, 392,
790
+ /* 540 */ 443, 443, 59, 60, 443, 24, 443, 145, 141, 429,
791
+ /* 550 */ 374, 149, 392, 40, 443, 59, 60, 443, 85, 443,
792
+ /* 560 */ 443, 443, 106, 374, 443, 443, 41, 120, 161, 119,
793
+ /* 570 */ 117, 391, 155, 154, 153, 349, 349, 349, 349, 349,
794
+ /* 580 */ 349, 349, 349, 349, 349, 443, 443, 106, 443, 152,
795
+ /* 590 */ 443, 443, 88, 443, 443, 117, 391, 155, 154, 153,
796
+ /* 600 */ 443, 120, 161, 119, 72, 443, 148, 10, 477, 477,
797
+ /* 610 */ 443, 125, 113, 120, 161, 119, 443, 443, 443, 106,
798
+ /* 620 */ 443, 443, 433, 152, 443, 443, 443, 117, 391, 155,
799
+ /* 630 */ 154, 153, 106, 443, 443, 149, 64, 63, 62, 61,
800
+ /* 640 */ 117, 391, 155, 154, 153, 443, 74, 443, 148, 354,
801
+ /* 650 */ 107, 439, 438, 495, 113, 120, 161, 119, 443, 120,
802
+ /* 660 */ 161, 119, 443, 461, 443, 74, 443, 148, 75, 443,
803
+ /* 670 */ 78, 78, 494, 113, 120, 161, 119, 149, 74, 443,
804
+ /* 680 */ 148, 152, 443, 443, 432, 488, 113, 120, 161, 119,
805
+ /* 690 */ 74, 443, 148, 443, 443, 443, 149, 482, 113, 120,
806
+ /* 700 */ 161, 119, 88, 434, 435, 436, 437, 443, 443, 149,
807
+ /* 710 */ 443, 120, 161, 119, 443, 74, 443, 148, 110, 110,
808
+ /* 720 */ 443, 149, 481, 113, 120, 161, 119, 443, 443, 443,
809
+ /* 730 */ 74, 443, 148, 152, 443, 443, 443, 478, 113, 120,
810
+ /* 740 */ 161, 119, 443, 74, 443, 148, 149, 443, 443, 443,
811
+ /* 750 */ 134, 113, 120, 161, 119, 74, 443, 148, 443, 443,
812
+ /* 760 */ 443, 149, 515, 113, 120, 161, 119, 443, 74, 443,
813
+ /* 770 */ 148, 443, 443, 443, 149, 137, 113, 120, 161, 119,
814
+ /* 780 */ 74, 443, 148, 443, 443, 443, 149, 523, 113, 120,
815
+ /* 790 */ 161, 119, 443, 74, 443, 148, 443, 443, 443, 149,
816
+ /* 800 */ 525, 113, 120, 161, 119, 443, 74, 443, 148, 443,
817
+ /* 810 */ 443, 149, 443, 522, 113, 120, 161, 119, 74, 443,
818
+ /* 820 */ 148, 86, 443, 443, 149, 524, 113, 120, 161, 119,
819
+ /* 830 */ 120, 161, 119, 74, 443, 148, 443, 149, 443, 443,
820
+ /* 840 */ 521, 113, 120, 161, 119, 443, 74, 443, 148, 149,
821
+ /* 850 */ 443, 443, 152, 520, 113, 120, 161, 119, 74, 443,
822
+ /* 860 */ 148, 443, 443, 443, 149, 519, 113, 120, 161, 119,
823
+ /* 870 */ 443, 74, 443, 148, 443, 443, 443, 149, 518, 113,
824
+ /* 880 */ 120, 161, 119, 74, 443, 148, 443, 443, 443, 149,
825
+ /* 890 */ 517, 113, 120, 161, 119, 433, 74, 443, 148, 443,
826
+ /* 900 */ 443, 443, 149, 150, 113, 120, 161, 119, 443, 74,
827
+ /* 910 */ 443, 148, 443, 443, 149, 443, 151, 113, 120, 161,
828
+ /* 920 */ 119, 74, 443, 148, 439, 438, 443, 149, 136, 113,
829
+ /* 930 */ 120, 161, 119, 443, 443, 443, 74, 443, 148, 443,
830
+ /* 940 */ 149, 443, 443, 135, 113, 120, 161, 119, 443, 88,
831
+ /* 950 */ 443, 443, 149, 443, 443, 443, 443, 432, 120, 161,
832
+ /* 960 */ 119, 443, 443, 443, 443, 82, 443, 149, 443, 443,
833
+ /* 970 */ 443, 443, 464, 443, 34, 443, 434, 435, 436, 437,
834
+ /* 980 */ 152, 107, 109, 445, 452, 29, 443, 443, 443, 448,
835
+ /* 990 */ 120, 161, 119, 443, 461, 443, 443, 88, 443, 443,
836
+ /* 1000 */ 163, 443, 566, 443, 443, 27, 120, 161, 119, 88,
837
+ /* 1010 */ 443, 443, 152, 111, 111, 443, 443, 443, 120, 161,
838
+ /* 1020 */ 119, 98, 443, 443, 89, 473, 443, 90, 152, 443,
839
+ /* 1030 */ 120, 161, 119, 120, 161, 119, 120, 161, 119, 87,
840
+ /* 1040 */ 152, 443, 443, 64, 63, 62, 61, 443, 120, 161,
841
+ /* 1050 */ 119, 443, 152, 443, 443, 152, 443, 443, 152, 443,
842
+ /* 1060 */ 443, 443, 99, 443, 50, 443, 443, 443, 100, 443,
843
+ /* 1070 */ 152, 120, 161, 119, 443, 101, 443, 120, 161, 119,
844
+ /* 1080 */ 91, 443, 443, 443, 120, 161, 119, 103, 443, 120,
845
+ /* 1090 */ 161, 119, 92, 152, 443, 443, 120, 161, 119, 152,
846
+ /* 1100 */ 443, 120, 161, 119, 443, 93, 152, 443, 443, 443,
847
+ /* 1110 */ 104, 152, 443, 443, 120, 161, 119, 94, 152, 120,
848
+ /* 1120 */ 161, 119, 105, 152, 443, 443, 120, 161, 119, 443,
849
+ /* 1130 */ 443, 120, 161, 119, 95, 443, 152, 443, 443, 443,
850
+ /* 1140 */ 96, 152, 443, 120, 161, 119, 443, 443, 152, 120,
851
+ /* 1150 */ 161, 119, 97, 152, 443, 443, 443, 443, 546, 443,
852
+ /* 1160 */ 443, 120, 161, 119, 443, 152, 443, 120, 161, 119,
853
+ /* 1170 */ 443, 152, 443, 443, 443, 545, 443, 443, 443, 443,
854
+ /* 1180 */ 443, 544, 443, 152, 120, 161, 119, 543, 443, 152,
855
+ /* 1190 */ 120, 161, 119, 115, 443, 443, 120, 161, 119, 116,
856
+ /* 1200 */ 443, 443, 120, 161, 119, 443, 152, 443, 120, 161,
857
+ /* 1210 */ 119, 443, 152, 64, 63, 62, 61, 443, 152, 64,
858
+ /* 1220 */ 63, 62, 61, 443, 152, 443, 353, 443, 443, 443,
859
+ /* 1230 */ 152, 64, 63, 62, 61, 64, 63, 62, 61, 443,
860
+ /* 1240 */ 53, 443, 443, 443, 394, 64, 63, 62, 61, 64,
861
+ /* 1250 */ 63, 62, 61, 443, 443, 443, 56, 443, 393, 443,
862
+ /* 1260 */ 443, 443, 389,
858863
};
859864
static const YYCODETYPE yy_lookahead[] = {
860
- /* 0 */ 0, 110, 111, 112, 131, 99, 100, 101, 103, 103,
861
- /* 10 */ 10, 110, 111, 112, 108, 109, 110, 111, 112, 103,
862
- /* 20 */ 20, 21, 22, 102, 24, 10, 105, 106, 28, 4,
863
- /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 132, 39,
864
- /* 40 */ 40, 41, 42, 28, 44, 45, 110, 111, 112, 49,
865
+ /* 0 */ 0, 111, 112, 113, 132, 100, 101, 102, 104, 104,
866
+ /* 10 */ 10, 111, 112, 113, 109, 110, 111, 112, 113, 104,
867
+ /* 20 */ 20, 21, 22, 103, 24, 124, 106, 107, 28, 4,
868
+ /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 133, 39,
869
+ /* 40 */ 40, 41, 42, 103, 44, 45, 106, 107, 105, 49,
865870
/* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
866
- /* 60 */ 60, 61, 62, 0, 4, 5, 6, 7, 8, 104,
867
- /* 70 */ 101, 25, 103, 10, 110, 111, 112, 108, 109, 110,
868
- /* 80 */ 111, 112, 103, 20, 21, 22, 17, 24, 110, 111,
869
- /* 90 */ 112, 28, 26, 27, 25, 123, 33, 34, 35, 36,
870
- /* 100 */ 37, 132, 39, 40, 41, 42, 12, 44, 45, 130,
871
- /* 110 */ 2, 125, 49, 50, 51, 52, 53, 54, 55, 56,
872
- /* 120 */ 57, 58, 59, 60, 61, 62, 1, 2, 2, 4,
873
- /* 130 */ 5, 29, 30, 31, 32, 26, 27, 12, 126, 1,
874
- /* 140 */ 15, 102, 4, 5, 105, 106, 38, 81, 0, 24,
875
- /* 150 */ 12, 26, 27, 15, 88, 113, 31, 32, 10, 1,
876
- /* 160 */ 2, 113, 4, 5, 38, 19, 127, 128, 129, 1,
877
- /* 170 */ 12, 17, 1, 15, 80, 4, 5, 48, 20, 21,
878
- /* 180 */ 22, 16, 88, 12, 46, 47, 15, 3, 63, 31,
879
- /* 190 */ 32, 15, 1, 2, 43, 4, 5, 88, 4, 5,
880
- /* 200 */ 6, 7, 40, 12, 40, 80, 15, 82, 83, 84,
881
- /* 210 */ 85, 17, 13, 88, 89, 90, 91, 92, 80, 25,
882
- /* 220 */ 41, 63, 31, 32, 101, 96, 88, 89, 90, 91,
883
- /* 230 */ 92, 4, 5, 110, 111, 112, 41, 114, 80, 47,
884
- /* 240 */ 82, 83, 84, 85, 121, 122, 88, 89, 90, 91,
885
- /* 250 */ 92, 80, 17, 1, 63, 132, 4, 5, 25, 88,
886
- /* 260 */ 89, 90, 91, 92, 12, 26, 27, 15, 94, 95,
887
- /* 270 */ 86, 80, 17, 82, 83, 84, 85, 26, 27, 88,
888
- /* 280 */ 89, 90, 91, 92, 2, 3, 4, 5, 6, 7,
889
- /* 290 */ 73, 4, 5, 6, 7, 6, 7, 78, 16, 77,
890
- /* 300 */ 79, 2, 3, 4, 5, 6, 7, 25, 4, 5,
891
- /* 310 */ 6, 7, 78, 31, 32, 1, 17, 38, 4, 5,
892
- /* 320 */ 38, 17, 35, 3, 25, 3, 12, 3, 3, 15,
893
- /* 330 */ 31, 32, 80, 3, 20, 21, 22, 38, 24, 3,
894
- /* 340 */ 88, 89, 90, 91, 92, 98, 99, 100, 66, 67,
895
- /* 350 */ 93, 104, 75, 25, 15, 15, 74, 15, 76, 77,
896
- /* 360 */ 78, 17, 115, 28, 12, 66, 67, 120, 87, 28,
897
- /* 370 */ 3, 28, 11, 74, 133, 76, 77, 78, 2, 3,
898
- /* 380 */ 4, 5, 6, 7, 63, 64, 65, 66, 67, 68,
899
- /* 390 */ 69, 70, 71, 72, 80, 133, 133, 4, 5, 6,
900
- /* 400 */ 7, 25, 88, 89, 90, 91, 92, 31, 32, 1,
901
- /* 410 */ 17, 133, 133, 133, 38, 133, 133, 133, 25, 133,
902
- /* 420 */ 12, 133, 14, 133, 133, 133, 18, 133, 20, 21,
903
- /* 430 */ 22, 23, 24, 133, 26, 27, 133, 29, 30, 31,
904
- /* 440 */ 32, 133, 66, 67, 1, 133, 133, 4, 5, 133,
905
- /* 450 */ 74, 133, 76, 77, 78, 12, 133, 133, 15, 133,
906
- /* 460 */ 133, 133, 133, 20, 21, 22, 1, 2, 133, 4,
907
- /* 470 */ 5, 1, 2, 133, 4, 5, 133, 12, 133, 48,
908
- /* 480 */ 15, 133, 12, 133, 133, 15, 133, 1, 2, 133,
909
- /* 490 */ 4, 5, 133, 1, 133, 133, 4, 5, 12, 133,
910
- /* 500 */ 133, 15, 133, 38, 12, 101, 1, 15, 133, 4,
911
- /* 510 */ 5, 133, 133, 133, 110, 111, 112, 12, 87, 133,
912
- /* 520 */ 15, 117, 133, 80, 93, 133, 133, 96, 124, 133,
913
- /* 530 */ 126, 88, 89, 90, 91, 92, 132, 101, 4, 5,
914
- /* 540 */ 6, 7, 133, 133, 133, 80, 110, 111, 112, 133,
915
- /* 550 */ 80, 133, 133, 88, 89, 90, 91, 92, 88, 89,
916
- /* 560 */ 90, 91, 92, 133, 133, 133, 80, 133, 132, 35,
917
- /* 570 */ 133, 133, 80, 133, 88, 89, 90, 91, 92, 2,
918
- /* 580 */ 88, 89, 90, 91, 92, 80, 133, 20, 21, 22,
919
- /* 590 */ 133, 133, 101, 88, 89, 90, 91, 92, 133, 133,
920
- /* 600 */ 133, 110, 111, 112, 97, 98, 99, 100, 31, 32,
921
- /* 610 */ 133, 104, 4, 5, 6, 7, 49, 50, 51, 52,
922
- /* 620 */ 53, 54, 115, 132, 133, 48, 119, 120, 97, 98,
923
- /* 630 */ 99, 100, 133, 25, 101, 104, 103, 133, 133, 133,
924
- /* 640 */ 63, 108, 109, 110, 111, 112, 115, 101, 133, 103,
925
- /* 650 */ 133, 120, 2, 133, 108, 109, 110, 111, 112, 82,
926
- /* 660 */ 83, 84, 85, 133, 101, 132, 103, 4, 5, 6,
927
- /* 670 */ 7, 108, 109, 110, 111, 112, 133, 101, 132, 103,
928
- /* 680 */ 17, 31, 32, 133, 108, 109, 110, 111, 112, 101,
929
- /* 690 */ 133, 103, 133, 133, 101, 132, 108, 109, 110, 111,
930
- /* 700 */ 112, 133, 133, 110, 111, 112, 133, 101, 132, 103,
931
- /* 710 */ 133, 133, 133, 63, 108, 109, 110, 111, 112, 101,
932
- /* 720 */ 132, 103, 133, 133, 133, 132, 108, 109, 110, 111,
933
- /* 730 */ 112, 101, 82, 83, 84, 85, 133, 133, 132, 133,
934
- /* 740 */ 110, 111, 112, 133, 101, 133, 103, 117, 118, 133,
935
- /* 750 */ 132, 108, 109, 110, 111, 112, 101, 133, 103, 101,
936
- /* 760 */ 133, 133, 132, 108, 109, 110, 111, 112, 110, 111,
937
- /* 770 */ 112, 133, 114, 133, 101, 132, 103, 133, 133, 133,
938
- /* 780 */ 122, 108, 109, 110, 111, 112, 101, 132, 103, 133,
939
- /* 790 */ 132, 133, 133, 108, 109, 110, 111, 112, 133, 101,
940
- /* 800 */ 133, 103, 133, 133, 133, 132, 108, 109, 110, 111,
941
- /* 810 */ 112, 101, 133, 103, 133, 133, 101, 132, 108, 109,
942
- /* 820 */ 110, 111, 112, 133, 133, 110, 111, 112, 133, 101,
943
- /* 830 */ 132, 103, 117, 118, 133, 133, 108, 109, 110, 111,
944
- /* 840 */ 112, 133, 132, 133, 133, 133, 101, 132, 103, 133,
945
- /* 850 */ 133, 133, 101, 108, 109, 110, 111, 112, 133, 133,
946
- /* 860 */ 132, 110, 111, 112, 133, 101, 133, 103, 117, 133,
947
- /* 870 */ 133, 133, 108, 109, 110, 111, 112, 132, 101, 133,
948
- /* 880 */ 103, 133, 133, 132, 133, 108, 109, 110, 111, 112,
949
- /* 890 */ 101, 133, 103, 133, 133, 133, 132, 108, 109, 110,
950
- /* 900 */ 111, 112, 133, 101, 133, 103, 133, 133, 133, 132,
951
- /* 910 */ 108, 109, 110, 111, 112, 101, 133, 103, 101, 133,
952
- /* 920 */ 133, 132, 108, 109, 110, 111, 112, 110, 111, 112,
953
- /* 930 */ 133, 101, 133, 103, 132, 133, 133, 133, 108, 109,
954
- /* 940 */ 110, 111, 112, 133, 133, 133, 132, 133, 101, 132,
955
- /* 950 */ 103, 133, 133, 133, 101, 108, 109, 110, 111, 112,
956
- /* 960 */ 133, 133, 132, 110, 111, 112, 133, 101, 133, 103,
957
- /* 970 */ 4, 5, 6, 7, 108, 109, 110, 111, 112, 132,
958
- /* 980 */ 101, 133, 103, 17, 133, 132, 133, 108, 109, 110,
959
- /* 990 */ 111, 112, 101, 4, 5, 6, 7, 133, 132, 133,
960
- /* 1000 */ 133, 110, 111, 112, 133, 101, 17, 116, 117, 118,
961
- /* 1010 */ 133, 132, 133, 133, 110, 111, 112, 101, 114, 4,
962
- /* 1020 */ 5, 6, 7, 132, 101, 133, 110, 111, 112, 101,
963
- /* 1030 */ 114, 133, 17, 110, 111, 112, 132, 133, 110, 111,
964
- /* 1040 */ 112, 101, 133, 133, 4, 5, 6, 7, 132, 133,
965
- /* 1050 */ 110, 111, 112, 133, 133, 132, 101, 17, 133, 101,
966
- /* 1060 */ 132, 133, 133, 133, 101, 110, 111, 112, 110, 111,
967
- /* 1070 */ 112, 101, 132, 110, 111, 112, 133, 133, 133, 133,
968
- /* 1080 */ 110, 111, 112, 133, 133, 133, 133, 132, 133, 101,
969
- /* 1090 */ 132, 133, 133, 133, 101, 132, 133, 133, 110, 111,
970
- /* 1100 */ 112, 133, 132, 110, 111, 112, 133, 101, 133, 133,
971
- /* 1110 */ 133, 133, 133, 101, 133, 133, 110, 111, 112, 101,
972
- /* 1120 */ 132, 133, 110, 111, 112, 132, 101, 133, 110, 111,
973
- /* 1130 */ 112, 101, 133, 133, 133, 110, 111, 112, 132, 133,
974
- /* 1140 */ 110, 111, 112, 101, 132, 133, 133, 133, 133, 133,
975
- /* 1150 */ 132, 133, 110, 111, 112, 133, 133, 132, 101, 133,
976
- /* 1160 */ 133, 101, 132, 133, 133, 133, 101, 110, 111, 112,
977
- /* 1170 */ 110, 111, 112, 101, 132, 110, 111, 112, 4, 5,
978
- /* 1180 */ 6, 7, 110, 111, 112, 4, 5, 6, 7, 132,
979
- /* 1190 */ 133, 101, 132, 133, 133, 133, 133, 132, 133, 25,
980
- /* 1200 */ 110, 111, 112, 133, 132, 133, 25, 133, 133, 133,
981
- /* 1210 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
982
- /* 1220 */ 133, 133, 132, 133, 133, 133, 133, 133, 133, 133,
983
- /* 1230 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
984
- /* 1240 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
985
- /* 1250 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
986
- /* 1260 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
987
- /* 1270 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
988
- /* 1280 */ 133, 133, 133, 97, 97, 97, 97, 97, 97, 97,
989
- /* 1290 */ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
990
- /* 1300 */ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
991
- /* 1310 */ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
871
+ /* 60 */ 60, 61, 62, 63, 0, 111, 112, 113, 128, 129,
872
+ /* 70 */ 130, 102, 12, 104, 10, 111, 112, 113, 109, 110,
873
+ /* 80 */ 111, 112, 113, 104, 20, 21, 22, 25, 24, 26,
874
+ /* 90 */ 27, 48, 28, 111, 112, 113, 126, 33, 34, 35,
875
+ /* 100 */ 36, 37, 133, 39, 40, 41, 42, 2, 44, 45,
876
+ /* 110 */ 131, 114, 10, 49, 50, 51, 52, 53, 54, 55,
877
+ /* 120 */ 56, 57, 58, 59, 60, 61, 62, 63, 1, 2,
878
+ /* 130 */ 28, 4, 5, 29, 30, 31, 32, 102, 114, 12,
879
+ /* 140 */ 97, 81, 15, 38, 1, 82, 111, 112, 113, 89,
880
+ /* 150 */ 115, 24, 89, 26, 27, 12, 127, 14, 31, 32,
881
+ /* 160 */ 19, 18, 1, 20, 21, 22, 23, 24, 133, 26,
882
+ /* 170 */ 27, 2, 29, 30, 31, 32, 1, 4, 5, 4,
883
+ /* 180 */ 5, 4, 5, 6, 7, 8, 16, 12, 26, 27,
884
+ /* 190 */ 15, 64, 99, 100, 101, 20, 21, 22, 105, 24,
885
+ /* 200 */ 6, 7, 4, 5, 6, 7, 17, 38, 81, 116,
886
+ /* 210 */ 83, 84, 85, 86, 121, 17, 89, 90, 91, 92,
887
+ /* 220 */ 93, 1, 2, 25, 4, 5, 4, 5, 6, 7,
888
+ /* 230 */ 48, 3, 12, 95, 96, 15, 26, 27, 17, 17,
889
+ /* 240 */ 20, 21, 22, 43, 1, 2, 25, 4, 5, 15,
890
+ /* 250 */ 102, 31, 32, 26, 27, 12, 81, 40, 15, 111,
891
+ /* 260 */ 112, 113, 47, 115, 89, 90, 91, 92, 93, 1,
892
+ /* 270 */ 88, 40, 4, 5, 31, 32, 94, 0, 41, 97,
893
+ /* 280 */ 12, 133, 41, 15, 64, 13, 17, 10, 20, 21,
894
+ /* 290 */ 22, 25, 74, 17, 4, 5, 6, 7, 79, 89,
895
+ /* 300 */ 3, 81, 78, 83, 84, 85, 86, 64, 79, 89,
896
+ /* 310 */ 90, 91, 92, 93, 3, 87, 2, 3, 4, 5,
897
+ /* 320 */ 6, 7, 80, 3, 81, 35, 83, 84, 85, 86,
898
+ /* 330 */ 16, 38, 89, 90, 91, 92, 93, 76, 3, 25,
899
+ /* 340 */ 4, 5, 6, 7, 3, 31, 32, 3, 94, 81,
900
+ /* 350 */ 25, 28, 38, 15, 20, 21, 22, 89, 90, 91,
901
+ /* 360 */ 92, 93, 1, 15, 15, 4, 5, 17, 28, 12,
902
+ /* 370 */ 28, 35, 88, 12, 3, 11, 15, 134, 134, 134,
903
+ /* 380 */ 134, 67, 68, 49, 50, 51, 52, 53, 54, 75,
904
+ /* 390 */ 134, 77, 78, 79, 2, 3, 4, 5, 6, 7,
905
+ /* 400 */ 1, 2, 134, 4, 5, 134, 134, 46, 47, 17,
906
+ /* 410 */ 134, 12, 134, 134, 15, 134, 134, 25, 134, 4,
907
+ /* 420 */ 5, 6, 7, 31, 32, 1, 2, 134, 4, 5,
908
+ /* 430 */ 38, 134, 17, 134, 134, 134, 12, 38, 134, 15,
909
+ /* 440 */ 25, 134, 81, 134, 1, 2, 134, 4, 5, 134,
910
+ /* 450 */ 89, 90, 91, 92, 93, 12, 134, 134, 15, 67,
911
+ /* 460 */ 68, 98, 99, 100, 101, 134, 134, 75, 105, 77,
912
+ /* 470 */ 78, 79, 2, 3, 4, 5, 6, 7, 134, 116,
913
+ /* 480 */ 81, 134, 1, 120, 121, 4, 5, 134, 89, 90,
914
+ /* 490 */ 91, 92, 93, 12, 134, 25, 15, 134, 134, 134,
915
+ /* 500 */ 134, 31, 32, 134, 134, 81, 134, 1, 38, 134,
916
+ /* 510 */ 4, 5, 134, 89, 90, 91, 92, 93, 12, 134,
917
+ /* 520 */ 102, 15, 104, 134, 81, 134, 134, 109, 110, 111,
918
+ /* 530 */ 112, 113, 89, 90, 91, 92, 93, 67, 68, 1,
919
+ /* 540 */ 134, 134, 4, 5, 134, 75, 134, 77, 78, 79,
920
+ /* 550 */ 12, 133, 1, 15, 134, 4, 5, 134, 102, 134,
921
+ /* 560 */ 134, 134, 81, 12, 134, 134, 15, 111, 112, 113,
922
+ /* 570 */ 89, 90, 91, 92, 93, 64, 65, 66, 67, 68,
923
+ /* 580 */ 69, 70, 71, 72, 73, 134, 134, 81, 134, 133,
924
+ /* 590 */ 134, 134, 102, 134, 134, 89, 90, 91, 92, 93,
925
+ /* 600 */ 134, 111, 112, 113, 102, 134, 104, 117, 118, 119,
926
+ /* 610 */ 134, 109, 110, 111, 112, 113, 134, 134, 134, 81,
927
+ /* 620 */ 134, 134, 2, 133, 134, 134, 134, 89, 90, 91,
928
+ /* 630 */ 92, 93, 81, 134, 134, 133, 4, 5, 6, 7,
929
+ /* 640 */ 89, 90, 91, 92, 93, 134, 102, 134, 104, 17,
930
+ /* 650 */ 102, 31, 32, 109, 110, 111, 112, 113, 134, 111,
931
+ /* 660 */ 112, 113, 134, 115, 134, 102, 134, 104, 48, 134,
932
+ /* 670 */ 122, 123, 109, 110, 111, 112, 113, 133, 102, 134,
933
+ /* 680 */ 104, 133, 134, 134, 64, 109, 110, 111, 112, 113,
934
+ /* 690 */ 102, 134, 104, 134, 134, 134, 133, 109, 110, 111,
935
+ /* 700 */ 112, 113, 102, 83, 84, 85, 86, 134, 134, 133,
936
+ /* 710 */ 134, 111, 112, 113, 134, 102, 134, 104, 118, 119,
937
+ /* 720 */ 134, 133, 109, 110, 111, 112, 113, 134, 134, 134,
938
+ /* 730 */ 102, 134, 104, 133, 134, 134, 134, 109, 110, 111,
939
+ /* 740 */ 112, 113, 134, 102, 134, 104, 133, 134, 134, 134,
940
+ /* 750 */ 109, 110, 111, 112, 113, 102, 134, 104, 134, 134,
941
+ /* 760 */ 134, 133, 109, 110, 111, 112, 113, 134, 102, 134,
942
+ /* 770 */ 104, 134, 134, 134, 133, 109, 110, 111, 112, 113,
943
+ /* 780 */ 102, 134, 104, 134, 134, 134, 133, 109, 110, 111,
944
+ /* 790 */ 112, 113, 134, 102, 134, 104, 134, 134, 134, 133,
945
+ /* 800 */ 109, 110, 111, 112, 113, 134, 102, 134, 104, 134,
946
+ /* 810 */ 134, 133, 134, 109, 110, 111, 112, 113, 102, 134,
947
+ /* 820 */ 104, 102, 134, 134, 133, 109, 110, 111, 112, 113,
948
+ /* 830 */ 111, 112, 113, 102, 134, 104, 134, 133, 134, 134,
949
+ /* 840 */ 109, 110, 111, 112, 113, 134, 102, 134, 104, 133,
950
+ /* 850 */ 134, 134, 133, 109, 110, 111, 112, 113, 102, 134,
951
+ /* 860 */ 104, 134, 134, 134, 133, 109, 110, 111, 112, 113,
952
+ /* 870 */ 134, 102, 134, 104, 134, 134, 134, 133, 109, 110,
953
+ /* 880 */ 111, 112, 113, 102, 134, 104, 134, 134, 134, 133,
954
+ /* 890 */ 109, 110, 111, 112, 113, 2, 102, 134, 104, 134,
955
+ /* 900 */ 134, 134, 133, 109, 110, 111, 112, 113, 134, 102,
956
+ /* 910 */ 134, 104, 134, 134, 133, 134, 109, 110, 111, 112,
957
+ /* 920 */ 113, 102, 134, 104, 31, 32, 134, 133, 109, 110,
958
+ /* 930 */ 111, 112, 113, 134, 134, 134, 102, 134, 104, 134,
959
+ /* 940 */ 133, 134, 134, 109, 110, 111, 112, 113, 134, 102,
960
+ /* 950 */ 134, 134, 133, 134, 134, 134, 134, 64, 111, 112,
961
+ /* 960 */ 113, 134, 134, 134, 134, 118, 134, 133, 134, 134,
962
+ /* 970 */ 134, 134, 125, 134, 127, 134, 83, 84, 85, 86,
963
+ /* 980 */ 133, 102, 98, 99, 100, 101, 134, 134, 134, 105,
964
+ /* 990 */ 111, 112, 113, 134, 115, 134, 134, 102, 134, 134,
965
+ /* 1000 */ 116, 134, 123, 134, 134, 121, 111, 112, 113, 102,
966
+ /* 1010 */ 134, 134, 133, 118, 119, 134, 134, 134, 111, 112,
967
+ /* 1020 */ 113, 102, 134, 134, 102, 118, 134, 102, 133, 134,
968
+ /* 1030 */ 111, 112, 113, 111, 112, 113, 111, 112, 113, 102,
969
+ /* 1040 */ 133, 134, 134, 4, 5, 6, 7, 134, 111, 112,
970
+ /* 1050 */ 113, 134, 133, 134, 134, 133, 134, 134, 133, 134,
971
+ /* 1060 */ 134, 134, 102, 134, 25, 134, 134, 134, 102, 134,
972
+ /* 1070 */ 133, 111, 112, 113, 134, 102, 134, 111, 112, 113,
973
+ /* 1080 */ 102, 134, 134, 134, 111, 112, 113, 102, 134, 111,
974
+ /* 1090 */ 112, 113, 102, 133, 134, 134, 111, 112, 113, 133,
975
+ /* 1100 */ 134, 111, 112, 113, 134, 102, 133, 134, 134, 134,
976
+ /* 1110 */ 102, 133, 134, 134, 111, 112, 113, 102, 133, 111,
977
+ /* 1120 */ 112, 113, 102, 133, 134, 134, 111, 112, 113, 134,
978
+ /* 1130 */ 134, 111, 112, 113, 102, 134, 133, 134, 134, 134,
979
+ /* 1140 */ 102, 133, 134, 111, 112, 113, 134, 134, 133, 111,
980
+ /* 1150 */ 112, 113, 102, 133, 134, 134, 134, 134, 102, 134,
981
+ /* 1160 */ 134, 111, 112, 113, 134, 133, 134, 111, 112, 113,
982
+ /* 1170 */ 134, 133, 134, 134, 134, 102, 134, 134, 134, 134,
983
+ /* 1180 */ 134, 102, 134, 133, 111, 112, 113, 102, 134, 133,
984
+ /* 1190 */ 111, 112, 113, 102, 134, 134, 111, 112, 113, 102,
985
+ /* 1200 */ 134, 134, 111, 112, 113, 134, 133, 134, 111, 112,
986
+ /* 1210 */ 113, 134, 133, 4, 5, 6, 7, 134, 133, 4,
987
+ /* 1220 */ 5, 6, 7, 134, 133, 134, 17, 134, 134, 134,
988
+ /* 1230 */ 133, 4, 5, 6, 7, 4, 5, 6, 7, 134,
989
+ /* 1240 */ 25, 134, 134, 134, 17, 4, 5, 6, 7, 4,
990
+ /* 1250 */ 5, 6, 7, 134, 134, 134, 25, 134, 17, 134,
991
+ /* 1260 */ 134, 134, 17, 134, 134, 134, 134, 134, 134, 134,
992
+ /* 1270 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
993
+ /* 1280 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
994
+ /* 1290 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
995
+ /* 1300 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
996
+ /* 1310 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
997
+ /* 1320 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
998
+ /* 1330 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
999
+ /* 1340 */ 134, 134, 134, 134, 134, 134, 134, 134, 98, 98,
1000
+ /* 1350 */ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1001
+ /* 1360 */ 98,
9921002
};
9931003
#define YY_SHIFT_COUNT (163)
9941004
#define YY_SHIFT_MIN (0)
995
-#define YY_SHIFT_MAX (1181)
1005
+#define YY_SHIFT_MAX (1245)
9961006
static const unsigned short int yy_shift_ofst[] = {
997
- /* 0 */ 408, 125, 158, 191, 191, 191, 191, 191, 191, 191,
998
- /* 10 */ 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
999
- /* 20 */ 191, 191, 191, 191, 191, 191, 191, 314, 138, 171,
1000
- /* 30 */ 314, 408, 465, 465, 0, 63, 408, 252, 171, 252,
1001
- /* 40 */ 443, 443, 443, 470, 486, 171, 171, 171, 171, 171,
1002
- /* 50 */ 171, 492, 171, 171, 505, 171, 171, 171, 171, 171,
1003
- /* 60 */ 171, 171, 171, 171, 171, 567, 94, 94, 94, 94,
1004
- /* 70 */ 94, 577, 282, 299, 376, 650, 650, 102, 46, 1223,
1005
- /* 80 */ 1223, 1223, 1223, 321, 321, 194, 393, 304, 60, 287,
1006
- /* 90 */ 534, 663, 608, 966, 1174, 989, 1181, 1015, 1040, 25,
1007
- /* 100 */ 25, 25, 431, 25, 25, 25, 66, 25, 109, 15,
1008
- /* 110 */ 108, 126, 69, 227, 174, 289, 289, 239, 251, 184,
1009
- /* 120 */ 129, 148, 146, 168, 154, 165, 176, 151, 162, 164,
1010
- /* 130 */ 179, 195, 192, 199, 235, 233, 217, 255, 219, 222,
1011
- /* 140 */ 221, 234, 320, 322, 324, 279, 325, 330, 336, 257,
1012
- /* 150 */ 277, 328, 257, 339, 340, 342, 344, 335, 341, 343,
1013
- /* 160 */ 352, 281, 367, 361,
1007
+ /* 0 */ 143, 127, 220, 243, 243, 243, 243, 243, 243, 243,
1008
+ /* 10 */ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
1009
+ /* 20 */ 243, 243, 243, 243, 243, 243, 243, 175, 361, 481,
1010
+ /* 30 */ 175, 143, 399, 399, 0, 64, 143, 506, 481, 506,
1011
+ /* 40 */ 268, 268, 268, 424, 443, 481, 481, 481, 481, 481,
1012
+ /* 50 */ 481, 538, 481, 481, 551, 481, 481, 481, 481, 481,
1013
+ /* 60 */ 481, 481, 481, 481, 481, 334, 60, 60, 60, 60,
1014
+ /* 70 */ 60, 620, 314, 392, 470, 893, 893, 104, 62, 1263,
1015
+ /* 80 */ 1263, 1263, 1263, 511, 511, 198, 415, 222, 177, 290,
1016
+ /* 90 */ 336, 632, 1039, 1209, 1215, 1227, 1231, 1241, 1245, 25,
1017
+ /* 100 */ 25, 25, 182, 25, 25, 25, 63, 25, 210, 102,
1018
+ /* 110 */ 105, 169, 221, 173, 138, 194, 194, 162, 227, 228,
1019
+ /* 120 */ 43, 277, 141, 161, 189, 170, 234, 200, 217, 231,
1020
+ /* 130 */ 237, 241, 215, 272, 269, 266, 218, 276, 219, 224,
1021
+ /* 140 */ 242, 229, 297, 311, 320, 293, 335, 341, 344, 254,
1022
+ /* 150 */ 261, 325, 254, 338, 348, 349, 350, 323, 340, 342,
1023
+ /* 160 */ 357, 284, 371, 364,
10141024
};
10151025
#define YY_REDUCE_COUNT (82)
1016
-#define YY_REDUCE_MIN (-127)
1017
-#define YY_REDUCE_MAX (1090)
1026
+#define YY_REDUCE_MIN (-128)
1027
+#define YY_REDUCE_MAX (1097)
10181028
static const short yy_reduce_ofst[] = {
1019
- /* 0 */ 507, -94, -31, 533, 546, 563, 576, 588, 606, 618,
1020
- /* 10 */ 643, 655, 673, 685, 698, 710, 728, 745, 764, 777,
1021
- /* 20 */ 789, 802, 814, 830, 847, 866, 879, 123, 891, 404,
1022
- /* 30 */ 658, 531, 630, 715, 39, 39, 247, 904, 751, 916,
1023
- /* 40 */ 436, 491, 593, 817, 853, 923, 928, 940, 955, 958,
1024
- /* 50 */ 963, 970, 988, 993, 1006, 1012, 1018, 1025, 1030, 1042,
1025
- /* 60 */ 1057, 1060, 1065, 1072, 1090, -79, -109, -99, -64, -36,
1026
- /* 70 */ -22, -21, -127, -127, -127, -95, -84, -35, -28, -14,
1027
- /* 80 */ 42, 48, 12,
1029
+ /* 0 */ 363, -95, -31, 418, 502, 544, 563, 576, 588, 613,
1030
+ /* 10 */ 628, 641, 653, 666, 678, 691, 704, 716, 731, 744,
1031
+ /* 20 */ 756, 769, 781, 794, 807, 819, 834, 548, 490, 847,
1032
+ /* 30 */ 879, 884, 600, 895, -60, -60, 93, 35, 907, 148,
1033
+ /* 40 */ 456, 719, 919, 922, 925, 937, 960, 966, 973, 978,
1034
+ /* 50 */ 985, 990, 1003, 1008, 1015, 1020, 1032, 1038, 1050, 1056,
1035
+ /* 60 */ 1073, 1079, 1085, 1091, 1097, -80, -110, -100, -46, -36,
1036
+ /* 70 */ -18, -21, -128, -128, -128, -96, -85, -57, -99, -30,
1037
+ /* 80 */ -3, 24, 29,
10281038
};
10291039
static const YYACTIONTYPE yy_default[] = {
1030
- /* 0 */ 445, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1031
- /* 10 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1032
- /* 20 */ 439, 439, 439, 439, 439, 439, 439, 439, 469, 570,
1033
- /* 30 */ 439, 445, 574, 481, 575, 575, 445, 439, 439, 439,
1034
- /* 40 */ 439, 439, 439, 439, 439, 439, 439, 439, 473, 439,
1035
- /* 50 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1036
- /* 60 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1037
- /* 70 */ 439, 439, 439, 439, 439, 439, 439, 439, 451, 466,
1038
- /* 80 */ 503, 503, 570, 464, 489, 439, 439, 439, 467, 439,
1039
- /* 90 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 484,
1040
- /* 100 */ 482, 472, 455, 507, 506, 505, 439, 560, 439, 439,
1041
- /* 110 */ 439, 439, 439, 582, 439, 539, 538, 534, 439, 527,
1042
- /* 120 */ 524, 439, 439, 439, 439, 439, 439, 487, 439, 439,
1043
- /* 130 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1044
- /* 140 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 586,
1045
- /* 150 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1046
- /* 160 */ 439, 595, 439, 439,
1040
+ /* 0 */ 447, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1041
+ /* 10 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1042
+ /* 20 */ 441, 441, 441, 441, 441, 441, 441, 441, 471, 573,
1043
+ /* 30 */ 441, 447, 577, 483, 578, 578, 447, 441, 441, 441,
1044
+ /* 40 */ 441, 441, 441, 441, 441, 441, 441, 441, 475, 441,
1045
+ /* 50 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1046
+ /* 60 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1047
+ /* 70 */ 441, 441, 441, 441, 441, 441, 441, 441, 453, 468,
1048
+ /* 80 */ 506, 506, 573, 466, 491, 441, 441, 441, 469, 441,
1049
+ /* 90 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 486,
1050
+ /* 100 */ 484, 474, 457, 510, 509, 508, 441, 563, 441, 441,
1051
+ /* 110 */ 441, 441, 441, 585, 441, 542, 541, 537, 441, 530,
1052
+ /* 120 */ 527, 441, 441, 441, 441, 441, 441, 489, 441, 441,
1053
+ /* 130 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1054
+ /* 140 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 589,
1055
+ /* 150 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1056
+ /* 160 */ 441, 598, 441, 441,
10471057
};
10481058
/********** End of lemon-generated parsing tables *****************************/
10491059
10501060
/* The next table maps tokens (terminal symbols) into fallback tokens.
10511061
** If a construct like the following:
@@ -1124,10 +1134,11 @@
11241134
0, /* RARROW => nothing */
11251135
0, /* LRARROW => nothing */
11261136
0, /* INVIS => nothing */
11271137
0, /* THICK => nothing */
11281138
0, /* THIN => nothing */
1139
+ 0, /* SOLID => nothing */
11291140
0, /* CENTER => nothing */
11301141
0, /* LJUST => nothing */
11311142
0, /* RJUST => nothing */
11321143
0, /* ABOVE => nothing */
11331144
0, /* BELOW => nothing */
@@ -1309,80 +1320,81 @@
13091320
/* 58 */ "RARROW",
13101321
/* 59 */ "LRARROW",
13111322
/* 60 */ "INVIS",
13121323
/* 61 */ "THICK",
13131324
/* 62 */ "THIN",
1314
- /* 63 */ "CENTER",
1315
- /* 64 */ "LJUST",
1316
- /* 65 */ "RJUST",
1317
- /* 66 */ "ABOVE",
1318
- /* 67 */ "BELOW",
1319
- /* 68 */ "ITALIC",
1320
- /* 69 */ "BOLD",
1321
- /* 70 */ "ALIGNED",
1322
- /* 71 */ "BIG",
1323
- /* 72 */ "SMALL",
1324
- /* 73 */ "AND",
1325
- /* 74 */ "LT",
1326
- /* 75 */ "GT",
1327
- /* 76 */ "ON",
1328
- /* 77 */ "WAY",
1329
- /* 78 */ "BETWEEN",
1330
- /* 79 */ "THE",
1331
- /* 80 */ "NTH",
1332
- /* 81 */ "VERTEX",
1333
- /* 82 */ "TOP",
1334
- /* 83 */ "BOTTOM",
1335
- /* 84 */ "START",
1336
- /* 85 */ "END",
1337
- /* 86 */ "IN",
1338
- /* 87 */ "DOT_U",
1339
- /* 88 */ "LAST",
1340
- /* 89 */ "NUMBER",
1341
- /* 90 */ "FUNC1",
1342
- /* 91 */ "FUNC2",
1343
- /* 92 */ "DIST",
1344
- /* 93 */ "DOT_XY",
1345
- /* 94 */ "X",
1346
- /* 95 */ "Y",
1347
- /* 96 */ "DOT_L",
1348
- /* 97 */ "statement_list",
1349
- /* 98 */ "statement",
1350
- /* 99 */ "unnamed_statement",
1351
- /* 100 */ "basetype",
1352
- /* 101 */ "expr",
1353
- /* 102 */ "numproperty",
1354
- /* 103 */ "edge",
1355
- /* 104 */ "direction",
1356
- /* 105 */ "dashproperty",
1357
- /* 106 */ "colorproperty",
1358
- /* 107 */ "locproperty",
1359
- /* 108 */ "position",
1360
- /* 109 */ "place",
1361
- /* 110 */ "object",
1362
- /* 111 */ "objectname",
1363
- /* 112 */ "nth",
1364
- /* 113 */ "textposition",
1365
- /* 114 */ "rvalue",
1366
- /* 115 */ "lvalue",
1367
- /* 116 */ "even",
1368
- /* 117 */ "relexpr",
1369
- /* 118 */ "optrelexpr",
1370
- /* 119 */ "document",
1371
- /* 120 */ "print",
1372
- /* 121 */ "prlist",
1373
- /* 122 */ "pritem",
1374
- /* 123 */ "prsep",
1375
- /* 124 */ "attribute_list",
1376
- /* 125 */ "savelist",
1377
- /* 126 */ "alist",
1378
- /* 127 */ "attribute",
1379
- /* 128 */ "go",
1380
- /* 129 */ "boolproperty",
1381
- /* 130 */ "withclause",
1382
- /* 131 */ "between",
1383
- /* 132 */ "place2",
1325
+ /* 63 */ "SOLID",
1326
+ /* 64 */ "CENTER",
1327
+ /* 65 */ "LJUST",
1328
+ /* 66 */ "RJUST",
1329
+ /* 67 */ "ABOVE",
1330
+ /* 68 */ "BELOW",
1331
+ /* 69 */ "ITALIC",
1332
+ /* 70 */ "BOLD",
1333
+ /* 71 */ "ALIGNED",
1334
+ /* 72 */ "BIG",
1335
+ /* 73 */ "SMALL",
1336
+ /* 74 */ "AND",
1337
+ /* 75 */ "LT",
1338
+ /* 76 */ "GT",
1339
+ /* 77 */ "ON",
1340
+ /* 78 */ "WAY",
1341
+ /* 79 */ "BETWEEN",
1342
+ /* 80 */ "THE",
1343
+ /* 81 */ "NTH",
1344
+ /* 82 */ "VERTEX",
1345
+ /* 83 */ "TOP",
1346
+ /* 84 */ "BOTTOM",
1347
+ /* 85 */ "START",
1348
+ /* 86 */ "END",
1349
+ /* 87 */ "IN",
1350
+ /* 88 */ "DOT_U",
1351
+ /* 89 */ "LAST",
1352
+ /* 90 */ "NUMBER",
1353
+ /* 91 */ "FUNC1",
1354
+ /* 92 */ "FUNC2",
1355
+ /* 93 */ "DIST",
1356
+ /* 94 */ "DOT_XY",
1357
+ /* 95 */ "X",
1358
+ /* 96 */ "Y",
1359
+ /* 97 */ "DOT_L",
1360
+ /* 98 */ "statement_list",
1361
+ /* 99 */ "statement",
1362
+ /* 100 */ "unnamed_statement",
1363
+ /* 101 */ "basetype",
1364
+ /* 102 */ "expr",
1365
+ /* 103 */ "numproperty",
1366
+ /* 104 */ "edge",
1367
+ /* 105 */ "direction",
1368
+ /* 106 */ "dashproperty",
1369
+ /* 107 */ "colorproperty",
1370
+ /* 108 */ "locproperty",
1371
+ /* 109 */ "position",
1372
+ /* 110 */ "place",
1373
+ /* 111 */ "object",
1374
+ /* 112 */ "objectname",
1375
+ /* 113 */ "nth",
1376
+ /* 114 */ "textposition",
1377
+ /* 115 */ "rvalue",
1378
+ /* 116 */ "lvalue",
1379
+ /* 117 */ "even",
1380
+ /* 118 */ "relexpr",
1381
+ /* 119 */ "optrelexpr",
1382
+ /* 120 */ "document",
1383
+ /* 121 */ "print",
1384
+ /* 122 */ "prlist",
1385
+ /* 123 */ "pritem",
1386
+ /* 124 */ "prsep",
1387
+ /* 125 */ "attribute_list",
1388
+ /* 126 */ "savelist",
1389
+ /* 127 */ "alist",
1390
+ /* 128 */ "attribute",
1391
+ /* 129 */ "go",
1392
+ /* 130 */ "boolproperty",
1393
+ /* 131 */ "withclause",
1394
+ /* 132 */ "between",
1395
+ /* 133 */ "place2",
13841396
};
13851397
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
13861398
13871399
#ifndef NDEBUG
13881400
/* For tracing reduce actions, the names of all rules are required.
@@ -1447,103 +1459,104 @@
14471459
/* 56 */ "boolproperty ::= RARROW",
14481460
/* 57 */ "boolproperty ::= LRARROW",
14491461
/* 58 */ "boolproperty ::= INVIS",
14501462
/* 59 */ "boolproperty ::= THICK",
14511463
/* 60 */ "boolproperty ::= THIN",
1452
- /* 61 */ "textposition ::=",
1453
- /* 62 */ "textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL",
1454
- /* 63 */ "position ::= expr COMMA expr",
1455
- /* 64 */ "position ::= place PLUS expr COMMA expr",
1456
- /* 65 */ "position ::= place MINUS expr COMMA expr",
1457
- /* 66 */ "position ::= place PLUS LP expr COMMA expr RP",
1458
- /* 67 */ "position ::= place MINUS LP expr COMMA expr RP",
1459
- /* 68 */ "position ::= LP position COMMA position RP",
1460
- /* 69 */ "position ::= LP position RP",
1461
- /* 70 */ "position ::= expr between position AND position",
1462
- /* 71 */ "position ::= expr LT position COMMA position GT",
1463
- /* 72 */ "position ::= expr ABOVE position",
1464
- /* 73 */ "position ::= expr BELOW position",
1465
- /* 74 */ "position ::= expr LEFT OF position",
1466
- /* 75 */ "position ::= expr RIGHT OF position",
1467
- /* 76 */ "position ::= expr ON HEADING EDGEPT OF position",
1468
- /* 77 */ "position ::= expr HEADING EDGEPT OF position",
1469
- /* 78 */ "position ::= expr EDGEPT OF position",
1470
- /* 79 */ "position ::= expr ON HEADING expr FROM position",
1471
- /* 80 */ "position ::= expr HEADING expr FROM position",
1472
- /* 81 */ "place ::= edge OF object",
1473
- /* 82 */ "place2 ::= object",
1474
- /* 83 */ "place2 ::= object DOT_E edge",
1475
- /* 84 */ "place2 ::= NTH VERTEX OF object",
1476
- /* 85 */ "object ::= nth",
1477
- /* 86 */ "object ::= nth OF|IN object",
1478
- /* 87 */ "objectname ::= PLACENAME",
1479
- /* 88 */ "objectname ::= objectname DOT_U PLACENAME",
1480
- /* 89 */ "nth ::= NTH CLASSNAME",
1481
- /* 90 */ "nth ::= NTH LAST CLASSNAME",
1482
- /* 91 */ "nth ::= LAST CLASSNAME",
1483
- /* 92 */ "nth ::= LAST",
1484
- /* 93 */ "nth ::= NTH LB RB",
1485
- /* 94 */ "nth ::= NTH LAST LB RB",
1486
- /* 95 */ "nth ::= LAST LB RB",
1487
- /* 96 */ "expr ::= expr PLUS expr",
1488
- /* 97 */ "expr ::= expr MINUS expr",
1489
- /* 98 */ "expr ::= expr STAR expr",
1490
- /* 99 */ "expr ::= expr SLASH expr",
1491
- /* 100 */ "expr ::= MINUS expr",
1492
- /* 101 */ "expr ::= PLUS expr",
1493
- /* 102 */ "expr ::= LP expr RP",
1494
- /* 103 */ "expr ::= LP FILL|COLOR|THICKNESS RP",
1495
- /* 104 */ "expr ::= NUMBER",
1496
- /* 105 */ "expr ::= ID",
1497
- /* 106 */ "expr ::= FUNC1 LP expr RP",
1498
- /* 107 */ "expr ::= FUNC2 LP expr COMMA expr RP",
1499
- /* 108 */ "expr ::= DIST LP position COMMA position RP",
1500
- /* 109 */ "expr ::= place2 DOT_XY X",
1501
- /* 110 */ "expr ::= place2 DOT_XY Y",
1502
- /* 111 */ "expr ::= object DOT_L numproperty",
1503
- /* 112 */ "expr ::= object DOT_L dashproperty",
1504
- /* 113 */ "expr ::= object DOT_L colorproperty",
1505
- /* 114 */ "lvalue ::= ID",
1506
- /* 115 */ "lvalue ::= FILL",
1507
- /* 116 */ "lvalue ::= COLOR",
1508
- /* 117 */ "lvalue ::= THICKNESS",
1509
- /* 118 */ "rvalue ::= expr",
1510
- /* 119 */ "print ::= PRINT",
1511
- /* 120 */ "prlist ::= pritem",
1512
- /* 121 */ "prlist ::= prlist prsep pritem",
1513
- /* 122 */ "direction ::= UP",
1514
- /* 123 */ "direction ::= DOWN",
1515
- /* 124 */ "direction ::= LEFT",
1516
- /* 125 */ "direction ::= RIGHT",
1517
- /* 126 */ "optrelexpr ::= relexpr",
1518
- /* 127 */ "attribute_list ::= alist",
1519
- /* 128 */ "alist ::=",
1520
- /* 129 */ "alist ::= alist attribute",
1521
- /* 130 */ "attribute ::= boolproperty",
1522
- /* 131 */ "attribute ::= WITH withclause",
1523
- /* 132 */ "go ::= GO",
1524
- /* 133 */ "go ::=",
1525
- /* 134 */ "even ::= UNTIL EVEN WITH",
1526
- /* 135 */ "even ::= EVEN WITH",
1527
- /* 136 */ "dashproperty ::= DOTTED",
1528
- /* 137 */ "dashproperty ::= DASHED",
1529
- /* 138 */ "colorproperty ::= FILL",
1530
- /* 139 */ "colorproperty ::= COLOR",
1531
- /* 140 */ "position ::= place",
1532
- /* 141 */ "between ::= WAY BETWEEN",
1533
- /* 142 */ "between ::= BETWEEN",
1534
- /* 143 */ "between ::= OF THE WAY BETWEEN",
1535
- /* 144 */ "place ::= place2",
1536
- /* 145 */ "edge ::= CENTER",
1537
- /* 146 */ "edge ::= EDGEPT",
1538
- /* 147 */ "edge ::= TOP",
1539
- /* 148 */ "edge ::= BOTTOM",
1540
- /* 149 */ "edge ::= START",
1541
- /* 150 */ "edge ::= END",
1542
- /* 151 */ "edge ::= RIGHT",
1543
- /* 152 */ "edge ::= LEFT",
1544
- /* 153 */ "object ::= objectname",
1464
+ /* 61 */ "boolproperty ::= SOLID",
1465
+ /* 62 */ "textposition ::=",
1466
+ /* 63 */ "textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL",
1467
+ /* 64 */ "position ::= expr COMMA expr",
1468
+ /* 65 */ "position ::= place PLUS expr COMMA expr",
1469
+ /* 66 */ "position ::= place MINUS expr COMMA expr",
1470
+ /* 67 */ "position ::= place PLUS LP expr COMMA expr RP",
1471
+ /* 68 */ "position ::= place MINUS LP expr COMMA expr RP",
1472
+ /* 69 */ "position ::= LP position COMMA position RP",
1473
+ /* 70 */ "position ::= LP position RP",
1474
+ /* 71 */ "position ::= expr between position AND position",
1475
+ /* 72 */ "position ::= expr LT position COMMA position GT",
1476
+ /* 73 */ "position ::= expr ABOVE position",
1477
+ /* 74 */ "position ::= expr BELOW position",
1478
+ /* 75 */ "position ::= expr LEFT OF position",
1479
+ /* 76 */ "position ::= expr RIGHT OF position",
1480
+ /* 77 */ "position ::= expr ON HEADING EDGEPT OF position",
1481
+ /* 78 */ "position ::= expr HEADING EDGEPT OF position",
1482
+ /* 79 */ "position ::= expr EDGEPT OF position",
1483
+ /* 80 */ "position ::= expr ON HEADING expr FROM position",
1484
+ /* 81 */ "position ::= expr HEADING expr FROM position",
1485
+ /* 82 */ "place ::= edge OF object",
1486
+ /* 83 */ "place2 ::= object",
1487
+ /* 84 */ "place2 ::= object DOT_E edge",
1488
+ /* 85 */ "place2 ::= NTH VERTEX OF object",
1489
+ /* 86 */ "object ::= nth",
1490
+ /* 87 */ "object ::= nth OF|IN object",
1491
+ /* 88 */ "objectname ::= PLACENAME",
1492
+ /* 89 */ "objectname ::= objectname DOT_U PLACENAME",
1493
+ /* 90 */ "nth ::= NTH CLASSNAME",
1494
+ /* 91 */ "nth ::= NTH LAST CLASSNAME",
1495
+ /* 92 */ "nth ::= LAST CLASSNAME",
1496
+ /* 93 */ "nth ::= LAST",
1497
+ /* 94 */ "nth ::= NTH LB RB",
1498
+ /* 95 */ "nth ::= NTH LAST LB RB",
1499
+ /* 96 */ "nth ::= LAST LB RB",
1500
+ /* 97 */ "expr ::= expr PLUS expr",
1501
+ /* 98 */ "expr ::= expr MINUS expr",
1502
+ /* 99 */ "expr ::= expr STAR expr",
1503
+ /* 100 */ "expr ::= expr SLASH expr",
1504
+ /* 101 */ "expr ::= MINUS expr",
1505
+ /* 102 */ "expr ::= PLUS expr",
1506
+ /* 103 */ "expr ::= LP expr RP",
1507
+ /* 104 */ "expr ::= LP FILL|COLOR|THICKNESS RP",
1508
+ /* 105 */ "expr ::= NUMBER",
1509
+ /* 106 */ "expr ::= ID",
1510
+ /* 107 */ "expr ::= FUNC1 LP expr RP",
1511
+ /* 108 */ "expr ::= FUNC2 LP expr COMMA expr RP",
1512
+ /* 109 */ "expr ::= DIST LP position COMMA position RP",
1513
+ /* 110 */ "expr ::= place2 DOT_XY X",
1514
+ /* 111 */ "expr ::= place2 DOT_XY Y",
1515
+ /* 112 */ "expr ::= object DOT_L numproperty",
1516
+ /* 113 */ "expr ::= object DOT_L dashproperty",
1517
+ /* 114 */ "expr ::= object DOT_L colorproperty",
1518
+ /* 115 */ "lvalue ::= ID",
1519
+ /* 116 */ "lvalue ::= FILL",
1520
+ /* 117 */ "lvalue ::= COLOR",
1521
+ /* 118 */ "lvalue ::= THICKNESS",
1522
+ /* 119 */ "rvalue ::= expr",
1523
+ /* 120 */ "print ::= PRINT",
1524
+ /* 121 */ "prlist ::= pritem",
1525
+ /* 122 */ "prlist ::= prlist prsep pritem",
1526
+ /* 123 */ "direction ::= UP",
1527
+ /* 124 */ "direction ::= DOWN",
1528
+ /* 125 */ "direction ::= LEFT",
1529
+ /* 126 */ "direction ::= RIGHT",
1530
+ /* 127 */ "optrelexpr ::= relexpr",
1531
+ /* 128 */ "attribute_list ::= alist",
1532
+ /* 129 */ "alist ::=",
1533
+ /* 130 */ "alist ::= alist attribute",
1534
+ /* 131 */ "attribute ::= boolproperty",
1535
+ /* 132 */ "attribute ::= WITH withclause",
1536
+ /* 133 */ "go ::= GO",
1537
+ /* 134 */ "go ::=",
1538
+ /* 135 */ "even ::= UNTIL EVEN WITH",
1539
+ /* 136 */ "even ::= EVEN WITH",
1540
+ /* 137 */ "dashproperty ::= DOTTED",
1541
+ /* 138 */ "dashproperty ::= DASHED",
1542
+ /* 139 */ "colorproperty ::= FILL",
1543
+ /* 140 */ "colorproperty ::= COLOR",
1544
+ /* 141 */ "position ::= place",
1545
+ /* 142 */ "between ::= WAY BETWEEN",
1546
+ /* 143 */ "between ::= BETWEEN",
1547
+ /* 144 */ "between ::= OF THE WAY BETWEEN",
1548
+ /* 145 */ "place ::= place2",
1549
+ /* 146 */ "edge ::= CENTER",
1550
+ /* 147 */ "edge ::= EDGEPT",
1551
+ /* 148 */ "edge ::= TOP",
1552
+ /* 149 */ "edge ::= BOTTOM",
1553
+ /* 150 */ "edge ::= START",
1554
+ /* 151 */ "edge ::= END",
1555
+ /* 152 */ "edge ::= RIGHT",
1556
+ /* 153 */ "edge ::= LEFT",
1557
+ /* 154 */ "object ::= objectname",
15451558
};
15461559
#endif /* NDEBUG */
15471560
15481561
15491562
#if YYSTACKDEPTH<=0
@@ -1665,24 +1678,24 @@
16651678
** Note: during a reduce, the only symbols destroyed are those
16661679
** which appear on the RHS of the rule, but which are *not* used
16671680
** inside the C code.
16681681
*/
16691682
/********* Begin destructor definitions ***************************************/
1670
- case 97: /* statement_list */
1683
+ case 98: /* statement_list */
16711684
{
16721685
#line 483 "pikchr.y"
1673
-pik_elist_free(p,(yypminor->yy191));
1674
-#line 1699 "pikchr.c"
1686
+pik_elist_free(p,(yypminor->yy119));
1687
+#line 1712 "pikchr.c"
16751688
}
16761689
break;
1677
- case 98: /* statement */
1678
- case 99: /* unnamed_statement */
1679
- case 100: /* basetype */
1690
+ case 99: /* statement */
1691
+ case 100: /* unnamed_statement */
1692
+ case 101: /* basetype */
16801693
{
16811694
#line 485 "pikchr.y"
1682
-pik_elem_free(p,(yypminor->yy138));
1683
-#line 1708 "pikchr.c"
1695
+pik_elem_free(p,(yypminor->yy38));
1696
+#line 1721 "pikchr.c"
16841697
}
16851698
break;
16861699
/********* End destructor definitions *****************************************/
16871700
default: break; /* If no destructor action specified: do nothing */
16881701
}
@@ -1899,11 +1912,11 @@
18991912
** stack every overflows */
19001913
/******** Begin %stack_overflow code ******************************************/
19011914
#line 517 "pikchr.y"
19021915
19031916
pik_error(p, 0, "parser stack overflow");
1904
-#line 1929 "pikchr.c"
1917
+#line 1942 "pikchr.c"
19051918
/******** End %stack_overflow code ********************************************/
19061919
pik_parserARG_STORE /* Suppress warning about unused %extra_argument var */
19071920
pik_parserCTX_STORE
19081921
}
19091922
@@ -1971,164 +1984,165 @@
19711984
}
19721985
19731986
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
19741987
** of that rule */
19751988
static const YYCODETYPE yyRuleInfoLhs[] = {
1976
- 119, /* (0) document ::= statement_list */
1977
- 97, /* (1) statement_list ::= statement */
1978
- 97, /* (2) statement_list ::= statement_list EOL statement */
1979
- 98, /* (3) statement ::= */
1980
- 98, /* (4) statement ::= direction */
1981
- 98, /* (5) statement ::= lvalue ASSIGN rvalue */
1982
- 98, /* (6) statement ::= PLACENAME COLON unnamed_statement */
1983
- 98, /* (7) statement ::= PLACENAME COLON position */
1984
- 98, /* (8) statement ::= unnamed_statement */
1985
- 98, /* (9) statement ::= print prlist */
1986
- 98, /* (10) statement ::= ASSERT LP expr EQ expr RP */
1987
- 98, /* (11) statement ::= ASSERT LP position EQ position RP */
1988
- 98, /* (12) statement ::= DEFINE ID CODEBLOCK */
1989
- 114, /* (13) rvalue ::= PLACENAME */
1990
- 122, /* (14) pritem ::= FILL */
1991
- 122, /* (15) pritem ::= COLOR */
1992
- 122, /* (16) pritem ::= THICKNESS */
1993
- 122, /* (17) pritem ::= rvalue */
1994
- 122, /* (18) pritem ::= STRING */
1995
- 123, /* (19) prsep ::= COMMA */
1996
- 99, /* (20) unnamed_statement ::= basetype attribute_list */
1997
- 100, /* (21) basetype ::= CLASSNAME */
1998
- 100, /* (22) basetype ::= STRING textposition */
1999
- 100, /* (23) basetype ::= LB savelist statement_list RB */
2000
- 125, /* (24) savelist ::= */
2001
- 117, /* (25) relexpr ::= expr */
2002
- 117, /* (26) relexpr ::= expr PERCENT */
2003
- 118, /* (27) optrelexpr ::= */
2004
- 124, /* (28) attribute_list ::= relexpr alist */
2005
- 127, /* (29) attribute ::= numproperty relexpr */
2006
- 127, /* (30) attribute ::= dashproperty expr */
2007
- 127, /* (31) attribute ::= dashproperty */
2008
- 127, /* (32) attribute ::= colorproperty rvalue */
2009
- 127, /* (33) attribute ::= go direction optrelexpr */
2010
- 127, /* (34) attribute ::= go direction even position */
2011
- 127, /* (35) attribute ::= CLOSE */
2012
- 127, /* (36) attribute ::= CHOP */
2013
- 127, /* (37) attribute ::= FROM position */
2014
- 127, /* (38) attribute ::= TO position */
2015
- 127, /* (39) attribute ::= THEN */
2016
- 127, /* (40) attribute ::= THEN optrelexpr HEADING expr */
2017
- 127, /* (41) attribute ::= THEN optrelexpr EDGEPT */
2018
- 127, /* (42) attribute ::= GO optrelexpr HEADING expr */
2019
- 127, /* (43) attribute ::= GO optrelexpr EDGEPT */
2020
- 127, /* (44) attribute ::= AT position */
2021
- 127, /* (45) attribute ::= SAME */
2022
- 127, /* (46) attribute ::= SAME AS object */
2023
- 127, /* (47) attribute ::= STRING textposition */
2024
- 127, /* (48) attribute ::= FIT */
2025
- 127, /* (49) attribute ::= BEHIND object */
2026
- 130, /* (50) withclause ::= DOT_E edge AT position */
2027
- 130, /* (51) withclause ::= edge AT position */
2028
- 102, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
2029
- 129, /* (53) boolproperty ::= CW */
2030
- 129, /* (54) boolproperty ::= CCW */
2031
- 129, /* (55) boolproperty ::= LARROW */
2032
- 129, /* (56) boolproperty ::= RARROW */
2033
- 129, /* (57) boolproperty ::= LRARROW */
2034
- 129, /* (58) boolproperty ::= INVIS */
2035
- 129, /* (59) boolproperty ::= THICK */
2036
- 129, /* (60) boolproperty ::= THIN */
2037
- 113, /* (61) textposition ::= */
2038
- 113, /* (62) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2039
- 108, /* (63) position ::= expr COMMA expr */
2040
- 108, /* (64) position ::= place PLUS expr COMMA expr */
2041
- 108, /* (65) position ::= place MINUS expr COMMA expr */
2042
- 108, /* (66) position ::= place PLUS LP expr COMMA expr RP */
2043
- 108, /* (67) position ::= place MINUS LP expr COMMA expr RP */
2044
- 108, /* (68) position ::= LP position COMMA position RP */
2045
- 108, /* (69) position ::= LP position RP */
2046
- 108, /* (70) position ::= expr between position AND position */
2047
- 108, /* (71) position ::= expr LT position COMMA position GT */
2048
- 108, /* (72) position ::= expr ABOVE position */
2049
- 108, /* (73) position ::= expr BELOW position */
2050
- 108, /* (74) position ::= expr LEFT OF position */
2051
- 108, /* (75) position ::= expr RIGHT OF position */
2052
- 108, /* (76) position ::= expr ON HEADING EDGEPT OF position */
2053
- 108, /* (77) position ::= expr HEADING EDGEPT OF position */
2054
- 108, /* (78) position ::= expr EDGEPT OF position */
2055
- 108, /* (79) position ::= expr ON HEADING expr FROM position */
2056
- 108, /* (80) position ::= expr HEADING expr FROM position */
2057
- 109, /* (81) place ::= edge OF object */
2058
- 132, /* (82) place2 ::= object */
2059
- 132, /* (83) place2 ::= object DOT_E edge */
2060
- 132, /* (84) place2 ::= NTH VERTEX OF object */
2061
- 110, /* (85) object ::= nth */
2062
- 110, /* (86) object ::= nth OF|IN object */
2063
- 111, /* (87) objectname ::= PLACENAME */
2064
- 111, /* (88) objectname ::= objectname DOT_U PLACENAME */
2065
- 112, /* (89) nth ::= NTH CLASSNAME */
2066
- 112, /* (90) nth ::= NTH LAST CLASSNAME */
2067
- 112, /* (91) nth ::= LAST CLASSNAME */
2068
- 112, /* (92) nth ::= LAST */
2069
- 112, /* (93) nth ::= NTH LB RB */
2070
- 112, /* (94) nth ::= NTH LAST LB RB */
2071
- 112, /* (95) nth ::= LAST LB RB */
2072
- 101, /* (96) expr ::= expr PLUS expr */
2073
- 101, /* (97) expr ::= expr MINUS expr */
2074
- 101, /* (98) expr ::= expr STAR expr */
2075
- 101, /* (99) expr ::= expr SLASH expr */
2076
- 101, /* (100) expr ::= MINUS expr */
2077
- 101, /* (101) expr ::= PLUS expr */
2078
- 101, /* (102) expr ::= LP expr RP */
2079
- 101, /* (103) expr ::= LP FILL|COLOR|THICKNESS RP */
2080
- 101, /* (104) expr ::= NUMBER */
2081
- 101, /* (105) expr ::= ID */
2082
- 101, /* (106) expr ::= FUNC1 LP expr RP */
2083
- 101, /* (107) expr ::= FUNC2 LP expr COMMA expr RP */
2084
- 101, /* (108) expr ::= DIST LP position COMMA position RP */
2085
- 101, /* (109) expr ::= place2 DOT_XY X */
2086
- 101, /* (110) expr ::= place2 DOT_XY Y */
2087
- 101, /* (111) expr ::= object DOT_L numproperty */
2088
- 101, /* (112) expr ::= object DOT_L dashproperty */
2089
- 101, /* (113) expr ::= object DOT_L colorproperty */
2090
- 115, /* (114) lvalue ::= ID */
2091
- 115, /* (115) lvalue ::= FILL */
2092
- 115, /* (116) lvalue ::= COLOR */
2093
- 115, /* (117) lvalue ::= THICKNESS */
2094
- 114, /* (118) rvalue ::= expr */
2095
- 120, /* (119) print ::= PRINT */
2096
- 121, /* (120) prlist ::= pritem */
2097
- 121, /* (121) prlist ::= prlist prsep pritem */
2098
- 104, /* (122) direction ::= UP */
2099
- 104, /* (123) direction ::= DOWN */
2100
- 104, /* (124) direction ::= LEFT */
2101
- 104, /* (125) direction ::= RIGHT */
2102
- 118, /* (126) optrelexpr ::= relexpr */
2103
- 124, /* (127) attribute_list ::= alist */
2104
- 126, /* (128) alist ::= */
2105
- 126, /* (129) alist ::= alist attribute */
2106
- 127, /* (130) attribute ::= boolproperty */
2107
- 127, /* (131) attribute ::= WITH withclause */
2108
- 128, /* (132) go ::= GO */
2109
- 128, /* (133) go ::= */
2110
- 116, /* (134) even ::= UNTIL EVEN WITH */
2111
- 116, /* (135) even ::= EVEN WITH */
2112
- 105, /* (136) dashproperty ::= DOTTED */
2113
- 105, /* (137) dashproperty ::= DASHED */
2114
- 106, /* (138) colorproperty ::= FILL */
2115
- 106, /* (139) colorproperty ::= COLOR */
2116
- 108, /* (140) position ::= place */
2117
- 131, /* (141) between ::= WAY BETWEEN */
2118
- 131, /* (142) between ::= BETWEEN */
2119
- 131, /* (143) between ::= OF THE WAY BETWEEN */
2120
- 109, /* (144) place ::= place2 */
2121
- 103, /* (145) edge ::= CENTER */
2122
- 103, /* (146) edge ::= EDGEPT */
2123
- 103, /* (147) edge ::= TOP */
2124
- 103, /* (148) edge ::= BOTTOM */
2125
- 103, /* (149) edge ::= START */
2126
- 103, /* (150) edge ::= END */
2127
- 103, /* (151) edge ::= RIGHT */
2128
- 103, /* (152) edge ::= LEFT */
2129
- 110, /* (153) object ::= objectname */
1989
+ 120, /* (0) document ::= statement_list */
1990
+ 98, /* (1) statement_list ::= statement */
1991
+ 98, /* (2) statement_list ::= statement_list EOL statement */
1992
+ 99, /* (3) statement ::= */
1993
+ 99, /* (4) statement ::= direction */
1994
+ 99, /* (5) statement ::= lvalue ASSIGN rvalue */
1995
+ 99, /* (6) statement ::= PLACENAME COLON unnamed_statement */
1996
+ 99, /* (7) statement ::= PLACENAME COLON position */
1997
+ 99, /* (8) statement ::= unnamed_statement */
1998
+ 99, /* (9) statement ::= print prlist */
1999
+ 99, /* (10) statement ::= ASSERT LP expr EQ expr RP */
2000
+ 99, /* (11) statement ::= ASSERT LP position EQ position RP */
2001
+ 99, /* (12) statement ::= DEFINE ID CODEBLOCK */
2002
+ 115, /* (13) rvalue ::= PLACENAME */
2003
+ 123, /* (14) pritem ::= FILL */
2004
+ 123, /* (15) pritem ::= COLOR */
2005
+ 123, /* (16) pritem ::= THICKNESS */
2006
+ 123, /* (17) pritem ::= rvalue */
2007
+ 123, /* (18) pritem ::= STRING */
2008
+ 124, /* (19) prsep ::= COMMA */
2009
+ 100, /* (20) unnamed_statement ::= basetype attribute_list */
2010
+ 101, /* (21) basetype ::= CLASSNAME */
2011
+ 101, /* (22) basetype ::= STRING textposition */
2012
+ 101, /* (23) basetype ::= LB savelist statement_list RB */
2013
+ 126, /* (24) savelist ::= */
2014
+ 118, /* (25) relexpr ::= expr */
2015
+ 118, /* (26) relexpr ::= expr PERCENT */
2016
+ 119, /* (27) optrelexpr ::= */
2017
+ 125, /* (28) attribute_list ::= relexpr alist */
2018
+ 128, /* (29) attribute ::= numproperty relexpr */
2019
+ 128, /* (30) attribute ::= dashproperty expr */
2020
+ 128, /* (31) attribute ::= dashproperty */
2021
+ 128, /* (32) attribute ::= colorproperty rvalue */
2022
+ 128, /* (33) attribute ::= go direction optrelexpr */
2023
+ 128, /* (34) attribute ::= go direction even position */
2024
+ 128, /* (35) attribute ::= CLOSE */
2025
+ 128, /* (36) attribute ::= CHOP */
2026
+ 128, /* (37) attribute ::= FROM position */
2027
+ 128, /* (38) attribute ::= TO position */
2028
+ 128, /* (39) attribute ::= THEN */
2029
+ 128, /* (40) attribute ::= THEN optrelexpr HEADING expr */
2030
+ 128, /* (41) attribute ::= THEN optrelexpr EDGEPT */
2031
+ 128, /* (42) attribute ::= GO optrelexpr HEADING expr */
2032
+ 128, /* (43) attribute ::= GO optrelexpr EDGEPT */
2033
+ 128, /* (44) attribute ::= AT position */
2034
+ 128, /* (45) attribute ::= SAME */
2035
+ 128, /* (46) attribute ::= SAME AS object */
2036
+ 128, /* (47) attribute ::= STRING textposition */
2037
+ 128, /* (48) attribute ::= FIT */
2038
+ 128, /* (49) attribute ::= BEHIND object */
2039
+ 131, /* (50) withclause ::= DOT_E edge AT position */
2040
+ 131, /* (51) withclause ::= edge AT position */
2041
+ 103, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
2042
+ 130, /* (53) boolproperty ::= CW */
2043
+ 130, /* (54) boolproperty ::= CCW */
2044
+ 130, /* (55) boolproperty ::= LARROW */
2045
+ 130, /* (56) boolproperty ::= RARROW */
2046
+ 130, /* (57) boolproperty ::= LRARROW */
2047
+ 130, /* (58) boolproperty ::= INVIS */
2048
+ 130, /* (59) boolproperty ::= THICK */
2049
+ 130, /* (60) boolproperty ::= THIN */
2050
+ 130, /* (61) boolproperty ::= SOLID */
2051
+ 114, /* (62) textposition ::= */
2052
+ 114, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2053
+ 109, /* (64) position ::= expr COMMA expr */
2054
+ 109, /* (65) position ::= place PLUS expr COMMA expr */
2055
+ 109, /* (66) position ::= place MINUS expr COMMA expr */
2056
+ 109, /* (67) position ::= place PLUS LP expr COMMA expr RP */
2057
+ 109, /* (68) position ::= place MINUS LP expr COMMA expr RP */
2058
+ 109, /* (69) position ::= LP position COMMA position RP */
2059
+ 109, /* (70) position ::= LP position RP */
2060
+ 109, /* (71) position ::= expr between position AND position */
2061
+ 109, /* (72) position ::= expr LT position COMMA position GT */
2062
+ 109, /* (73) position ::= expr ABOVE position */
2063
+ 109, /* (74) position ::= expr BELOW position */
2064
+ 109, /* (75) position ::= expr LEFT OF position */
2065
+ 109, /* (76) position ::= expr RIGHT OF position */
2066
+ 109, /* (77) position ::= expr ON HEADING EDGEPT OF position */
2067
+ 109, /* (78) position ::= expr HEADING EDGEPT OF position */
2068
+ 109, /* (79) position ::= expr EDGEPT OF position */
2069
+ 109, /* (80) position ::= expr ON HEADING expr FROM position */
2070
+ 109, /* (81) position ::= expr HEADING expr FROM position */
2071
+ 110, /* (82) place ::= edge OF object */
2072
+ 133, /* (83) place2 ::= object */
2073
+ 133, /* (84) place2 ::= object DOT_E edge */
2074
+ 133, /* (85) place2 ::= NTH VERTEX OF object */
2075
+ 111, /* (86) object ::= nth */
2076
+ 111, /* (87) object ::= nth OF|IN object */
2077
+ 112, /* (88) objectname ::= PLACENAME */
2078
+ 112, /* (89) objectname ::= objectname DOT_U PLACENAME */
2079
+ 113, /* (90) nth ::= NTH CLASSNAME */
2080
+ 113, /* (91) nth ::= NTH LAST CLASSNAME */
2081
+ 113, /* (92) nth ::= LAST CLASSNAME */
2082
+ 113, /* (93) nth ::= LAST */
2083
+ 113, /* (94) nth ::= NTH LB RB */
2084
+ 113, /* (95) nth ::= NTH LAST LB RB */
2085
+ 113, /* (96) nth ::= LAST LB RB */
2086
+ 102, /* (97) expr ::= expr PLUS expr */
2087
+ 102, /* (98) expr ::= expr MINUS expr */
2088
+ 102, /* (99) expr ::= expr STAR expr */
2089
+ 102, /* (100) expr ::= expr SLASH expr */
2090
+ 102, /* (101) expr ::= MINUS expr */
2091
+ 102, /* (102) expr ::= PLUS expr */
2092
+ 102, /* (103) expr ::= LP expr RP */
2093
+ 102, /* (104) expr ::= LP FILL|COLOR|THICKNESS RP */
2094
+ 102, /* (105) expr ::= NUMBER */
2095
+ 102, /* (106) expr ::= ID */
2096
+ 102, /* (107) expr ::= FUNC1 LP expr RP */
2097
+ 102, /* (108) expr ::= FUNC2 LP expr COMMA expr RP */
2098
+ 102, /* (109) expr ::= DIST LP position COMMA position RP */
2099
+ 102, /* (110) expr ::= place2 DOT_XY X */
2100
+ 102, /* (111) expr ::= place2 DOT_XY Y */
2101
+ 102, /* (112) expr ::= object DOT_L numproperty */
2102
+ 102, /* (113) expr ::= object DOT_L dashproperty */
2103
+ 102, /* (114) expr ::= object DOT_L colorproperty */
2104
+ 116, /* (115) lvalue ::= ID */
2105
+ 116, /* (116) lvalue ::= FILL */
2106
+ 116, /* (117) lvalue ::= COLOR */
2107
+ 116, /* (118) lvalue ::= THICKNESS */
2108
+ 115, /* (119) rvalue ::= expr */
2109
+ 121, /* (120) print ::= PRINT */
2110
+ 122, /* (121) prlist ::= pritem */
2111
+ 122, /* (122) prlist ::= prlist prsep pritem */
2112
+ 105, /* (123) direction ::= UP */
2113
+ 105, /* (124) direction ::= DOWN */
2114
+ 105, /* (125) direction ::= LEFT */
2115
+ 105, /* (126) direction ::= RIGHT */
2116
+ 119, /* (127) optrelexpr ::= relexpr */
2117
+ 125, /* (128) attribute_list ::= alist */
2118
+ 127, /* (129) alist ::= */
2119
+ 127, /* (130) alist ::= alist attribute */
2120
+ 128, /* (131) attribute ::= boolproperty */
2121
+ 128, /* (132) attribute ::= WITH withclause */
2122
+ 129, /* (133) go ::= GO */
2123
+ 129, /* (134) go ::= */
2124
+ 117, /* (135) even ::= UNTIL EVEN WITH */
2125
+ 117, /* (136) even ::= EVEN WITH */
2126
+ 106, /* (137) dashproperty ::= DOTTED */
2127
+ 106, /* (138) dashproperty ::= DASHED */
2128
+ 107, /* (139) colorproperty ::= FILL */
2129
+ 107, /* (140) colorproperty ::= COLOR */
2130
+ 109, /* (141) position ::= place */
2131
+ 132, /* (142) between ::= WAY BETWEEN */
2132
+ 132, /* (143) between ::= BETWEEN */
2133
+ 132, /* (144) between ::= OF THE WAY BETWEEN */
2134
+ 110, /* (145) place ::= place2 */
2135
+ 104, /* (146) edge ::= CENTER */
2136
+ 104, /* (147) edge ::= EDGEPT */
2137
+ 104, /* (148) edge ::= TOP */
2138
+ 104, /* (149) edge ::= BOTTOM */
2139
+ 104, /* (150) edge ::= START */
2140
+ 104, /* (151) edge ::= END */
2141
+ 104, /* (152) edge ::= RIGHT */
2142
+ 104, /* (153) edge ::= LEFT */
2143
+ 111, /* (154) object ::= objectname */
21302144
};
21312145
21322146
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
21332147
** of symbols on the right-hand side of that rule. */
21342148
static const signed char yyRuleInfoNRhs[] = {
@@ -2191,103 +2205,104 @@
21912205
-1, /* (56) boolproperty ::= RARROW */
21922206
-1, /* (57) boolproperty ::= LRARROW */
21932207
-1, /* (58) boolproperty ::= INVIS */
21942208
-1, /* (59) boolproperty ::= THICK */
21952209
-1, /* (60) boolproperty ::= THIN */
2196
- 0, /* (61) textposition ::= */
2197
- -2, /* (62) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2198
- -3, /* (63) position ::= expr COMMA expr */
2199
- -5, /* (64) position ::= place PLUS expr COMMA expr */
2200
- -5, /* (65) position ::= place MINUS expr COMMA expr */
2201
- -7, /* (66) position ::= place PLUS LP expr COMMA expr RP */
2202
- -7, /* (67) position ::= place MINUS LP expr COMMA expr RP */
2203
- -5, /* (68) position ::= LP position COMMA position RP */
2204
- -3, /* (69) position ::= LP position RP */
2205
- -5, /* (70) position ::= expr between position AND position */
2206
- -6, /* (71) position ::= expr LT position COMMA position GT */
2207
- -3, /* (72) position ::= expr ABOVE position */
2208
- -3, /* (73) position ::= expr BELOW position */
2209
- -4, /* (74) position ::= expr LEFT OF position */
2210
- -4, /* (75) position ::= expr RIGHT OF position */
2211
- -6, /* (76) position ::= expr ON HEADING EDGEPT OF position */
2212
- -5, /* (77) position ::= expr HEADING EDGEPT OF position */
2213
- -4, /* (78) position ::= expr EDGEPT OF position */
2214
- -6, /* (79) position ::= expr ON HEADING expr FROM position */
2215
- -5, /* (80) position ::= expr HEADING expr FROM position */
2216
- -3, /* (81) place ::= edge OF object */
2217
- -1, /* (82) place2 ::= object */
2218
- -3, /* (83) place2 ::= object DOT_E edge */
2219
- -4, /* (84) place2 ::= NTH VERTEX OF object */
2220
- -1, /* (85) object ::= nth */
2221
- -3, /* (86) object ::= nth OF|IN object */
2222
- -1, /* (87) objectname ::= PLACENAME */
2223
- -3, /* (88) objectname ::= objectname DOT_U PLACENAME */
2224
- -2, /* (89) nth ::= NTH CLASSNAME */
2225
- -3, /* (90) nth ::= NTH LAST CLASSNAME */
2226
- -2, /* (91) nth ::= LAST CLASSNAME */
2227
- -1, /* (92) nth ::= LAST */
2228
- -3, /* (93) nth ::= NTH LB RB */
2229
- -4, /* (94) nth ::= NTH LAST LB RB */
2230
- -3, /* (95) nth ::= LAST LB RB */
2231
- -3, /* (96) expr ::= expr PLUS expr */
2232
- -3, /* (97) expr ::= expr MINUS expr */
2233
- -3, /* (98) expr ::= expr STAR expr */
2234
- -3, /* (99) expr ::= expr SLASH expr */
2235
- -2, /* (100) expr ::= MINUS expr */
2236
- -2, /* (101) expr ::= PLUS expr */
2237
- -3, /* (102) expr ::= LP expr RP */
2238
- -3, /* (103) expr ::= LP FILL|COLOR|THICKNESS RP */
2239
- -1, /* (104) expr ::= NUMBER */
2240
- -1, /* (105) expr ::= ID */
2241
- -4, /* (106) expr ::= FUNC1 LP expr RP */
2242
- -6, /* (107) expr ::= FUNC2 LP expr COMMA expr RP */
2243
- -6, /* (108) expr ::= DIST LP position COMMA position RP */
2244
- -3, /* (109) expr ::= place2 DOT_XY X */
2245
- -3, /* (110) expr ::= place2 DOT_XY Y */
2246
- -3, /* (111) expr ::= object DOT_L numproperty */
2247
- -3, /* (112) expr ::= object DOT_L dashproperty */
2248
- -3, /* (113) expr ::= object DOT_L colorproperty */
2249
- -1, /* (114) lvalue ::= ID */
2250
- -1, /* (115) lvalue ::= FILL */
2251
- -1, /* (116) lvalue ::= COLOR */
2252
- -1, /* (117) lvalue ::= THICKNESS */
2253
- -1, /* (118) rvalue ::= expr */
2254
- -1, /* (119) print ::= PRINT */
2255
- -1, /* (120) prlist ::= pritem */
2256
- -3, /* (121) prlist ::= prlist prsep pritem */
2257
- -1, /* (122) direction ::= UP */
2258
- -1, /* (123) direction ::= DOWN */
2259
- -1, /* (124) direction ::= LEFT */
2260
- -1, /* (125) direction ::= RIGHT */
2261
- -1, /* (126) optrelexpr ::= relexpr */
2262
- -1, /* (127) attribute_list ::= alist */
2263
- 0, /* (128) alist ::= */
2264
- -2, /* (129) alist ::= alist attribute */
2265
- -1, /* (130) attribute ::= boolproperty */
2266
- -2, /* (131) attribute ::= WITH withclause */
2267
- -1, /* (132) go ::= GO */
2268
- 0, /* (133) go ::= */
2269
- -3, /* (134) even ::= UNTIL EVEN WITH */
2270
- -2, /* (135) even ::= EVEN WITH */
2271
- -1, /* (136) dashproperty ::= DOTTED */
2272
- -1, /* (137) dashproperty ::= DASHED */
2273
- -1, /* (138) colorproperty ::= FILL */
2274
- -1, /* (139) colorproperty ::= COLOR */
2275
- -1, /* (140) position ::= place */
2276
- -2, /* (141) between ::= WAY BETWEEN */
2277
- -1, /* (142) between ::= BETWEEN */
2278
- -4, /* (143) between ::= OF THE WAY BETWEEN */
2279
- -1, /* (144) place ::= place2 */
2280
- -1, /* (145) edge ::= CENTER */
2281
- -1, /* (146) edge ::= EDGEPT */
2282
- -1, /* (147) edge ::= TOP */
2283
- -1, /* (148) edge ::= BOTTOM */
2284
- -1, /* (149) edge ::= START */
2285
- -1, /* (150) edge ::= END */
2286
- -1, /* (151) edge ::= RIGHT */
2287
- -1, /* (152) edge ::= LEFT */
2288
- -1, /* (153) object ::= objectname */
2210
+ -1, /* (61) boolproperty ::= SOLID */
2211
+ 0, /* (62) textposition ::= */
2212
+ -2, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2213
+ -3, /* (64) position ::= expr COMMA expr */
2214
+ -5, /* (65) position ::= place PLUS expr COMMA expr */
2215
+ -5, /* (66) position ::= place MINUS expr COMMA expr */
2216
+ -7, /* (67) position ::= place PLUS LP expr COMMA expr RP */
2217
+ -7, /* (68) position ::= place MINUS LP expr COMMA expr RP */
2218
+ -5, /* (69) position ::= LP position COMMA position RP */
2219
+ -3, /* (70) position ::= LP position RP */
2220
+ -5, /* (71) position ::= expr between position AND position */
2221
+ -6, /* (72) position ::= expr LT position COMMA position GT */
2222
+ -3, /* (73) position ::= expr ABOVE position */
2223
+ -3, /* (74) position ::= expr BELOW position */
2224
+ -4, /* (75) position ::= expr LEFT OF position */
2225
+ -4, /* (76) position ::= expr RIGHT OF position */
2226
+ -6, /* (77) position ::= expr ON HEADING EDGEPT OF position */
2227
+ -5, /* (78) position ::= expr HEADING EDGEPT OF position */
2228
+ -4, /* (79) position ::= expr EDGEPT OF position */
2229
+ -6, /* (80) position ::= expr ON HEADING expr FROM position */
2230
+ -5, /* (81) position ::= expr HEADING expr FROM position */
2231
+ -3, /* (82) place ::= edge OF object */
2232
+ -1, /* (83) place2 ::= object */
2233
+ -3, /* (84) place2 ::= object DOT_E edge */
2234
+ -4, /* (85) place2 ::= NTH VERTEX OF object */
2235
+ -1, /* (86) object ::= nth */
2236
+ -3, /* (87) object ::= nth OF|IN object */
2237
+ -1, /* (88) objectname ::= PLACENAME */
2238
+ -3, /* (89) objectname ::= objectname DOT_U PLACENAME */
2239
+ -2, /* (90) nth ::= NTH CLASSNAME */
2240
+ -3, /* (91) nth ::= NTH LAST CLASSNAME */
2241
+ -2, /* (92) nth ::= LAST CLASSNAME */
2242
+ -1, /* (93) nth ::= LAST */
2243
+ -3, /* (94) nth ::= NTH LB RB */
2244
+ -4, /* (95) nth ::= NTH LAST LB RB */
2245
+ -3, /* (96) nth ::= LAST LB RB */
2246
+ -3, /* (97) expr ::= expr PLUS expr */
2247
+ -3, /* (98) expr ::= expr MINUS expr */
2248
+ -3, /* (99) expr ::= expr STAR expr */
2249
+ -3, /* (100) expr ::= expr SLASH expr */
2250
+ -2, /* (101) expr ::= MINUS expr */
2251
+ -2, /* (102) expr ::= PLUS expr */
2252
+ -3, /* (103) expr ::= LP expr RP */
2253
+ -3, /* (104) expr ::= LP FILL|COLOR|THICKNESS RP */
2254
+ -1, /* (105) expr ::= NUMBER */
2255
+ -1, /* (106) expr ::= ID */
2256
+ -4, /* (107) expr ::= FUNC1 LP expr RP */
2257
+ -6, /* (108) expr ::= FUNC2 LP expr COMMA expr RP */
2258
+ -6, /* (109) expr ::= DIST LP position COMMA position RP */
2259
+ -3, /* (110) expr ::= place2 DOT_XY X */
2260
+ -3, /* (111) expr ::= place2 DOT_XY Y */
2261
+ -3, /* (112) expr ::= object DOT_L numproperty */
2262
+ -3, /* (113) expr ::= object DOT_L dashproperty */
2263
+ -3, /* (114) expr ::= object DOT_L colorproperty */
2264
+ -1, /* (115) lvalue ::= ID */
2265
+ -1, /* (116) lvalue ::= FILL */
2266
+ -1, /* (117) lvalue ::= COLOR */
2267
+ -1, /* (118) lvalue ::= THICKNESS */
2268
+ -1, /* (119) rvalue ::= expr */
2269
+ -1, /* (120) print ::= PRINT */
2270
+ -1, /* (121) prlist ::= pritem */
2271
+ -3, /* (122) prlist ::= prlist prsep pritem */
2272
+ -1, /* (123) direction ::= UP */
2273
+ -1, /* (124) direction ::= DOWN */
2274
+ -1, /* (125) direction ::= LEFT */
2275
+ -1, /* (126) direction ::= RIGHT */
2276
+ -1, /* (127) optrelexpr ::= relexpr */
2277
+ -1, /* (128) attribute_list ::= alist */
2278
+ 0, /* (129) alist ::= */
2279
+ -2, /* (130) alist ::= alist attribute */
2280
+ -1, /* (131) attribute ::= boolproperty */
2281
+ -2, /* (132) attribute ::= WITH withclause */
2282
+ -1, /* (133) go ::= GO */
2283
+ 0, /* (134) go ::= */
2284
+ -3, /* (135) even ::= UNTIL EVEN WITH */
2285
+ -2, /* (136) even ::= EVEN WITH */
2286
+ -1, /* (137) dashproperty ::= DOTTED */
2287
+ -1, /* (138) dashproperty ::= DASHED */
2288
+ -1, /* (139) colorproperty ::= FILL */
2289
+ -1, /* (140) colorproperty ::= COLOR */
2290
+ -1, /* (141) position ::= place */
2291
+ -2, /* (142) between ::= WAY BETWEEN */
2292
+ -1, /* (143) between ::= BETWEEN */
2293
+ -4, /* (144) between ::= OF THE WAY BETWEEN */
2294
+ -1, /* (145) place ::= place2 */
2295
+ -1, /* (146) edge ::= CENTER */
2296
+ -1, /* (147) edge ::= EDGEPT */
2297
+ -1, /* (148) edge ::= TOP */
2298
+ -1, /* (149) edge ::= BOTTOM */
2299
+ -1, /* (150) edge ::= START */
2300
+ -1, /* (151) edge ::= END */
2301
+ -1, /* (152) edge ::= RIGHT */
2302
+ -1, /* (153) edge ::= LEFT */
2303
+ -1, /* (154) object ::= objectname */
22892304
};
22902305
22912306
static void yy_accept(yyParser*); /* Forward Declaration */
22922307
22932308
/*
@@ -2376,650 +2391,656 @@
23762391
*/
23772392
/********** Begin reduce actions **********************************************/
23782393
YYMINORTYPE yylhsminor;
23792394
case 0: /* document ::= statement_list */
23802395
#line 521 "pikchr.y"
2381
-{pik_render(p,yymsp[0].minor.yy191);}
2382
-#line 2407 "pikchr.c"
2396
+{pik_render(p,yymsp[0].minor.yy119);}
2397
+#line 2422 "pikchr.c"
23832398
break;
23842399
case 1: /* statement_list ::= statement */
23852400
#line 524 "pikchr.y"
2386
-{ yylhsminor.yy191 = pik_elist_append(p,0,yymsp[0].minor.yy138); }
2387
-#line 2412 "pikchr.c"
2388
- yymsp[0].minor.yy191 = yylhsminor.yy191;
2401
+{ yylhsminor.yy119 = pik_elist_append(p,0,yymsp[0].minor.yy38); }
2402
+#line 2427 "pikchr.c"
2403
+ yymsp[0].minor.yy119 = yylhsminor.yy119;
23892404
break;
23902405
case 2: /* statement_list ::= statement_list EOL statement */
23912406
#line 526 "pikchr.y"
2392
-{ yylhsminor.yy191 = pik_elist_append(p,yymsp[-2].minor.yy191,yymsp[0].minor.yy138); }
2393
-#line 2418 "pikchr.c"
2394
- yymsp[-2].minor.yy191 = yylhsminor.yy191;
2407
+{ yylhsminor.yy119 = pik_elist_append(p,yymsp[-2].minor.yy119,yymsp[0].minor.yy38); }
2408
+#line 2433 "pikchr.c"
2409
+ yymsp[-2].minor.yy119 = yylhsminor.yy119;
23952410
break;
23962411
case 3: /* statement ::= */
23972412
#line 529 "pikchr.y"
2398
-{ yymsp[1].minor.yy138 = 0; }
2399
-#line 2424 "pikchr.c"
2413
+{ yymsp[1].minor.yy38 = 0; }
2414
+#line 2439 "pikchr.c"
24002415
break;
24012416
case 4: /* statement ::= direction */
24022417
#line 530 "pikchr.y"
2403
-{ pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy138=0; }
2404
-#line 2429 "pikchr.c"
2405
- yymsp[0].minor.yy138 = yylhsminor.yy138;
2418
+{ pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy38=0; }
2419
+#line 2444 "pikchr.c"
2420
+ yymsp[0].minor.yy38 = yylhsminor.yy38;
24062421
break;
24072422
case 5: /* statement ::= lvalue ASSIGN rvalue */
24082423
#line 531 "pikchr.y"
2409
-{pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy121,&yymsp[-1].minor.yy0); yylhsminor.yy138=0;}
2410
-#line 2435 "pikchr.c"
2411
- yymsp[-2].minor.yy138 = yylhsminor.yy138;
2424
+{pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy265,&yymsp[-1].minor.yy0); yylhsminor.yy38=0;}
2425
+#line 2450 "pikchr.c"
2426
+ yymsp[-2].minor.yy38 = yylhsminor.yy38;
24122427
break;
24132428
case 6: /* statement ::= PLACENAME COLON unnamed_statement */
24142429
#line 533 "pikchr.y"
2415
-{ yylhsminor.yy138 = yymsp[0].minor.yy138; pik_elem_setname(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0); }
2416
-#line 2441 "pikchr.c"
2417
- yymsp[-2].minor.yy138 = yylhsminor.yy138;
2430
+{ yylhsminor.yy38 = yymsp[0].minor.yy38; pik_elem_setname(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0); }
2431
+#line 2456 "pikchr.c"
2432
+ yymsp[-2].minor.yy38 = yylhsminor.yy38;
24182433
break;
24192434
case 7: /* statement ::= PLACENAME COLON position */
24202435
#line 535 "pikchr.y"
2421
-{ yylhsminor.yy138 = pik_elem_new(p,0,0,0);
2422
- if(yylhsminor.yy138){ yylhsminor.yy138->ptAt = yymsp[0].minor.yy47; pik_elem_setname(p,yylhsminor.yy138,&yymsp[-2].minor.yy0); }}
2423
-#line 2448 "pikchr.c"
2424
- yymsp[-2].minor.yy138 = yylhsminor.yy138;
2436
+{ yylhsminor.yy38 = pik_elem_new(p,0,0,0);
2437
+ if(yylhsminor.yy38){ yylhsminor.yy38->ptAt = yymsp[0].minor.yy43; pik_elem_setname(p,yylhsminor.yy38,&yymsp[-2].minor.yy0); }}
2438
+#line 2463 "pikchr.c"
2439
+ yymsp[-2].minor.yy38 = yylhsminor.yy38;
24252440
break;
24262441
case 8: /* statement ::= unnamed_statement */
24272442
#line 537 "pikchr.y"
2428
-{yylhsminor.yy138 = yymsp[0].minor.yy138;}
2429
-#line 2454 "pikchr.c"
2430
- yymsp[0].minor.yy138 = yylhsminor.yy138;
2443
+{yylhsminor.yy38 = yymsp[0].minor.yy38;}
2444
+#line 2469 "pikchr.c"
2445
+ yymsp[0].minor.yy38 = yylhsminor.yy38;
24312446
break;
24322447
case 9: /* statement ::= print prlist */
24332448
#line 538 "pikchr.y"
2434
-{pik_append(p,"<br>\n",5); yymsp[-1].minor.yy138=0;}
2435
-#line 2460 "pikchr.c"
2449
+{pik_append(p,"<br>\n",5); yymsp[-1].minor.yy38=0;}
2450
+#line 2475 "pikchr.c"
24362451
break;
24372452
case 10: /* statement ::= ASSERT LP expr EQ expr RP */
24382453
#line 543 "pikchr.y"
2439
-{yymsp[-5].minor.yy138=pik_assert(p,yymsp[-3].minor.yy121,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy121);}
2440
-#line 2465 "pikchr.c"
2454
+{yymsp[-5].minor.yy38=pik_assert(p,yymsp[-3].minor.yy265,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy265);}
2455
+#line 2480 "pikchr.c"
24412456
break;
24422457
case 11: /* statement ::= ASSERT LP position EQ position RP */
24432458
#line 545 "pikchr.y"
2444
-{yymsp[-5].minor.yy138=pik_position_assert(p,&yymsp[-3].minor.yy47,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy47);}
2445
-#line 2470 "pikchr.c"
2459
+{yymsp[-5].minor.yy38=pik_position_assert(p,&yymsp[-3].minor.yy43,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy43);}
2460
+#line 2485 "pikchr.c"
24462461
break;
24472462
case 12: /* statement ::= DEFINE ID CODEBLOCK */
24482463
#line 546 "pikchr.y"
2449
-{yymsp[-2].minor.yy138=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
2450
-#line 2475 "pikchr.c"
2464
+{yymsp[-2].minor.yy38=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
2465
+#line 2490 "pikchr.c"
24512466
break;
24522467
case 13: /* rvalue ::= PLACENAME */
24532468
#line 557 "pikchr.y"
2454
-{yylhsminor.yy121 = pik_lookup_color(p,&yymsp[0].minor.yy0);}
2455
-#line 2480 "pikchr.c"
2456
- yymsp[0].minor.yy121 = yylhsminor.yy121;
2469
+{yylhsminor.yy265 = pik_lookup_color(p,&yymsp[0].minor.yy0);}
2470
+#line 2495 "pikchr.c"
2471
+ yymsp[0].minor.yy265 = yylhsminor.yy265;
24572472
break;
24582473
case 14: /* pritem ::= FILL */
24592474
case 15: /* pritem ::= COLOR */ yytestcase(yyruleno==15);
24602475
case 16: /* pritem ::= THICKNESS */ yytestcase(yyruleno==16);
24612476
#line 562 "pikchr.y"
24622477
{pik_append_num(p,"",pik_value(p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.n,0));}
2463
-#line 2488 "pikchr.c"
2478
+#line 2503 "pikchr.c"
24642479
break;
24652480
case 17: /* pritem ::= rvalue */
24662481
#line 565 "pikchr.y"
2467
-{pik_append_num(p,"",yymsp[0].minor.yy121);}
2468
-#line 2493 "pikchr.c"
2482
+{pik_append_num(p,"",yymsp[0].minor.yy265);}
2483
+#line 2508 "pikchr.c"
24692484
break;
24702485
case 18: /* pritem ::= STRING */
24712486
#line 566 "pikchr.y"
24722487
{pik_append_text(p,yymsp[0].minor.yy0.z+1,yymsp[0].minor.yy0.n-2,0);}
2473
-#line 2498 "pikchr.c"
2488
+#line 2513 "pikchr.c"
24742489
break;
24752490
case 19: /* prsep ::= COMMA */
24762491
#line 567 "pikchr.y"
24772492
{pik_append(p, " ", 1);}
2478
-#line 2503 "pikchr.c"
2493
+#line 2518 "pikchr.c"
24792494
break;
24802495
case 20: /* unnamed_statement ::= basetype attribute_list */
24812496
#line 570 "pikchr.y"
2482
-{yylhsminor.yy138 = yymsp[-1].minor.yy138; pik_after_adding_attributes(p,yylhsminor.yy138);}
2483
-#line 2508 "pikchr.c"
2484
- yymsp[-1].minor.yy138 = yylhsminor.yy138;
2497
+{yylhsminor.yy38 = yymsp[-1].minor.yy38; pik_after_adding_attributes(p,yylhsminor.yy38);}
2498
+#line 2523 "pikchr.c"
2499
+ yymsp[-1].minor.yy38 = yylhsminor.yy38;
24852500
break;
24862501
case 21: /* basetype ::= CLASSNAME */
24872502
#line 572 "pikchr.y"
2488
-{yylhsminor.yy138 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); }
2489
-#line 2514 "pikchr.c"
2490
- yymsp[0].minor.yy138 = yylhsminor.yy138;
2503
+{yylhsminor.yy38 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); }
2504
+#line 2529 "pikchr.c"
2505
+ yymsp[0].minor.yy38 = yylhsminor.yy38;
24912506
break;
24922507
case 22: /* basetype ::= STRING textposition */
24932508
#line 574 "pikchr.y"
2494
-{yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy46; yylhsminor.yy138 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); }
2495
-#line 2520 "pikchr.c"
2496
- yymsp[-1].minor.yy138 = yylhsminor.yy138;
2509
+{yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy196; yylhsminor.yy38 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); }
2510
+#line 2535 "pikchr.c"
2511
+ yymsp[-1].minor.yy38 = yylhsminor.yy38;
24972512
break;
24982513
case 23: /* basetype ::= LB savelist statement_list RB */
24992514
#line 576 "pikchr.y"
2500
-{ p->list = yymsp[-2].minor.yy191; yymsp[-3].minor.yy138 = pik_elem_new(p,0,0,yymsp[-1].minor.yy191); if(yymsp[-3].minor.yy138) yymsp[-3].minor.yy138->errTok = yymsp[0].minor.yy0; }
2501
-#line 2526 "pikchr.c"
2515
+{ 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; }
2516
+#line 2541 "pikchr.c"
25022517
break;
25032518
case 24: /* savelist ::= */
25042519
#line 581 "pikchr.y"
2505
-{yymsp[1].minor.yy191 = p->list; p->list = 0;}
2506
-#line 2531 "pikchr.c"
2520
+{yymsp[1].minor.yy119 = p->list; p->list = 0;}
2521
+#line 2546 "pikchr.c"
25072522
break;
25082523
case 25: /* relexpr ::= expr */
25092524
#line 588 "pikchr.y"
2510
-{yylhsminor.yy134.rAbs = yymsp[0].minor.yy121; yylhsminor.yy134.rRel = 0;}
2511
-#line 2536 "pikchr.c"
2512
- yymsp[0].minor.yy134 = yylhsminor.yy134;
2525
+{yylhsminor.yy200.rAbs = yymsp[0].minor.yy265; yylhsminor.yy200.rRel = 0;}
2526
+#line 2551 "pikchr.c"
2527
+ yymsp[0].minor.yy200 = yylhsminor.yy200;
25132528
break;
25142529
case 26: /* relexpr ::= expr PERCENT */
25152530
#line 589 "pikchr.y"
2516
-{yylhsminor.yy134.rAbs = 0; yylhsminor.yy134.rRel = yymsp[-1].minor.yy121/100;}
2517
-#line 2542 "pikchr.c"
2518
- yymsp[-1].minor.yy134 = yylhsminor.yy134;
2531
+{yylhsminor.yy200.rAbs = 0; yylhsminor.yy200.rRel = yymsp[-1].minor.yy265/100;}
2532
+#line 2557 "pikchr.c"
2533
+ yymsp[-1].minor.yy200 = yylhsminor.yy200;
25192534
break;
25202535
case 27: /* optrelexpr ::= */
25212536
#line 591 "pikchr.y"
2522
-{yymsp[1].minor.yy134.rAbs = 0; yymsp[1].minor.yy134.rRel = 1.0;}
2523
-#line 2548 "pikchr.c"
2537
+{yymsp[1].minor.yy200.rAbs = 0; yymsp[1].minor.yy200.rRel = 1.0;}
2538
+#line 2563 "pikchr.c"
25242539
break;
25252540
case 28: /* attribute_list ::= relexpr alist */
25262541
#line 593 "pikchr.y"
2527
-{pik_add_direction(p,0,&yymsp[-1].minor.yy134);}
2528
-#line 2553 "pikchr.c"
2542
+{pik_add_direction(p,0,&yymsp[-1].minor.yy200);}
2543
+#line 2568 "pikchr.c"
25292544
break;
25302545
case 29: /* attribute ::= numproperty relexpr */
25312546
#line 597 "pikchr.y"
2532
-{ pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy134); }
2533
-#line 2558 "pikchr.c"
2547
+{ pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy200); }
2548
+#line 2573 "pikchr.c"
25342549
break;
25352550
case 30: /* attribute ::= dashproperty expr */
25362551
#line 598 "pikchr.y"
2537
-{ pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy121); }
2538
-#line 2563 "pikchr.c"
2552
+{ pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy265); }
2553
+#line 2578 "pikchr.c"
25392554
break;
25402555
case 31: /* attribute ::= dashproperty */
25412556
#line 599 "pikchr.y"
25422557
{ pik_set_dashed(p,&yymsp[0].minor.yy0,0); }
2543
-#line 2568 "pikchr.c"
2558
+#line 2583 "pikchr.c"
25442559
break;
25452560
case 32: /* attribute ::= colorproperty rvalue */
25462561
#line 600 "pikchr.y"
2547
-{ pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy121); }
2548
-#line 2573 "pikchr.c"
2562
+{ pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy265); }
2563
+#line 2588 "pikchr.c"
25492564
break;
25502565
case 33: /* attribute ::= go direction optrelexpr */
25512566
#line 601 "pikchr.y"
2552
-{ pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy134);}
2553
-#line 2578 "pikchr.c"
2567
+{ pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy200);}
2568
+#line 2593 "pikchr.c"
25542569
break;
25552570
case 34: /* attribute ::= go direction even position */
25562571
#line 602 "pikchr.y"
2557
-{pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy47);}
2558
-#line 2583 "pikchr.c"
2572
+{pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy43);}
2573
+#line 2598 "pikchr.c"
25592574
break;
25602575
case 35: /* attribute ::= CLOSE */
25612576
#line 603 "pikchr.y"
25622577
{ pik_close_path(p,&yymsp[0].minor.yy0); }
2563
-#line 2588 "pikchr.c"
2578
+#line 2603 "pikchr.c"
25642579
break;
25652580
case 36: /* attribute ::= CHOP */
25662581
#line 604 "pikchr.y"
25672582
{ p->cur->bChop = 1; }
2568
-#line 2593 "pikchr.c"
2583
+#line 2608 "pikchr.c"
25692584
break;
25702585
case 37: /* attribute ::= FROM position */
25712586
#line 605 "pikchr.y"
2572
-{ pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy47); }
2573
-#line 2598 "pikchr.c"
2587
+{ pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy43); }
2588
+#line 2613 "pikchr.c"
25742589
break;
25752590
case 38: /* attribute ::= TO position */
25762591
#line 606 "pikchr.y"
2577
-{ pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy47); }
2578
-#line 2603 "pikchr.c"
2592
+{ pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy43); }
2593
+#line 2618 "pikchr.c"
25792594
break;
25802595
case 39: /* attribute ::= THEN */
25812596
#line 607 "pikchr.y"
25822597
{ pik_then(p, &yymsp[0].minor.yy0, p->cur); }
2583
-#line 2608 "pikchr.c"
2598
+#line 2623 "pikchr.c"
25842599
break;
25852600
case 40: /* attribute ::= THEN optrelexpr HEADING expr */
25862601
case 42: /* attribute ::= GO optrelexpr HEADING expr */ yytestcase(yyruleno==42);
25872602
#line 609 "pikchr.y"
2588
-{pik_move_hdg(p,&yymsp[-2].minor.yy134,&yymsp[-1].minor.yy0,yymsp[0].minor.yy121,0,&yymsp[-3].minor.yy0);}
2589
-#line 2614 "pikchr.c"
2603
+{pik_move_hdg(p,&yymsp[-2].minor.yy200,&yymsp[-1].minor.yy0,yymsp[0].minor.yy265,0,&yymsp[-3].minor.yy0);}
2604
+#line 2629 "pikchr.c"
25902605
break;
25912606
case 41: /* attribute ::= THEN optrelexpr EDGEPT */
25922607
case 43: /* attribute ::= GO optrelexpr EDGEPT */ yytestcase(yyruleno==43);
25932608
#line 610 "pikchr.y"
2594
-{pik_move_hdg(p,&yymsp[-1].minor.yy134,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);}
2595
-#line 2620 "pikchr.c"
2609
+{pik_move_hdg(p,&yymsp[-1].minor.yy200,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);}
2610
+#line 2635 "pikchr.c"
25962611
break;
25972612
case 44: /* attribute ::= AT position */
25982613
#line 615 "pikchr.y"
2599
-{ pik_set_at(p,0,&yymsp[0].minor.yy47,&yymsp[-1].minor.yy0); }
2600
-#line 2625 "pikchr.c"
2614
+{ pik_set_at(p,0,&yymsp[0].minor.yy43,&yymsp[-1].minor.yy0); }
2615
+#line 2640 "pikchr.c"
26012616
break;
26022617
case 45: /* attribute ::= SAME */
26032618
#line 617 "pikchr.y"
26042619
{pik_same(p,0,&yymsp[0].minor.yy0);}
2605
-#line 2630 "pikchr.c"
2620
+#line 2645 "pikchr.c"
26062621
break;
26072622
case 46: /* attribute ::= SAME AS object */
26082623
#line 618 "pikchr.y"
2609
-{pik_same(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0);}
2610
-#line 2635 "pikchr.c"
2624
+{pik_same(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);}
2625
+#line 2650 "pikchr.c"
26112626
break;
26122627
case 47: /* attribute ::= STRING textposition */
26132628
#line 619 "pikchr.y"
2614
-{pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy46);}
2615
-#line 2640 "pikchr.c"
2629
+{pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy196);}
2630
+#line 2655 "pikchr.c"
26162631
break;
26172632
case 48: /* attribute ::= FIT */
26182633
#line 620 "pikchr.y"
26192634
{pik_size_to_fit(p,&yymsp[0].minor.yy0,3); }
2620
-#line 2645 "pikchr.c"
2635
+#line 2660 "pikchr.c"
26212636
break;
26222637
case 49: /* attribute ::= BEHIND object */
26232638
#line 621 "pikchr.y"
2624
-{pik_behind(p,yymsp[0].minor.yy138);}
2625
-#line 2650 "pikchr.c"
2639
+{pik_behind(p,yymsp[0].minor.yy38);}
2640
+#line 2665 "pikchr.c"
26262641
break;
26272642
case 50: /* withclause ::= DOT_E edge AT position */
26282643
case 51: /* withclause ::= edge AT position */ yytestcase(yyruleno==51);
26292644
#line 629 "pikchr.y"
2630
-{ pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy47,&yymsp[-1].minor.yy0); }
2631
-#line 2656 "pikchr.c"
2645
+{ pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy43,&yymsp[-1].minor.yy0); }
2646
+#line 2671 "pikchr.c"
26322647
break;
26332648
case 52: /* numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
26342649
#line 633 "pikchr.y"
26352650
{yylhsminor.yy0 = yymsp[0].minor.yy0;}
2636
-#line 2661 "pikchr.c"
2651
+#line 2676 "pikchr.c"
26372652
yymsp[0].minor.yy0 = yylhsminor.yy0;
26382653
break;
26392654
case 53: /* boolproperty ::= CW */
26402655
#line 644 "pikchr.y"
26412656
{p->cur->cw = 1;}
2642
-#line 2667 "pikchr.c"
2657
+#line 2682 "pikchr.c"
26432658
break;
26442659
case 54: /* boolproperty ::= CCW */
26452660
#line 645 "pikchr.y"
26462661
{p->cur->cw = 0;}
2647
-#line 2672 "pikchr.c"
2662
+#line 2687 "pikchr.c"
26482663
break;
26492664
case 55: /* boolproperty ::= LARROW */
26502665
#line 646 "pikchr.y"
26512666
{p->cur->larrow=1; p->cur->rarrow=0; }
2652
-#line 2677 "pikchr.c"
2667
+#line 2692 "pikchr.c"
26532668
break;
26542669
case 56: /* boolproperty ::= RARROW */
26552670
#line 647 "pikchr.y"
26562671
{p->cur->larrow=0; p->cur->rarrow=1; }
2657
-#line 2682 "pikchr.c"
2672
+#line 2697 "pikchr.c"
26582673
break;
26592674
case 57: /* boolproperty ::= LRARROW */
26602675
#line 648 "pikchr.y"
26612676
{p->cur->larrow=1; p->cur->rarrow=1; }
2662
-#line 2687 "pikchr.c"
2677
+#line 2702 "pikchr.c"
26632678
break;
26642679
case 58: /* boolproperty ::= INVIS */
26652680
#line 649 "pikchr.y"
26662681
{p->cur->sw = 0.0;}
2667
-#line 2692 "pikchr.c"
2682
+#line 2707 "pikchr.c"
26682683
break;
26692684
case 59: /* boolproperty ::= THICK */
26702685
#line 650 "pikchr.y"
26712686
{p->cur->sw *= 1.5;}
2672
-#line 2697 "pikchr.c"
2687
+#line 2712 "pikchr.c"
26732688
break;
26742689
case 60: /* boolproperty ::= THIN */
26752690
#line 651 "pikchr.y"
26762691
{p->cur->sw *= 0.67;}
2677
-#line 2702 "pikchr.c"
2678
- break;
2679
- case 61: /* textposition ::= */
2680
-#line 653 "pikchr.y"
2681
-{yymsp[1].minor.yy46 = 0;}
2682
-#line 2707 "pikchr.c"
2683
- break;
2684
- case 62: /* textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2685
-#line 656 "pikchr.y"
2686
-{yylhsminor.yy46 = pik_text_position(yymsp[-1].minor.yy46,&yymsp[0].minor.yy0);}
2687
-#line 2712 "pikchr.c"
2688
- yymsp[-1].minor.yy46 = yylhsminor.yy46;
2689
- break;
2690
- case 63: /* position ::= expr COMMA expr */
2691
-#line 659 "pikchr.y"
2692
-{yylhsminor.yy47.x=yymsp[-2].minor.yy121; yylhsminor.yy47.y=yymsp[0].minor.yy121;}
2693
-#line 2718 "pikchr.c"
2694
- yymsp[-2].minor.yy47 = yylhsminor.yy47;
2695
- break;
2696
- case 64: /* position ::= place PLUS expr COMMA expr */
2692
+#line 2717 "pikchr.c"
2693
+ break;
2694
+ case 61: /* boolproperty ::= SOLID */
2695
+#line 652 "pikchr.y"
2696
+{p->cur->sw = pik_value(p,"thickness",9,0);
2697
+ p->cur->dotted = p->cur->dashed = 0.0;}
2698
+#line 2723 "pikchr.c"
2699
+ break;
2700
+ case 62: /* textposition ::= */
2701
+#line 655 "pikchr.y"
2702
+{yymsp[1].minor.yy196 = 0;}
2703
+#line 2728 "pikchr.c"
2704
+ break;
2705
+ case 63: /* textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2706
+#line 658 "pikchr.y"
2707
+{yylhsminor.yy196 = pik_text_position(yymsp[-1].minor.yy196,&yymsp[0].minor.yy0);}
2708
+#line 2733 "pikchr.c"
2709
+ yymsp[-1].minor.yy196 = yylhsminor.yy196;
2710
+ break;
2711
+ case 64: /* position ::= expr COMMA expr */
26972712
#line 661 "pikchr.y"
2698
-{yylhsminor.yy47.x=yymsp[-4].minor.yy47.x+yymsp[-2].minor.yy121; yylhsminor.yy47.y=yymsp[-4].minor.yy47.y+yymsp[0].minor.yy121;}
2699
-#line 2724 "pikchr.c"
2700
- yymsp[-4].minor.yy47 = yylhsminor.yy47;
2701
- break;
2702
- case 65: /* position ::= place MINUS expr COMMA expr */
2703
-#line 662 "pikchr.y"
2704
-{yylhsminor.yy47.x=yymsp[-4].minor.yy47.x-yymsp[-2].minor.yy121; yylhsminor.yy47.y=yymsp[-4].minor.yy47.y-yymsp[0].minor.yy121;}
2705
-#line 2730 "pikchr.c"
2706
- yymsp[-4].minor.yy47 = yylhsminor.yy47;
2707
- break;
2708
- case 66: /* position ::= place PLUS LP expr COMMA expr RP */
2713
+{yylhsminor.yy43.x=yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[0].minor.yy265;}
2714
+#line 2739 "pikchr.c"
2715
+ yymsp[-2].minor.yy43 = yylhsminor.yy43;
2716
+ break;
2717
+ case 65: /* position ::= place PLUS expr COMMA expr */
2718
+#line 663 "pikchr.y"
2719
+{yylhsminor.yy43.x=yymsp[-4].minor.yy43.x+yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[-4].minor.yy43.y+yymsp[0].minor.yy265;}
2720
+#line 2745 "pikchr.c"
2721
+ yymsp[-4].minor.yy43 = yylhsminor.yy43;
2722
+ break;
2723
+ case 66: /* position ::= place MINUS expr COMMA expr */
27092724
#line 664 "pikchr.y"
2710
-{yylhsminor.yy47.x=yymsp[-6].minor.yy47.x+yymsp[-3].minor.yy121; yylhsminor.yy47.y=yymsp[-6].minor.yy47.y+yymsp[-1].minor.yy121;}
2711
-#line 2736 "pikchr.c"
2712
- yymsp[-6].minor.yy47 = yylhsminor.yy47;
2725
+{yylhsminor.yy43.x=yymsp[-4].minor.yy43.x-yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[-4].minor.yy43.y-yymsp[0].minor.yy265;}
2726
+#line 2751 "pikchr.c"
2727
+ yymsp[-4].minor.yy43 = yylhsminor.yy43;
27132728
break;
2714
- case 67: /* position ::= place MINUS LP expr COMMA expr RP */
2729
+ case 67: /* position ::= place PLUS LP expr COMMA expr RP */
27152730
#line 666 "pikchr.y"
2716
-{yylhsminor.yy47.x=yymsp[-6].minor.yy47.x-yymsp[-3].minor.yy121; yylhsminor.yy47.y=yymsp[-6].minor.yy47.y-yymsp[-1].minor.yy121;}
2717
-#line 2742 "pikchr.c"
2718
- yymsp[-6].minor.yy47 = yylhsminor.yy47;
2719
- break;
2720
- case 68: /* position ::= LP position COMMA position RP */
2721
-#line 667 "pikchr.y"
2722
-{yymsp[-4].minor.yy47.x=yymsp[-3].minor.yy47.x; yymsp[-4].minor.yy47.y=yymsp[-1].minor.yy47.y;}
2723
-#line 2748 "pikchr.c"
2724
- break;
2725
- case 69: /* position ::= LP position RP */
2731
+{yylhsminor.yy43.x=yymsp[-6].minor.yy43.x+yymsp[-3].minor.yy265; yylhsminor.yy43.y=yymsp[-6].minor.yy43.y+yymsp[-1].minor.yy265;}
2732
+#line 2757 "pikchr.c"
2733
+ yymsp[-6].minor.yy43 = yylhsminor.yy43;
2734
+ break;
2735
+ case 68: /* position ::= place MINUS LP expr COMMA expr RP */
27262736
#line 668 "pikchr.y"
2727
-{yymsp[-2].minor.yy47=yymsp[-1].minor.yy47;}
2728
-#line 2753 "pikchr.c"
2737
+{yylhsminor.yy43.x=yymsp[-6].minor.yy43.x-yymsp[-3].minor.yy265; yylhsminor.yy43.y=yymsp[-6].minor.yy43.y-yymsp[-1].minor.yy265;}
2738
+#line 2763 "pikchr.c"
2739
+ yymsp[-6].minor.yy43 = yylhsminor.yy43;
2740
+ break;
2741
+ case 69: /* position ::= LP position COMMA position RP */
2742
+#line 669 "pikchr.y"
2743
+{yymsp[-4].minor.yy43.x=yymsp[-3].minor.yy43.x; yymsp[-4].minor.yy43.y=yymsp[-1].minor.yy43.y;}
2744
+#line 2769 "pikchr.c"
27292745
break;
2730
- case 70: /* position ::= expr between position AND position */
2746
+ case 70: /* position ::= LP position RP */
27312747
#line 670 "pikchr.y"
2732
-{yylhsminor.yy47 = pik_position_between(yymsp[-4].minor.yy121,yymsp[-2].minor.yy47,yymsp[0].minor.yy47);}
2733
-#line 2758 "pikchr.c"
2734
- yymsp[-4].minor.yy47 = yylhsminor.yy47;
2748
+{yymsp[-2].minor.yy43=yymsp[-1].minor.yy43;}
2749
+#line 2774 "pikchr.c"
27352750
break;
2736
- case 71: /* position ::= expr LT position COMMA position GT */
2751
+ case 71: /* position ::= expr between position AND position */
27372752
#line 672 "pikchr.y"
2738
-{yylhsminor.yy47 = pik_position_between(yymsp[-5].minor.yy121,yymsp[-3].minor.yy47,yymsp[-1].minor.yy47);}
2739
-#line 2764 "pikchr.c"
2740
- yymsp[-5].minor.yy47 = yylhsminor.yy47;
2741
- break;
2742
- case 72: /* position ::= expr ABOVE position */
2743
-#line 673 "pikchr.y"
2744
-{yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.y += yymsp[-2].minor.yy121;}
2745
-#line 2770 "pikchr.c"
2746
- yymsp[-2].minor.yy47 = yylhsminor.yy47;
2747
- break;
2748
- case 73: /* position ::= expr BELOW position */
2753
+{yylhsminor.yy43 = pik_position_between(yymsp[-4].minor.yy265,yymsp[-2].minor.yy43,yymsp[0].minor.yy43);}
2754
+#line 2779 "pikchr.c"
2755
+ yymsp[-4].minor.yy43 = yylhsminor.yy43;
2756
+ break;
2757
+ case 72: /* position ::= expr LT position COMMA position GT */
27492758
#line 674 "pikchr.y"
2750
-{yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.y -= yymsp[-2].minor.yy121;}
2751
-#line 2776 "pikchr.c"
2752
- yymsp[-2].minor.yy47 = yylhsminor.yy47;
2759
+{yylhsminor.yy43 = pik_position_between(yymsp[-5].minor.yy265,yymsp[-3].minor.yy43,yymsp[-1].minor.yy43);}
2760
+#line 2785 "pikchr.c"
2761
+ yymsp[-5].minor.yy43 = yylhsminor.yy43;
27532762
break;
2754
- case 74: /* position ::= expr LEFT OF position */
2763
+ case 73: /* position ::= expr ABOVE position */
27552764
#line 675 "pikchr.y"
2756
-{yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.x -= yymsp[-3].minor.yy121;}
2757
-#line 2782 "pikchr.c"
2758
- yymsp[-3].minor.yy47 = yylhsminor.yy47;
2765
+{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.y += yymsp[-2].minor.yy265;}
2766
+#line 2791 "pikchr.c"
2767
+ yymsp[-2].minor.yy43 = yylhsminor.yy43;
27592768
break;
2760
- case 75: /* position ::= expr RIGHT OF position */
2769
+ case 74: /* position ::= expr BELOW position */
27612770
#line 676 "pikchr.y"
2762
-{yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.x += yymsp[-3].minor.yy121;}
2763
-#line 2788 "pikchr.c"
2764
- yymsp[-3].minor.yy47 = yylhsminor.yy47;
2771
+{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.y -= yymsp[-2].minor.yy265;}
2772
+#line 2797 "pikchr.c"
2773
+ yymsp[-2].minor.yy43 = yylhsminor.yy43;
2774
+ break;
2775
+ case 75: /* position ::= expr LEFT OF position */
2776
+#line 677 "pikchr.y"
2777
+{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.x -= yymsp[-3].minor.yy265;}
2778
+#line 2803 "pikchr.c"
2779
+ yymsp[-3].minor.yy43 = yylhsminor.yy43;
27652780
break;
2766
- case 76: /* position ::= expr ON HEADING EDGEPT OF position */
2781
+ case 76: /* position ::= expr RIGHT OF position */
27672782
#line 678 "pikchr.y"
2768
-{yylhsminor.yy47 = pik_position_at_hdg(yymsp[-5].minor.yy121,&yymsp[-2].minor.yy0,yymsp[0].minor.yy47);}
2769
-#line 2794 "pikchr.c"
2770
- yymsp[-5].minor.yy47 = yylhsminor.yy47;
2783
+{yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.x += yymsp[-3].minor.yy265;}
2784
+#line 2809 "pikchr.c"
2785
+ yymsp[-3].minor.yy43 = yylhsminor.yy43;
27712786
break;
2772
- case 77: /* position ::= expr HEADING EDGEPT OF position */
2787
+ case 77: /* position ::= expr ON HEADING EDGEPT OF position */
27732788
#line 680 "pikchr.y"
2774
-{yylhsminor.yy47 = pik_position_at_hdg(yymsp[-4].minor.yy121,&yymsp[-2].minor.yy0,yymsp[0].minor.yy47);}
2775
-#line 2800 "pikchr.c"
2776
- yymsp[-4].minor.yy47 = yylhsminor.yy47;
2789
+{yylhsminor.yy43 = pik_position_at_hdg(yymsp[-5].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);}
2790
+#line 2815 "pikchr.c"
2791
+ yymsp[-5].minor.yy43 = yylhsminor.yy43;
27772792
break;
2778
- case 78: /* position ::= expr EDGEPT OF position */
2793
+ case 78: /* position ::= expr HEADING EDGEPT OF position */
27792794
#line 682 "pikchr.y"
2780
-{yylhsminor.yy47 = pik_position_at_hdg(yymsp[-3].minor.yy121,&yymsp[-2].minor.yy0,yymsp[0].minor.yy47);}
2781
-#line 2806 "pikchr.c"
2782
- yymsp[-3].minor.yy47 = yylhsminor.yy47;
2795
+{yylhsminor.yy43 = pik_position_at_hdg(yymsp[-4].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);}
2796
+#line 2821 "pikchr.c"
2797
+ yymsp[-4].minor.yy43 = yylhsminor.yy43;
27832798
break;
2784
- case 79: /* position ::= expr ON HEADING expr FROM position */
2799
+ case 79: /* position ::= expr EDGEPT OF position */
27852800
#line 684 "pikchr.y"
2786
-{yylhsminor.yy47 = pik_position_at_angle(yymsp[-5].minor.yy121,yymsp[-2].minor.yy121,yymsp[0].minor.yy47);}
2787
-#line 2812 "pikchr.c"
2788
- yymsp[-5].minor.yy47 = yylhsminor.yy47;
2801
+{yylhsminor.yy43 = pik_position_at_hdg(yymsp[-3].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);}
2802
+#line 2827 "pikchr.c"
2803
+ yymsp[-3].minor.yy43 = yylhsminor.yy43;
27892804
break;
2790
- case 80: /* position ::= expr HEADING expr FROM position */
2805
+ case 80: /* position ::= expr ON HEADING expr FROM position */
27912806
#line 686 "pikchr.y"
2792
-{yylhsminor.yy47 = pik_position_at_angle(yymsp[-4].minor.yy121,yymsp[-2].minor.yy121,yymsp[0].minor.yy47);}
2793
-#line 2818 "pikchr.c"
2794
- yymsp[-4].minor.yy47 = yylhsminor.yy47;
2795
- break;
2796
- case 81: /* place ::= edge OF object */
2797
-#line 698 "pikchr.y"
2798
-{yylhsminor.yy47 = pik_place_of_elem(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0);}
2799
-#line 2824 "pikchr.c"
2800
- yymsp[-2].minor.yy47 = yylhsminor.yy47;
2801
- break;
2802
- case 82: /* place2 ::= object */
2803
-#line 699 "pikchr.y"
2804
-{yylhsminor.yy47 = pik_place_of_elem(p,yymsp[0].minor.yy138,0);}
2805
-#line 2830 "pikchr.c"
2806
- yymsp[0].minor.yy47 = yylhsminor.yy47;
2807
- break;
2808
- case 83: /* place2 ::= object DOT_E edge */
2807
+{yylhsminor.yy43 = pik_position_at_angle(yymsp[-5].minor.yy265,yymsp[-2].minor.yy265,yymsp[0].minor.yy43);}
2808
+#line 2833 "pikchr.c"
2809
+ yymsp[-5].minor.yy43 = yylhsminor.yy43;
2810
+ break;
2811
+ case 81: /* position ::= expr HEADING expr FROM position */
2812
+#line 688 "pikchr.y"
2813
+{yylhsminor.yy43 = pik_position_at_angle(yymsp[-4].minor.yy265,yymsp[-2].minor.yy265,yymsp[0].minor.yy43);}
2814
+#line 2839 "pikchr.c"
2815
+ yymsp[-4].minor.yy43 = yylhsminor.yy43;
2816
+ break;
2817
+ case 82: /* place ::= edge OF object */
28092818
#line 700 "pikchr.y"
2810
-{yylhsminor.yy47 = pik_place_of_elem(p,yymsp[-2].minor.yy138,&yymsp[0].minor.yy0);}
2811
-#line 2836 "pikchr.c"
2812
- yymsp[-2].minor.yy47 = yylhsminor.yy47;
2819
+{yylhsminor.yy43 = pik_place_of_elem(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);}
2820
+#line 2845 "pikchr.c"
2821
+ yymsp[-2].minor.yy43 = yylhsminor.yy43;
28132822
break;
2814
- case 84: /* place2 ::= NTH VERTEX OF object */
2823
+ case 83: /* place2 ::= object */
28152824
#line 701 "pikchr.y"
2816
-{yylhsminor.yy47 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy138);}
2817
-#line 2842 "pikchr.c"
2818
- yymsp[-3].minor.yy47 = yylhsminor.yy47;
2819
- break;
2820
- case 85: /* object ::= nth */
2821
-#line 713 "pikchr.y"
2822
-{yylhsminor.yy138 = pik_find_nth(p,0,&yymsp[0].minor.yy0);}
2823
-#line 2848 "pikchr.c"
2824
- yymsp[0].minor.yy138 = yylhsminor.yy138;
2825
- break;
2826
- case 86: /* object ::= nth OF|IN object */
2827
-#line 714 "pikchr.y"
2828
-{yylhsminor.yy138 = pik_find_nth(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0);}
2829
-#line 2854 "pikchr.c"
2830
- yymsp[-2].minor.yy138 = yylhsminor.yy138;
2831
- break;
2832
- case 87: /* objectname ::= PLACENAME */
2825
+{yylhsminor.yy43 = pik_place_of_elem(p,yymsp[0].minor.yy38,0);}
2826
+#line 2851 "pikchr.c"
2827
+ yymsp[0].minor.yy43 = yylhsminor.yy43;
2828
+ break;
2829
+ case 84: /* place2 ::= object DOT_E edge */
2830
+#line 702 "pikchr.y"
2831
+{yylhsminor.yy43 = pik_place_of_elem(p,yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);}
2832
+#line 2857 "pikchr.c"
2833
+ yymsp[-2].minor.yy43 = yylhsminor.yy43;
2834
+ break;
2835
+ case 85: /* place2 ::= NTH VERTEX OF object */
2836
+#line 703 "pikchr.y"
2837
+{yylhsminor.yy43 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy38);}
2838
+#line 2863 "pikchr.c"
2839
+ yymsp[-3].minor.yy43 = yylhsminor.yy43;
2840
+ break;
2841
+ case 86: /* object ::= nth */
2842
+#line 715 "pikchr.y"
2843
+{yylhsminor.yy38 = pik_find_nth(p,0,&yymsp[0].minor.yy0);}
2844
+#line 2869 "pikchr.c"
2845
+ yymsp[0].minor.yy38 = yylhsminor.yy38;
2846
+ break;
2847
+ case 87: /* object ::= nth OF|IN object */
28332848
#line 716 "pikchr.y"
2834
-{yylhsminor.yy138 = pik_find_byname(p,0,&yymsp[0].minor.yy0);}
2835
-#line 2860 "pikchr.c"
2836
- yymsp[0].minor.yy138 = yylhsminor.yy138;
2849
+{yylhsminor.yy38 = pik_find_nth(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);}
2850
+#line 2875 "pikchr.c"
2851
+ yymsp[-2].minor.yy38 = yylhsminor.yy38;
28372852
break;
2838
- case 88: /* objectname ::= objectname DOT_U PLACENAME */
2853
+ case 88: /* objectname ::= PLACENAME */
28392854
#line 718 "pikchr.y"
2840
-{yylhsminor.yy138 = pik_find_byname(p,yymsp[-2].minor.yy138,&yymsp[0].minor.yy0);}
2841
-#line 2866 "pikchr.c"
2842
- yymsp[-2].minor.yy138 = yylhsminor.yy138;
2855
+{yylhsminor.yy38 = pik_find_byname(p,0,&yymsp[0].minor.yy0);}
2856
+#line 2881 "pikchr.c"
2857
+ yymsp[0].minor.yy38 = yylhsminor.yy38;
28432858
break;
2844
- case 89: /* nth ::= NTH CLASSNAME */
2859
+ case 89: /* objectname ::= objectname DOT_U PLACENAME */
28452860
#line 720 "pikchr.y"
2861
+{yylhsminor.yy38 = pik_find_byname(p,yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);}
2862
+#line 2887 "pikchr.c"
2863
+ yymsp[-2].minor.yy38 = yylhsminor.yy38;
2864
+ break;
2865
+ case 90: /* nth ::= NTH CLASSNAME */
2866
+#line 722 "pikchr.y"
28462867
{yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-1].minor.yy0); }
2847
-#line 2872 "pikchr.c"
2868
+#line 2893 "pikchr.c"
28482869
yymsp[-1].minor.yy0 = yylhsminor.yy0;
28492870
break;
2850
- case 90: /* nth ::= NTH LAST CLASSNAME */
2851
-#line 721 "pikchr.y"
2871
+ case 91: /* nth ::= NTH LAST CLASSNAME */
2872
+#line 723 "pikchr.y"
28522873
{yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-2].minor.yy0); }
2853
-#line 2878 "pikchr.c"
2874
+#line 2899 "pikchr.c"
28542875
yymsp[-2].minor.yy0 = yylhsminor.yy0;
28552876
break;
2856
- case 91: /* nth ::= LAST CLASSNAME */
2857
-#line 722 "pikchr.y"
2877
+ case 92: /* nth ::= LAST CLASSNAME */
2878
+#line 724 "pikchr.y"
28582879
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.eCode = -1;}
2859
-#line 2884 "pikchr.c"
2880
+#line 2905 "pikchr.c"
28602881
break;
2861
- case 92: /* nth ::= LAST */
2862
-#line 723 "pikchr.y"
2882
+ case 93: /* nth ::= LAST */
2883
+#line 725 "pikchr.y"
28632884
{yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -1;}
2864
-#line 2889 "pikchr.c"
2885
+#line 2910 "pikchr.c"
28652886
yymsp[0].minor.yy0 = yylhsminor.yy0;
28662887
break;
2867
- case 93: /* nth ::= NTH LB RB */
2868
-#line 724 "pikchr.y"
2888
+ case 94: /* nth ::= NTH LB RB */
2889
+#line 726 "pikchr.y"
28692890
{yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-2].minor.yy0);}
2870
-#line 2895 "pikchr.c"
2891
+#line 2916 "pikchr.c"
28712892
yymsp[-2].minor.yy0 = yylhsminor.yy0;
28722893
break;
2873
- case 94: /* nth ::= NTH LAST LB RB */
2874
-#line 725 "pikchr.y"
2894
+ case 95: /* nth ::= NTH LAST LB RB */
2895
+#line 727 "pikchr.y"
28752896
{yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-3].minor.yy0);}
2876
-#line 2901 "pikchr.c"
2897
+#line 2922 "pikchr.c"
28772898
yymsp[-3].minor.yy0 = yylhsminor.yy0;
28782899
break;
2879
- case 95: /* nth ::= LAST LB RB */
2880
-#line 726 "pikchr.y"
2881
-{yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; }
2882
-#line 2907 "pikchr.c"
2883
- break;
2884
- case 96: /* expr ::= expr PLUS expr */
2885
-#line 728 "pikchr.y"
2886
-{yylhsminor.yy121=yymsp[-2].minor.yy121+yymsp[0].minor.yy121;}
2887
-#line 2912 "pikchr.c"
2888
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2889
- break;
2890
- case 97: /* expr ::= expr MINUS expr */
2891
-#line 729 "pikchr.y"
2892
-{yylhsminor.yy121=yymsp[-2].minor.yy121-yymsp[0].minor.yy121;}
2893
-#line 2918 "pikchr.c"
2894
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2895
- break;
2896
- case 98: /* expr ::= expr STAR expr */
2897
-#line 730 "pikchr.y"
2898
-{yylhsminor.yy121=yymsp[-2].minor.yy121*yymsp[0].minor.yy121;}
2899
-#line 2924 "pikchr.c"
2900
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2901
- break;
2902
- case 99: /* expr ::= expr SLASH expr */
2903
-#line 731 "pikchr.y"
2904
-{
2905
- if( yymsp[0].minor.yy121==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy121 = 0.0; }
2906
- else{ yylhsminor.yy121 = yymsp[-2].minor.yy121/yymsp[0].minor.yy121; }
2907
-}
2908
-#line 2933 "pikchr.c"
2909
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2910
- break;
2911
- case 100: /* expr ::= MINUS expr */
2912
-#line 735 "pikchr.y"
2913
-{yymsp[-1].minor.yy121=-yymsp[0].minor.yy121;}
2914
-#line 2939 "pikchr.c"
2915
- break;
2916
- case 101: /* expr ::= PLUS expr */
2917
-#line 736 "pikchr.y"
2918
-{yymsp[-1].minor.yy121=yymsp[0].minor.yy121;}
2919
-#line 2944 "pikchr.c"
2920
- break;
2921
- case 102: /* expr ::= LP expr RP */
2922
-#line 737 "pikchr.y"
2923
-{yymsp[-2].minor.yy121=yymsp[-1].minor.yy121;}
2924
-#line 2949 "pikchr.c"
2925
- break;
2926
- case 103: /* expr ::= LP FILL|COLOR|THICKNESS RP */
2900
+ case 96: /* nth ::= LAST LB RB */
2901
+#line 728 "pikchr.y"
2902
+{yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; }
2903
+#line 2928 "pikchr.c"
2904
+ break;
2905
+ case 97: /* expr ::= expr PLUS expr */
2906
+#line 730 "pikchr.y"
2907
+{yylhsminor.yy265=yymsp[-2].minor.yy265+yymsp[0].minor.yy265;}
2908
+#line 2933 "pikchr.c"
2909
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
2910
+ break;
2911
+ case 98: /* expr ::= expr MINUS expr */
2912
+#line 731 "pikchr.y"
2913
+{yylhsminor.yy265=yymsp[-2].minor.yy265-yymsp[0].minor.yy265;}
2914
+#line 2939 "pikchr.c"
2915
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
2916
+ break;
2917
+ case 99: /* expr ::= expr STAR expr */
2918
+#line 732 "pikchr.y"
2919
+{yylhsminor.yy265=yymsp[-2].minor.yy265*yymsp[0].minor.yy265;}
2920
+#line 2945 "pikchr.c"
2921
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
2922
+ break;
2923
+ case 100: /* expr ::= expr SLASH expr */
2924
+#line 733 "pikchr.y"
2925
+{
2926
+ if( yymsp[0].minor.yy265==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy265 = 0.0; }
2927
+ else{ yylhsminor.yy265 = yymsp[-2].minor.yy265/yymsp[0].minor.yy265; }
2928
+}
2929
+#line 2954 "pikchr.c"
2930
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
2931
+ break;
2932
+ case 101: /* expr ::= MINUS expr */
2933
+#line 737 "pikchr.y"
2934
+{yymsp[-1].minor.yy265=-yymsp[0].minor.yy265;}
2935
+#line 2960 "pikchr.c"
2936
+ break;
2937
+ case 102: /* expr ::= PLUS expr */
29272938
#line 738 "pikchr.y"
2928
-{yymsp[-2].minor.yy121=pik_get_var(p,&yymsp[-1].minor.yy0);}
2929
-#line 2954 "pikchr.c"
2939
+{yymsp[-1].minor.yy265=yymsp[0].minor.yy265;}
2940
+#line 2965 "pikchr.c"
29302941
break;
2931
- case 104: /* expr ::= NUMBER */
2942
+ case 103: /* expr ::= LP expr RP */
29322943
#line 739 "pikchr.y"
2933
-{yylhsminor.yy121=pik_atof(&yymsp[0].minor.yy0);}
2934
-#line 2959 "pikchr.c"
2935
- yymsp[0].minor.yy121 = yylhsminor.yy121;
2944
+{yymsp[-2].minor.yy265=yymsp[-1].minor.yy265;}
2945
+#line 2970 "pikchr.c"
29362946
break;
2937
- case 105: /* expr ::= ID */
2947
+ case 104: /* expr ::= LP FILL|COLOR|THICKNESS RP */
29382948
#line 740 "pikchr.y"
2939
-{yylhsminor.yy121=pik_get_var(p,&yymsp[0].minor.yy0);}
2940
-#line 2965 "pikchr.c"
2941
- yymsp[0].minor.yy121 = yylhsminor.yy121;
2949
+{yymsp[-2].minor.yy265=pik_get_var(p,&yymsp[-1].minor.yy0);}
2950
+#line 2975 "pikchr.c"
29422951
break;
2943
- case 106: /* expr ::= FUNC1 LP expr RP */
2952
+ case 105: /* expr ::= NUMBER */
29442953
#line 741 "pikchr.y"
2945
-{yylhsminor.yy121 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy121,0.0);}
2946
-#line 2971 "pikchr.c"
2947
- yymsp[-3].minor.yy121 = yylhsminor.yy121;
2954
+{yylhsminor.yy265=pik_atof(&yymsp[0].minor.yy0);}
2955
+#line 2980 "pikchr.c"
2956
+ yymsp[0].minor.yy265 = yylhsminor.yy265;
29482957
break;
2949
- case 107: /* expr ::= FUNC2 LP expr COMMA expr RP */
2958
+ case 106: /* expr ::= ID */
29502959
#line 742 "pikchr.y"
2951
-{yylhsminor.yy121 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy121,yymsp[-1].minor.yy121);}
2952
-#line 2977 "pikchr.c"
2953
- yymsp[-5].minor.yy121 = yylhsminor.yy121;
2960
+{yylhsminor.yy265=pik_get_var(p,&yymsp[0].minor.yy0);}
2961
+#line 2986 "pikchr.c"
2962
+ yymsp[0].minor.yy265 = yylhsminor.yy265;
29542963
break;
2955
- case 108: /* expr ::= DIST LP position COMMA position RP */
2964
+ case 107: /* expr ::= FUNC1 LP expr RP */
29562965
#line 743 "pikchr.y"
2957
-{yymsp[-5].minor.yy121 = pik_dist(&yymsp[-3].minor.yy47,&yymsp[-1].minor.yy47);}
2958
-#line 2983 "pikchr.c"
2966
+{yylhsminor.yy265 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy265,0.0);}
2967
+#line 2992 "pikchr.c"
2968
+ yymsp[-3].minor.yy265 = yylhsminor.yy265;
29592969
break;
2960
- case 109: /* expr ::= place2 DOT_XY X */
2970
+ case 108: /* expr ::= FUNC2 LP expr COMMA expr RP */
29612971
#line 744 "pikchr.y"
2962
-{yylhsminor.yy121 = yymsp[-2].minor.yy47.x;}
2963
-#line 2988 "pikchr.c"
2964
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2972
+{yylhsminor.yy265 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy265,yymsp[-1].minor.yy265);}
2973
+#line 2998 "pikchr.c"
2974
+ yymsp[-5].minor.yy265 = yylhsminor.yy265;
29652975
break;
2966
- case 110: /* expr ::= place2 DOT_XY Y */
2976
+ case 109: /* expr ::= DIST LP position COMMA position RP */
29672977
#line 745 "pikchr.y"
2968
-{yylhsminor.yy121 = yymsp[-2].minor.yy47.y;}
2969
-#line 2994 "pikchr.c"
2970
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2978
+{yymsp[-5].minor.yy265 = pik_dist(&yymsp[-3].minor.yy43,&yymsp[-1].minor.yy43);}
2979
+#line 3004 "pikchr.c"
29712980
break;
2972
- case 111: /* expr ::= object DOT_L numproperty */
2973
- case 112: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==112);
2974
- case 113: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==113);
2981
+ case 110: /* expr ::= place2 DOT_XY X */
29752982
#line 746 "pikchr.y"
2976
-{yylhsminor.yy121=pik_property_of(yymsp[-2].minor.yy138,&yymsp[0].minor.yy0);}
2977
-#line 3002 "pikchr.c"
2978
- yymsp[-2].minor.yy121 = yylhsminor.yy121;
2983
+{yylhsminor.yy265 = yymsp[-2].minor.yy43.x;}
2984
+#line 3009 "pikchr.c"
2985
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
2986
+ break;
2987
+ case 111: /* expr ::= place2 DOT_XY Y */
2988
+#line 747 "pikchr.y"
2989
+{yylhsminor.yy265 = yymsp[-2].minor.yy43.y;}
2990
+#line 3015 "pikchr.c"
2991
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
2992
+ break;
2993
+ case 112: /* expr ::= object DOT_L numproperty */
2994
+ case 113: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==113);
2995
+ case 114: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==114);
2996
+#line 748 "pikchr.y"
2997
+{yylhsminor.yy265=pik_property_of(yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);}
2998
+#line 3023 "pikchr.c"
2999
+ yymsp[-2].minor.yy265 = yylhsminor.yy265;
29793000
break;
29803001
default:
2981
- /* (114) lvalue ::= ID */ yytestcase(yyruleno==114);
2982
- /* (115) lvalue ::= FILL */ yytestcase(yyruleno==115);
2983
- /* (116) lvalue ::= COLOR */ yytestcase(yyruleno==116);
2984
- /* (117) lvalue ::= THICKNESS */ yytestcase(yyruleno==117);
2985
- /* (118) rvalue ::= expr */ yytestcase(yyruleno==118);
2986
- /* (119) print ::= PRINT */ yytestcase(yyruleno==119);
2987
- /* (120) prlist ::= pritem (OPTIMIZED OUT) */ assert(yyruleno!=120);
2988
- /* (121) prlist ::= prlist prsep pritem */ yytestcase(yyruleno==121);
2989
- /* (122) direction ::= UP */ yytestcase(yyruleno==122);
2990
- /* (123) direction ::= DOWN */ yytestcase(yyruleno==123);
2991
- /* (124) direction ::= LEFT */ yytestcase(yyruleno==124);
2992
- /* (125) direction ::= RIGHT */ yytestcase(yyruleno==125);
2993
- /* (126) optrelexpr ::= relexpr (OPTIMIZED OUT) */ assert(yyruleno!=126);
2994
- /* (127) attribute_list ::= alist */ yytestcase(yyruleno==127);
2995
- /* (128) alist ::= */ yytestcase(yyruleno==128);
2996
- /* (129) alist ::= alist attribute */ yytestcase(yyruleno==129);
2997
- /* (130) attribute ::= boolproperty (OPTIMIZED OUT) */ assert(yyruleno!=130);
2998
- /* (131) attribute ::= WITH withclause */ yytestcase(yyruleno==131);
2999
- /* (132) go ::= GO */ yytestcase(yyruleno==132);
3000
- /* (133) go ::= */ yytestcase(yyruleno==133);
3001
- /* (134) even ::= UNTIL EVEN WITH */ yytestcase(yyruleno==134);
3002
- /* (135) even ::= EVEN WITH */ yytestcase(yyruleno==135);
3003
- /* (136) dashproperty ::= DOTTED */ yytestcase(yyruleno==136);
3004
- /* (137) dashproperty ::= DASHED */ yytestcase(yyruleno==137);
3005
- /* (138) colorproperty ::= FILL */ yytestcase(yyruleno==138);
3006
- /* (139) colorproperty ::= COLOR */ yytestcase(yyruleno==139);
3007
- /* (140) position ::= place */ yytestcase(yyruleno==140);
3008
- /* (141) between ::= WAY BETWEEN */ yytestcase(yyruleno==141);
3009
- /* (142) between ::= BETWEEN */ yytestcase(yyruleno==142);
3010
- /* (143) between ::= OF THE WAY BETWEEN */ yytestcase(yyruleno==143);
3011
- /* (144) place ::= place2 */ yytestcase(yyruleno==144);
3012
- /* (145) edge ::= CENTER */ yytestcase(yyruleno==145);
3013
- /* (146) edge ::= EDGEPT */ yytestcase(yyruleno==146);
3014
- /* (147) edge ::= TOP */ yytestcase(yyruleno==147);
3015
- /* (148) edge ::= BOTTOM */ yytestcase(yyruleno==148);
3016
- /* (149) edge ::= START */ yytestcase(yyruleno==149);
3017
- /* (150) edge ::= END */ yytestcase(yyruleno==150);
3018
- /* (151) edge ::= RIGHT */ yytestcase(yyruleno==151);
3019
- /* (152) edge ::= LEFT */ yytestcase(yyruleno==152);
3020
- /* (153) object ::= objectname */ yytestcase(yyruleno==153);
3002
+ /* (115) lvalue ::= ID */ yytestcase(yyruleno==115);
3003
+ /* (116) lvalue ::= FILL */ yytestcase(yyruleno==116);
3004
+ /* (117) lvalue ::= COLOR */ yytestcase(yyruleno==117);
3005
+ /* (118) lvalue ::= THICKNESS */ yytestcase(yyruleno==118);
3006
+ /* (119) rvalue ::= expr */ yytestcase(yyruleno==119);
3007
+ /* (120) print ::= PRINT */ yytestcase(yyruleno==120);
3008
+ /* (121) prlist ::= pritem (OPTIMIZED OUT) */ assert(yyruleno!=121);
3009
+ /* (122) prlist ::= prlist prsep pritem */ yytestcase(yyruleno==122);
3010
+ /* (123) direction ::= UP */ yytestcase(yyruleno==123);
3011
+ /* (124) direction ::= DOWN */ yytestcase(yyruleno==124);
3012
+ /* (125) direction ::= LEFT */ yytestcase(yyruleno==125);
3013
+ /* (126) direction ::= RIGHT */ yytestcase(yyruleno==126);
3014
+ /* (127) optrelexpr ::= relexpr (OPTIMIZED OUT) */ assert(yyruleno!=127);
3015
+ /* (128) attribute_list ::= alist */ yytestcase(yyruleno==128);
3016
+ /* (129) alist ::= */ yytestcase(yyruleno==129);
3017
+ /* (130) alist ::= alist attribute */ yytestcase(yyruleno==130);
3018
+ /* (131) attribute ::= boolproperty (OPTIMIZED OUT) */ assert(yyruleno!=131);
3019
+ /* (132) attribute ::= WITH withclause */ yytestcase(yyruleno==132);
3020
+ /* (133) go ::= GO */ yytestcase(yyruleno==133);
3021
+ /* (134) go ::= */ yytestcase(yyruleno==134);
3022
+ /* (135) even ::= UNTIL EVEN WITH */ yytestcase(yyruleno==135);
3023
+ /* (136) even ::= EVEN WITH */ yytestcase(yyruleno==136);
3024
+ /* (137) dashproperty ::= DOTTED */ yytestcase(yyruleno==137);
3025
+ /* (138) dashproperty ::= DASHED */ yytestcase(yyruleno==138);
3026
+ /* (139) colorproperty ::= FILL */ yytestcase(yyruleno==139);
3027
+ /* (140) colorproperty ::= COLOR */ yytestcase(yyruleno==140);
3028
+ /* (141) position ::= place */ yytestcase(yyruleno==141);
3029
+ /* (142) between ::= WAY BETWEEN */ yytestcase(yyruleno==142);
3030
+ /* (143) between ::= BETWEEN */ yytestcase(yyruleno==143);
3031
+ /* (144) between ::= OF THE WAY BETWEEN */ yytestcase(yyruleno==144);
3032
+ /* (145) place ::= place2 */ yytestcase(yyruleno==145);
3033
+ /* (146) edge ::= CENTER */ yytestcase(yyruleno==146);
3034
+ /* (147) edge ::= EDGEPT */ yytestcase(yyruleno==147);
3035
+ /* (148) edge ::= TOP */ yytestcase(yyruleno==148);
3036
+ /* (149) edge ::= BOTTOM */ yytestcase(yyruleno==149);
3037
+ /* (150) edge ::= START */ yytestcase(yyruleno==150);
3038
+ /* (151) edge ::= END */ yytestcase(yyruleno==151);
3039
+ /* (152) edge ::= RIGHT */ yytestcase(yyruleno==152);
3040
+ /* (153) edge ::= LEFT */ yytestcase(yyruleno==153);
3041
+ /* (154) object ::= objectname */ yytestcase(yyruleno==154);
30213042
break;
30223043
/********** End reduce actions ************************************************/
30233044
};
30243045
assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) );
30253046
yygoto = yyRuleInfoLhs[yyruleno];
@@ -3083,11 +3104,11 @@
30833104
pik_error(p, &TOKEN, "syntax error");
30843105
}else{
30853106
pik_error(p, 0, "syntax error");
30863107
}
30873108
UNUSED_PARAMETER(yymajor);
3088
-#line 3113 "pikchr.c"
3109
+#line 3134 "pikchr.c"
30893110
/************ End %syntax_error code ******************************************/
30903111
pik_parserARG_STORE /* Suppress warning about unused %extra_argument variable */
30913112
pik_parserCTX_STORE
30923113
}
30933114
@@ -3316,11 +3337,11 @@
33163337
#else
33173338
(void)iToken;
33183339
return 0;
33193340
#endif
33203341
}
3321
-#line 751 "pikchr.y"
3342
+#line 753 "pikchr.y"
33223343
33233344
33243345
33253346
/* Chart of the 140 official HTML color names with their
33263347
** corresponding RGB value.
@@ -6859,10 +6880,11 @@
68596880
{ "s", 1, T_EDGEPT, 0, CP_S },
68606881
{ "same", 4, T_SAME, 0, 0 },
68616882
{ "se", 2, T_EDGEPT, 0, CP_SE },
68626883
{ "sin", 3, T_FUNC1, FN_SIN, 0 },
68636884
{ "small", 5, T_SMALL, 0, 0 },
6885
+ { "solid", 5, T_SOLID, 0, 0 },
68646886
{ "south", 5, T_EDGEPT, 0, CP_S },
68656887
{ "sqrt", 4, T_FUNC1, FN_SQRT, 0 },
68666888
{ "start", 5, T_START, 0, CP_START },
68676889
{ "sw", 2, T_EDGEPT, 0, CP_SW },
68686890
{ "t", 1, T_TOP, 0, CP_N },
@@ -7600,6 +7622,6 @@
76007622
}
76017623
return 0;
76027624
}
76037625
#endif /* PIKCHR_SHELL */
76047626
7605
-#line 7630 "pikchr.c"
7627
+#line 7652 "pikchr.c"
76067628
--- src/pikchr.c
+++ src/pikchr.c
@@ -530,44 +530,45 @@
530 #define T_RARROW 58
531 #define T_LRARROW 59
532 #define T_INVIS 60
533 #define T_THICK 61
534 #define T_THIN 62
535 #define T_CENTER 63
536 #define T_LJUST 64
537 #define T_RJUST 65
538 #define T_ABOVE 66
539 #define T_BELOW 67
540 #define T_ITALIC 68
541 #define T_BOLD 69
542 #define T_ALIGNED 70
543 #define T_BIG 71
544 #define T_SMALL 72
545 #define T_AND 73
546 #define T_LT 74
547 #define T_GT 75
548 #define T_ON 76
549 #define T_WAY 77
550 #define T_BETWEEN 78
551 #define T_THE 79
552 #define T_NTH 80
553 #define T_VERTEX 81
554 #define T_TOP 82
555 #define T_BOTTOM 83
556 #define T_START 84
557 #define T_END 85
558 #define T_IN 86
559 #define T_DOT_U 87
560 #define T_LAST 88
561 #define T_NUMBER 89
562 #define T_FUNC1 90
563 #define T_FUNC2 91
564 #define T_DIST 92
565 #define T_DOT_XY 93
566 #define T_X 94
567 #define T_Y 95
568 #define T_DOT_L 96
 
569 #endif
570 /**************** End token definitions ***************************************/
571
572 /* The next sections is a series of control #defines.
573 ** various aspects of the generated parser.
@@ -623,22 +624,22 @@
623 #ifndef INTERFACE
624 # define INTERFACE 1
625 #endif
626 /************* Begin control #defines *****************************************/
627 #define YYCODETYPE unsigned char
628 #define YYNOCODE 133
629 #define YYACTIONTYPE unsigned short int
630 #define pik_parserTOKENTYPE PToken
631 typedef union {
632 int yyinit;
633 pik_parserTOKENTYPE yy0;
634 int yy46;
635 PPoint yy47;
636 PNum yy121;
637 PRel yy134;
638 PObj* yy138;
639 PList* yy191;
640 } YYMINORTYPE;
641 #ifndef YYSTACKDEPTH
642 #define YYSTACKDEPTH 100
643 #endif
644 #define pik_parserARG_SDECL
@@ -651,21 +652,21 @@
651 #define pik_parserCTX_PARAM ,p
652 #define pik_parserCTX_FETCH Pik *p=yypParser->p;
653 #define pik_parserCTX_STORE yypParser->p=p;
654 #define YYFALLBACK 1
655 #define YYNSTATE 164
656 #define YYNRULE 154
657 #define YYNRULE_WITH_ACTION 114
658 #define YYNTOKEN 97
659 #define YY_MAX_SHIFT 163
660 #define YY_MIN_SHIFTREDUCE 285
661 #define YY_MAX_SHIFTREDUCE 438
662 #define YY_ERROR_ACTION 439
663 #define YY_ACCEPT_ACTION 440
664 #define YY_NO_ACTION 441
665 #define YY_MIN_REDUCE 442
666 #define YY_MAX_REDUCE 595
667 /************* End control #defines *******************************************/
668 #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
669
670 /* Define the yytestcase() macro to be a no-op if is not already defined
671 ** otherwise.
@@ -728,324 +729,333 @@
728 ** yy_reduce_ofst[] For each state, the offset into yy_action for
729 ** shifting non-terminals after a reduce.
730 ** yy_default[] Default action for each state.
731 **
732 *********** Begin parsing tables **********************************************/
733 #define YY_ACTTAB_COUNT (1223)
734 static const YYACTIONTYPE yy_action[] = {
735 /* 0 */ 569, 491, 161, 119, 25, 448, 29, 74, 129, 148,
736 /* 10 */ 569, 488, 161, 119, 449, 113, 120, 161, 119, 525,
737 /* 20 */ 423, 424, 337, 553, 81, 36, 554, 555, 569, 64,
738 /* 30 */ 63, 62, 61, 320, 321, 9, 8, 33, 149, 32,
739 /* 40 */ 7, 71, 127, 308, 333, 66, 523, 161, 119, 337,
740 /* 50 */ 337, 337, 337, 421, 422, 338, 339, 340, 341, 342,
741 /* 60 */ 343, 344, 345, 470, 64, 63, 62, 61, 311, 28,
742 /* 70 */ 73, 304, 148, 470, 528, 161, 119, 112, 113, 120,
743 /* 80 */ 161, 119, 128, 423, 424, 337, 354, 81, 526, 161,
744 /* 90 */ 119, 470, 374, 158, 13, 30, 320, 321, 9, 8,
745 /* 100 */ 33, 149, 32, 7, 71, 127, 372, 333, 66, 573,
746 /* 110 */ 328, 31, 337, 337, 337, 337, 421, 422, 338, 339,
747 /* 120 */ 340, 341, 342, 343, 344, 345, 390, 431, 326, 59,
748 /* 130 */ 60, 407, 408, 409, 410, 374, 158, 372, 35, 390,
749 /* 140 */ 2, 38, 59, 60, 48, 37, 46, 162, 442, 80,
750 /* 150 */ 372, 306, 79, 42, 118, 83, 437, 436, 36, 390,
751 /* 160 */ 431, 84, 59, 60, 47, 297, 571, 77, 571, 122,
752 /* 170 */ 372, 296, 390, 2, 108, 59, 60, 76, 156, 156,
753 /* 180 */ 156, 3, 117, 372, 132, 130, 42, 69, 430, 437,
754 /* 190 */ 436, 4, 390, 431, 67, 59, 60, 118, 64, 63,
755 /* 200 */ 62, 61, 5, 372, 6, 106, 2, 432, 433, 434,
756 /* 210 */ 435, 387, 1, 117, 389, 155, 154, 153, 106, 49,
757 /* 220 */ 420, 430, 437, 436, 107, 65, 117, 389, 155, 154,
758 /* 230 */ 153, 54, 51, 120, 161, 119, 419, 459, 106, 131,
759 /* 240 */ 432, 433, 434, 435, 78, 78, 117, 389, 155, 154,
760 /* 250 */ 153, 106, 393, 390, 430, 152, 59, 60, 11, 117,
761 /* 260 */ 389, 155, 154, 153, 102, 376, 157, 42, 394, 395,
762 /* 270 */ 69, 106, 353, 432, 433, 434, 435, 375, 159, 117,
763 /* 280 */ 389, 155, 154, 153, 142, 140, 64, 63, 62, 61,
764 /* 290 */ 12, 64, 63, 62, 61, 62, 61, 428, 45, 138,
765 /* 300 */ 139, 142, 140, 64, 63, 62, 61, 55, 64, 63,
766 /* 310 */ 62, 61, 426, 147, 146, 390, 387, 44, 59, 60,
767 /* 320 */ 43, 295, 15, 14, 55, 16, 102, 18, 19, 42,
768 /* 330 */ 147, 146, 106, 20, 299, 300, 301, 43, 303, 68,
769 /* 340 */ 117, 389, 155, 154, 153, 444, 450, 29, 22, 21,
770 /* 350 */ 114, 446, 356, 23, 26, 57, 24, 58, 145, 141,
771 /* 360 */ 427, 388, 163, 380, 373, 22, 21, 27, 160, 378,
772 /* 370 */ 70, 379, 39, 24, 441, 145, 141, 427, 142, 140,
773 /* 380 */ 64, 63, 62, 61, 347, 347, 347, 347, 347, 347,
774 /* 390 */ 347, 347, 347, 347, 106, 441, 441, 64, 63, 62,
775 /* 400 */ 61, 55, 117, 389, 155, 154, 153, 147, 146, 399,
776 /* 410 */ 387, 441, 441, 441, 43, 441, 441, 441, 52, 441,
777 /* 420 */ 133, 441, 126, 441, 441, 441, 123, 441, 400, 401,
778 /* 430 */ 402, 404, 80, 441, 306, 79, 441, 407, 408, 409,
779 /* 440 */ 410, 441, 22, 21, 390, 441, 441, 59, 60, 441,
780 /* 450 */ 24, 441, 145, 141, 427, 372, 441, 441, 42, 441,
781 /* 460 */ 441, 441, 441, 156, 156, 156, 390, 469, 441, 59,
782 /* 470 */ 60, 390, 143, 441, 59, 60, 441, 372, 441, 529,
783 /* 480 */ 42, 441, 372, 441, 441, 42, 441, 390, 144, 441,
784 /* 490 */ 59, 60, 441, 390, 441, 441, 59, 60, 372, 441,
785 /* 500 */ 441, 42, 441, 469, 372, 88, 390, 40, 441, 59,
786 /* 510 */ 60, 441, 441, 441, 120, 161, 119, 372, 529, 441,
787 /* 520 */ 41, 82, 441, 106, 529, 441, 441, 529, 462, 441,
788 /* 530 */ 34, 117, 389, 155, 154, 153, 152, 85, 64, 63,
789 /* 540 */ 62, 61, 441, 441, 441, 106, 120, 161, 119, 441,
790 /* 550 */ 106, 441, 441, 117, 389, 155, 154, 153, 117, 389,
791 /* 560 */ 155, 154, 153, 441, 441, 441, 106, 441, 152, 17,
792 /* 570 */ 441, 441, 106, 441, 117, 389, 155, 154, 153, 431,
793 /* 580 */ 117, 389, 155, 154, 153, 106, 441, 423, 424, 337,
794 /* 590 */ 441, 441, 86, 117, 389, 155, 154, 153, 441, 441,
795 /* 600 */ 441, 120, 161, 119, 121, 443, 450, 29, 437, 436,
796 /* 610 */ 441, 446, 64, 63, 62, 61, 337, 337, 337, 337,
797 /* 620 */ 421, 422, 163, 152, 441, 75, 440, 27, 109, 443,
798 /* 630 */ 450, 29, 441, 50, 74, 446, 148, 441, 441, 441,
799 /* 640 */ 430, 124, 113, 120, 161, 119, 163, 72, 441, 148,
800 /* 650 */ 441, 27, 431, 441, 125, 113, 120, 161, 119, 432,
801 /* 660 */ 433, 434, 435, 441, 74, 149, 148, 64, 63, 62,
802 /* 670 */ 61, 493, 113, 120, 161, 119, 441, 74, 149, 148,
803 /* 680 */ 352, 437, 436, 441, 492, 113, 120, 161, 119, 74,
804 /* 690 */ 441, 148, 441, 441, 98, 149, 486, 113, 120, 161,
805 /* 700 */ 119, 441, 441, 120, 161, 119, 441, 74, 149, 148,
806 /* 710 */ 441, 441, 441, 430, 480, 113, 120, 161, 119, 74,
807 /* 720 */ 149, 148, 441, 441, 441, 152, 479, 113, 120, 161,
808 /* 730 */ 119, 88, 432, 433, 434, 435, 441, 441, 149, 441,
809 /* 740 */ 120, 161, 119, 441, 74, 441, 148, 110, 110, 441,
810 /* 750 */ 149, 476, 113, 120, 161, 119, 74, 441, 148, 107,
811 /* 760 */ 441, 441, 152, 134, 113, 120, 161, 119, 120, 161,
812 /* 770 */ 119, 441, 459, 441, 74, 149, 148, 441, 441, 441,
813 /* 780 */ 563, 512, 113, 120, 161, 119, 74, 149, 148, 441,
814 /* 790 */ 152, 441, 441, 137, 113, 120, 161, 119, 441, 74,
815 /* 800 */ 441, 148, 441, 441, 441, 149, 520, 113, 120, 161,
816 /* 810 */ 119, 74, 441, 148, 441, 441, 88, 149, 522, 113,
817 /* 820 */ 120, 161, 119, 441, 441, 120, 161, 119, 441, 74,
818 /* 830 */ 149, 148, 111, 111, 441, 441, 519, 113, 120, 161,
819 /* 840 */ 119, 441, 149, 441, 441, 441, 74, 152, 148, 441,
820 /* 850 */ 441, 441, 88, 521, 113, 120, 161, 119, 441, 441,
821 /* 860 */ 149, 120, 161, 119, 441, 74, 441, 148, 471, 441,
822 /* 870 */ 441, 441, 518, 113, 120, 161, 119, 149, 74, 441,
823 /* 880 */ 148, 441, 441, 152, 441, 517, 113, 120, 161, 119,
824 /* 890 */ 74, 441, 148, 441, 441, 441, 149, 516, 113, 120,
825 /* 900 */ 161, 119, 441, 74, 441, 148, 441, 441, 441, 149,
826 /* 910 */ 515, 113, 120, 161, 119, 74, 441, 148, 89, 441,
827 /* 920 */ 441, 149, 514, 113, 120, 161, 119, 120, 161, 119,
828 /* 930 */ 441, 74, 441, 148, 149, 441, 441, 441, 150, 113,
829 /* 940 */ 120, 161, 119, 441, 441, 441, 149, 441, 74, 152,
830 /* 950 */ 148, 441, 441, 441, 90, 151, 113, 120, 161, 119,
831 /* 960 */ 441, 441, 149, 120, 161, 119, 441, 74, 441, 148,
832 /* 970 */ 64, 63, 62, 61, 136, 113, 120, 161, 119, 149,
833 /* 980 */ 74, 441, 148, 351, 441, 152, 441, 135, 113, 120,
834 /* 990 */ 161, 119, 88, 64, 63, 62, 61, 441, 149, 441,
835 /* 1000 */ 441, 120, 161, 119, 441, 107, 392, 10, 475, 475,
836 /* 1010 */ 441, 149, 441, 441, 120, 161, 119, 107, 474, 64,
837 /* 1020 */ 63, 62, 61, 152, 87, 441, 120, 161, 119, 99,
838 /* 1030 */ 447, 441, 391, 120, 161, 119, 152, 441, 120, 161,
839 /* 1040 */ 119, 100, 441, 441, 64, 63, 62, 61, 152, 441,
840 /* 1050 */ 120, 161, 119, 441, 441, 152, 101, 387, 441, 91,
841 /* 1060 */ 152, 441, 441, 441, 103, 120, 161, 119, 120, 161,
842 /* 1070 */ 119, 92, 152, 120, 161, 119, 441, 441, 441, 441,
843 /* 1080 */ 120, 161, 119, 441, 441, 441, 441, 152, 441, 93,
844 /* 1090 */ 152, 441, 441, 441, 104, 152, 441, 441, 120, 161,
845 /* 1100 */ 119, 441, 152, 120, 161, 119, 441, 94, 441, 441,
846 /* 1110 */ 441, 441, 441, 105, 441, 441, 120, 161, 119, 95,
847 /* 1120 */ 152, 441, 120, 161, 119, 152, 96, 441, 120, 161,
848 /* 1130 */ 119, 97, 441, 441, 441, 120, 161, 119, 152, 441,
849 /* 1140 */ 120, 161, 119, 543, 152, 441, 441, 441, 441, 441,
850 /* 1150 */ 152, 441, 120, 161, 119, 441, 441, 152, 542, 441,
851 /* 1160 */ 441, 541, 152, 441, 441, 441, 540, 120, 161, 119,
852 /* 1170 */ 120, 161, 119, 115, 152, 120, 161, 119, 64, 63,
853 /* 1180 */ 62, 61, 120, 161, 119, 64, 63, 62, 61, 152,
854 /* 1190 */ 441, 116, 152, 441, 441, 441, 441, 152, 441, 53,
855 /* 1200 */ 120, 161, 119, 441, 152, 441, 56, 441, 441, 441,
856 /* 1210 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
857 /* 1220 */ 441, 441, 152,
 
 
 
 
858 };
859 static const YYCODETYPE yy_lookahead[] = {
860 /* 0 */ 0, 110, 111, 112, 131, 99, 100, 101, 103, 103,
861 /* 10 */ 10, 110, 111, 112, 108, 109, 110, 111, 112, 103,
862 /* 20 */ 20, 21, 22, 102, 24, 10, 105, 106, 28, 4,
863 /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 132, 39,
864 /* 40 */ 40, 41, 42, 28, 44, 45, 110, 111, 112, 49,
865 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
866 /* 60 */ 60, 61, 62, 0, 4, 5, 6, 7, 8, 104,
867 /* 70 */ 101, 25, 103, 10, 110, 111, 112, 108, 109, 110,
868 /* 80 */ 111, 112, 103, 20, 21, 22, 17, 24, 110, 111,
869 /* 90 */ 112, 28, 26, 27, 25, 123, 33, 34, 35, 36,
870 /* 100 */ 37, 132, 39, 40, 41, 42, 12, 44, 45, 130,
871 /* 110 */ 2, 125, 49, 50, 51, 52, 53, 54, 55, 56,
872 /* 120 */ 57, 58, 59, 60, 61, 62, 1, 2, 2, 4,
873 /* 130 */ 5, 29, 30, 31, 32, 26, 27, 12, 126, 1,
874 /* 140 */ 15, 102, 4, 5, 105, 106, 38, 81, 0, 24,
875 /* 150 */ 12, 26, 27, 15, 88, 113, 31, 32, 10, 1,
876 /* 160 */ 2, 113, 4, 5, 38, 19, 127, 128, 129, 1,
877 /* 170 */ 12, 17, 1, 15, 80, 4, 5, 48, 20, 21,
878 /* 180 */ 22, 16, 88, 12, 46, 47, 15, 3, 63, 31,
879 /* 190 */ 32, 15, 1, 2, 43, 4, 5, 88, 4, 5,
880 /* 200 */ 6, 7, 40, 12, 40, 80, 15, 82, 83, 84,
881 /* 210 */ 85, 17, 13, 88, 89, 90, 91, 92, 80, 25,
882 /* 220 */ 41, 63, 31, 32, 101, 96, 88, 89, 90, 91,
883 /* 230 */ 92, 4, 5, 110, 111, 112, 41, 114, 80, 47,
884 /* 240 */ 82, 83, 84, 85, 121, 122, 88, 89, 90, 91,
885 /* 250 */ 92, 80, 17, 1, 63, 132, 4, 5, 25, 88,
886 /* 260 */ 89, 90, 91, 92, 12, 26, 27, 15, 94, 95,
887 /* 270 */ 86, 80, 17, 82, 83, 84, 85, 26, 27, 88,
888 /* 280 */ 89, 90, 91, 92, 2, 3, 4, 5, 6, 7,
889 /* 290 */ 73, 4, 5, 6, 7, 6, 7, 78, 16, 77,
890 /* 300 */ 79, 2, 3, 4, 5, 6, 7, 25, 4, 5,
891 /* 310 */ 6, 7, 78, 31, 32, 1, 17, 38, 4, 5,
892 /* 320 */ 38, 17, 35, 3, 25, 3, 12, 3, 3, 15,
893 /* 330 */ 31, 32, 80, 3, 20, 21, 22, 38, 24, 3,
894 /* 340 */ 88, 89, 90, 91, 92, 98, 99, 100, 66, 67,
895 /* 350 */ 93, 104, 75, 25, 15, 15, 74, 15, 76, 77,
896 /* 360 */ 78, 17, 115, 28, 12, 66, 67, 120, 87, 28,
897 /* 370 */ 3, 28, 11, 74, 133, 76, 77, 78, 2, 3,
898 /* 380 */ 4, 5, 6, 7, 63, 64, 65, 66, 67, 68,
899 /* 390 */ 69, 70, 71, 72, 80, 133, 133, 4, 5, 6,
900 /* 400 */ 7, 25, 88, 89, 90, 91, 92, 31, 32, 1,
901 /* 410 */ 17, 133, 133, 133, 38, 133, 133, 133, 25, 133,
902 /* 420 */ 12, 133, 14, 133, 133, 133, 18, 133, 20, 21,
903 /* 430 */ 22, 23, 24, 133, 26, 27, 133, 29, 30, 31,
904 /* 440 */ 32, 133, 66, 67, 1, 133, 133, 4, 5, 133,
905 /* 450 */ 74, 133, 76, 77, 78, 12, 133, 133, 15, 133,
906 /* 460 */ 133, 133, 133, 20, 21, 22, 1, 2, 133, 4,
907 /* 470 */ 5, 1, 2, 133, 4, 5, 133, 12, 133, 48,
908 /* 480 */ 15, 133, 12, 133, 133, 15, 133, 1, 2, 133,
909 /* 490 */ 4, 5, 133, 1, 133, 133, 4, 5, 12, 133,
910 /* 500 */ 133, 15, 133, 38, 12, 101, 1, 15, 133, 4,
911 /* 510 */ 5, 133, 133, 133, 110, 111, 112, 12, 87, 133,
912 /* 520 */ 15, 117, 133, 80, 93, 133, 133, 96, 124, 133,
913 /* 530 */ 126, 88, 89, 90, 91, 92, 132, 101, 4, 5,
914 /* 540 */ 6, 7, 133, 133, 133, 80, 110, 111, 112, 133,
915 /* 550 */ 80, 133, 133, 88, 89, 90, 91, 92, 88, 89,
916 /* 560 */ 90, 91, 92, 133, 133, 133, 80, 133, 132, 35,
917 /* 570 */ 133, 133, 80, 133, 88, 89, 90, 91, 92, 2,
918 /* 580 */ 88, 89, 90, 91, 92, 80, 133, 20, 21, 22,
919 /* 590 */ 133, 133, 101, 88, 89, 90, 91, 92, 133, 133,
920 /* 600 */ 133, 110, 111, 112, 97, 98, 99, 100, 31, 32,
921 /* 610 */ 133, 104, 4, 5, 6, 7, 49, 50, 51, 52,
922 /* 620 */ 53, 54, 115, 132, 133, 48, 119, 120, 97, 98,
923 /* 630 */ 99, 100, 133, 25, 101, 104, 103, 133, 133, 133,
924 /* 640 */ 63, 108, 109, 110, 111, 112, 115, 101, 133, 103,
925 /* 650 */ 133, 120, 2, 133, 108, 109, 110, 111, 112, 82,
926 /* 660 */ 83, 84, 85, 133, 101, 132, 103, 4, 5, 6,
927 /* 670 */ 7, 108, 109, 110, 111, 112, 133, 101, 132, 103,
928 /* 680 */ 17, 31, 32, 133, 108, 109, 110, 111, 112, 101,
929 /* 690 */ 133, 103, 133, 133, 101, 132, 108, 109, 110, 111,
930 /* 700 */ 112, 133, 133, 110, 111, 112, 133, 101, 132, 103,
931 /* 710 */ 133, 133, 133, 63, 108, 109, 110, 111, 112, 101,
932 /* 720 */ 132, 103, 133, 133, 133, 132, 108, 109, 110, 111,
933 /* 730 */ 112, 101, 82, 83, 84, 85, 133, 133, 132, 133,
934 /* 740 */ 110, 111, 112, 133, 101, 133, 103, 117, 118, 133,
935 /* 750 */ 132, 108, 109, 110, 111, 112, 101, 133, 103, 101,
936 /* 760 */ 133, 133, 132, 108, 109, 110, 111, 112, 110, 111,
937 /* 770 */ 112, 133, 114, 133, 101, 132, 103, 133, 133, 133,
938 /* 780 */ 122, 108, 109, 110, 111, 112, 101, 132, 103, 133,
939 /* 790 */ 132, 133, 133, 108, 109, 110, 111, 112, 133, 101,
940 /* 800 */ 133, 103, 133, 133, 133, 132, 108, 109, 110, 111,
941 /* 810 */ 112, 101, 133, 103, 133, 133, 101, 132, 108, 109,
942 /* 820 */ 110, 111, 112, 133, 133, 110, 111, 112, 133, 101,
943 /* 830 */ 132, 103, 117, 118, 133, 133, 108, 109, 110, 111,
944 /* 840 */ 112, 133, 132, 133, 133, 133, 101, 132, 103, 133,
945 /* 850 */ 133, 133, 101, 108, 109, 110, 111, 112, 133, 133,
946 /* 860 */ 132, 110, 111, 112, 133, 101, 133, 103, 117, 133,
947 /* 870 */ 133, 133, 108, 109, 110, 111, 112, 132, 101, 133,
948 /* 880 */ 103, 133, 133, 132, 133, 108, 109, 110, 111, 112,
949 /* 890 */ 101, 133, 103, 133, 133, 133, 132, 108, 109, 110,
950 /* 900 */ 111, 112, 133, 101, 133, 103, 133, 133, 133, 132,
951 /* 910 */ 108, 109, 110, 111, 112, 101, 133, 103, 101, 133,
952 /* 920 */ 133, 132, 108, 109, 110, 111, 112, 110, 111, 112,
953 /* 930 */ 133, 101, 133, 103, 132, 133, 133, 133, 108, 109,
954 /* 940 */ 110, 111, 112, 133, 133, 133, 132, 133, 101, 132,
955 /* 950 */ 103, 133, 133, 133, 101, 108, 109, 110, 111, 112,
956 /* 960 */ 133, 133, 132, 110, 111, 112, 133, 101, 133, 103,
957 /* 970 */ 4, 5, 6, 7, 108, 109, 110, 111, 112, 132,
958 /* 980 */ 101, 133, 103, 17, 133, 132, 133, 108, 109, 110,
959 /* 990 */ 111, 112, 101, 4, 5, 6, 7, 133, 132, 133,
960 /* 1000 */ 133, 110, 111, 112, 133, 101, 17, 116, 117, 118,
961 /* 1010 */ 133, 132, 133, 133, 110, 111, 112, 101, 114, 4,
962 /* 1020 */ 5, 6, 7, 132, 101, 133, 110, 111, 112, 101,
963 /* 1030 */ 114, 133, 17, 110, 111, 112, 132, 133, 110, 111,
964 /* 1040 */ 112, 101, 133, 133, 4, 5, 6, 7, 132, 133,
965 /* 1050 */ 110, 111, 112, 133, 133, 132, 101, 17, 133, 101,
966 /* 1060 */ 132, 133, 133, 133, 101, 110, 111, 112, 110, 111,
967 /* 1070 */ 112, 101, 132, 110, 111, 112, 133, 133, 133, 133,
968 /* 1080 */ 110, 111, 112, 133, 133, 133, 133, 132, 133, 101,
969 /* 1090 */ 132, 133, 133, 133, 101, 132, 133, 133, 110, 111,
970 /* 1100 */ 112, 133, 132, 110, 111, 112, 133, 101, 133, 133,
971 /* 1110 */ 133, 133, 133, 101, 133, 133, 110, 111, 112, 101,
972 /* 1120 */ 132, 133, 110, 111, 112, 132, 101, 133, 110, 111,
973 /* 1130 */ 112, 101, 133, 133, 133, 110, 111, 112, 132, 133,
974 /* 1140 */ 110, 111, 112, 101, 132, 133, 133, 133, 133, 133,
975 /* 1150 */ 132, 133, 110, 111, 112, 133, 133, 132, 101, 133,
976 /* 1160 */ 133, 101, 132, 133, 133, 133, 101, 110, 111, 112,
977 /* 1170 */ 110, 111, 112, 101, 132, 110, 111, 112, 4, 5,
978 /* 1180 */ 6, 7, 110, 111, 112, 4, 5, 6, 7, 132,
979 /* 1190 */ 133, 101, 132, 133, 133, 133, 133, 132, 133, 25,
980 /* 1200 */ 110, 111, 112, 133, 132, 133, 25, 133, 133, 133,
981 /* 1210 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
982 /* 1220 */ 133, 133, 132, 133, 133, 133, 133, 133, 133, 133,
983 /* 1230 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
984 /* 1240 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
985 /* 1250 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
986 /* 1260 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
987 /* 1270 */ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
988 /* 1280 */ 133, 133, 133, 97, 97, 97, 97, 97, 97, 97,
989 /* 1290 */ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
990 /* 1300 */ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
991 /* 1310 */ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
 
 
 
 
 
992 };
993 #define YY_SHIFT_COUNT (163)
994 #define YY_SHIFT_MIN (0)
995 #define YY_SHIFT_MAX (1181)
996 static const unsigned short int yy_shift_ofst[] = {
997 /* 0 */ 408, 125, 158, 191, 191, 191, 191, 191, 191, 191,
998 /* 10 */ 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
999 /* 20 */ 191, 191, 191, 191, 191, 191, 191, 314, 138, 171,
1000 /* 30 */ 314, 408, 465, 465, 0, 63, 408, 252, 171, 252,
1001 /* 40 */ 443, 443, 443, 470, 486, 171, 171, 171, 171, 171,
1002 /* 50 */ 171, 492, 171, 171, 505, 171, 171, 171, 171, 171,
1003 /* 60 */ 171, 171, 171, 171, 171, 567, 94, 94, 94, 94,
1004 /* 70 */ 94, 577, 282, 299, 376, 650, 650, 102, 46, 1223,
1005 /* 80 */ 1223, 1223, 1223, 321, 321, 194, 393, 304, 60, 287,
1006 /* 90 */ 534, 663, 608, 966, 1174, 989, 1181, 1015, 1040, 25,
1007 /* 100 */ 25, 25, 431, 25, 25, 25, 66, 25, 109, 15,
1008 /* 110 */ 108, 126, 69, 227, 174, 289, 289, 239, 251, 184,
1009 /* 120 */ 129, 148, 146, 168, 154, 165, 176, 151, 162, 164,
1010 /* 130 */ 179, 195, 192, 199, 235, 233, 217, 255, 219, 222,
1011 /* 140 */ 221, 234, 320, 322, 324, 279, 325, 330, 336, 257,
1012 /* 150 */ 277, 328, 257, 339, 340, 342, 344, 335, 341, 343,
1013 /* 160 */ 352, 281, 367, 361,
1014 };
1015 #define YY_REDUCE_COUNT (82)
1016 #define YY_REDUCE_MIN (-127)
1017 #define YY_REDUCE_MAX (1090)
1018 static const short yy_reduce_ofst[] = {
1019 /* 0 */ 507, -94, -31, 533, 546, 563, 576, 588, 606, 618,
1020 /* 10 */ 643, 655, 673, 685, 698, 710, 728, 745, 764, 777,
1021 /* 20 */ 789, 802, 814, 830, 847, 866, 879, 123, 891, 404,
1022 /* 30 */ 658, 531, 630, 715, 39, 39, 247, 904, 751, 916,
1023 /* 40 */ 436, 491, 593, 817, 853, 923, 928, 940, 955, 958,
1024 /* 50 */ 963, 970, 988, 993, 1006, 1012, 1018, 1025, 1030, 1042,
1025 /* 60 */ 1057, 1060, 1065, 1072, 1090, -79, -109, -99, -64, -36,
1026 /* 70 */ -22, -21, -127, -127, -127, -95, -84, -35, -28, -14,
1027 /* 80 */ 42, 48, 12,
1028 };
1029 static const YYACTIONTYPE yy_default[] = {
1030 /* 0 */ 445, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1031 /* 10 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1032 /* 20 */ 439, 439, 439, 439, 439, 439, 439, 439, 469, 570,
1033 /* 30 */ 439, 445, 574, 481, 575, 575, 445, 439, 439, 439,
1034 /* 40 */ 439, 439, 439, 439, 439, 439, 439, 439, 473, 439,
1035 /* 50 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1036 /* 60 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1037 /* 70 */ 439, 439, 439, 439, 439, 439, 439, 439, 451, 466,
1038 /* 80 */ 503, 503, 570, 464, 489, 439, 439, 439, 467, 439,
1039 /* 90 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 484,
1040 /* 100 */ 482, 472, 455, 507, 506, 505, 439, 560, 439, 439,
1041 /* 110 */ 439, 439, 439, 582, 439, 539, 538, 534, 439, 527,
1042 /* 120 */ 524, 439, 439, 439, 439, 439, 439, 487, 439, 439,
1043 /* 130 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1044 /* 140 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 586,
1045 /* 150 */ 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1046 /* 160 */ 439, 595, 439, 439,
1047 };
1048 /********** End of lemon-generated parsing tables *****************************/
1049
1050 /* The next table maps tokens (terminal symbols) into fallback tokens.
1051 ** If a construct like the following:
@@ -1124,10 +1134,11 @@
1124 0, /* RARROW => nothing */
1125 0, /* LRARROW => nothing */
1126 0, /* INVIS => nothing */
1127 0, /* THICK => nothing */
1128 0, /* THIN => nothing */
 
1129 0, /* CENTER => nothing */
1130 0, /* LJUST => nothing */
1131 0, /* RJUST => nothing */
1132 0, /* ABOVE => nothing */
1133 0, /* BELOW => nothing */
@@ -1309,80 +1320,81 @@
1309 /* 58 */ "RARROW",
1310 /* 59 */ "LRARROW",
1311 /* 60 */ "INVIS",
1312 /* 61 */ "THICK",
1313 /* 62 */ "THIN",
1314 /* 63 */ "CENTER",
1315 /* 64 */ "LJUST",
1316 /* 65 */ "RJUST",
1317 /* 66 */ "ABOVE",
1318 /* 67 */ "BELOW",
1319 /* 68 */ "ITALIC",
1320 /* 69 */ "BOLD",
1321 /* 70 */ "ALIGNED",
1322 /* 71 */ "BIG",
1323 /* 72 */ "SMALL",
1324 /* 73 */ "AND",
1325 /* 74 */ "LT",
1326 /* 75 */ "GT",
1327 /* 76 */ "ON",
1328 /* 77 */ "WAY",
1329 /* 78 */ "BETWEEN",
1330 /* 79 */ "THE",
1331 /* 80 */ "NTH",
1332 /* 81 */ "VERTEX",
1333 /* 82 */ "TOP",
1334 /* 83 */ "BOTTOM",
1335 /* 84 */ "START",
1336 /* 85 */ "END",
1337 /* 86 */ "IN",
1338 /* 87 */ "DOT_U",
1339 /* 88 */ "LAST",
1340 /* 89 */ "NUMBER",
1341 /* 90 */ "FUNC1",
1342 /* 91 */ "FUNC2",
1343 /* 92 */ "DIST",
1344 /* 93 */ "DOT_XY",
1345 /* 94 */ "X",
1346 /* 95 */ "Y",
1347 /* 96 */ "DOT_L",
1348 /* 97 */ "statement_list",
1349 /* 98 */ "statement",
1350 /* 99 */ "unnamed_statement",
1351 /* 100 */ "basetype",
1352 /* 101 */ "expr",
1353 /* 102 */ "numproperty",
1354 /* 103 */ "edge",
1355 /* 104 */ "direction",
1356 /* 105 */ "dashproperty",
1357 /* 106 */ "colorproperty",
1358 /* 107 */ "locproperty",
1359 /* 108 */ "position",
1360 /* 109 */ "place",
1361 /* 110 */ "object",
1362 /* 111 */ "objectname",
1363 /* 112 */ "nth",
1364 /* 113 */ "textposition",
1365 /* 114 */ "rvalue",
1366 /* 115 */ "lvalue",
1367 /* 116 */ "even",
1368 /* 117 */ "relexpr",
1369 /* 118 */ "optrelexpr",
1370 /* 119 */ "document",
1371 /* 120 */ "print",
1372 /* 121 */ "prlist",
1373 /* 122 */ "pritem",
1374 /* 123 */ "prsep",
1375 /* 124 */ "attribute_list",
1376 /* 125 */ "savelist",
1377 /* 126 */ "alist",
1378 /* 127 */ "attribute",
1379 /* 128 */ "go",
1380 /* 129 */ "boolproperty",
1381 /* 130 */ "withclause",
1382 /* 131 */ "between",
1383 /* 132 */ "place2",
 
1384 };
1385 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
1386
1387 #ifndef NDEBUG
1388 /* For tracing reduce actions, the names of all rules are required.
@@ -1447,103 +1459,104 @@
1447 /* 56 */ "boolproperty ::= RARROW",
1448 /* 57 */ "boolproperty ::= LRARROW",
1449 /* 58 */ "boolproperty ::= INVIS",
1450 /* 59 */ "boolproperty ::= THICK",
1451 /* 60 */ "boolproperty ::= THIN",
1452 /* 61 */ "textposition ::=",
1453 /* 62 */ "textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL",
1454 /* 63 */ "position ::= expr COMMA expr",
1455 /* 64 */ "position ::= place PLUS expr COMMA expr",
1456 /* 65 */ "position ::= place MINUS expr COMMA expr",
1457 /* 66 */ "position ::= place PLUS LP expr COMMA expr RP",
1458 /* 67 */ "position ::= place MINUS LP expr COMMA expr RP",
1459 /* 68 */ "position ::= LP position COMMA position RP",
1460 /* 69 */ "position ::= LP position RP",
1461 /* 70 */ "position ::= expr between position AND position",
1462 /* 71 */ "position ::= expr LT position COMMA position GT",
1463 /* 72 */ "position ::= expr ABOVE position",
1464 /* 73 */ "position ::= expr BELOW position",
1465 /* 74 */ "position ::= expr LEFT OF position",
1466 /* 75 */ "position ::= expr RIGHT OF position",
1467 /* 76 */ "position ::= expr ON HEADING EDGEPT OF position",
1468 /* 77 */ "position ::= expr HEADING EDGEPT OF position",
1469 /* 78 */ "position ::= expr EDGEPT OF position",
1470 /* 79 */ "position ::= expr ON HEADING expr FROM position",
1471 /* 80 */ "position ::= expr HEADING expr FROM position",
1472 /* 81 */ "place ::= edge OF object",
1473 /* 82 */ "place2 ::= object",
1474 /* 83 */ "place2 ::= object DOT_E edge",
1475 /* 84 */ "place2 ::= NTH VERTEX OF object",
1476 /* 85 */ "object ::= nth",
1477 /* 86 */ "object ::= nth OF|IN object",
1478 /* 87 */ "objectname ::= PLACENAME",
1479 /* 88 */ "objectname ::= objectname DOT_U PLACENAME",
1480 /* 89 */ "nth ::= NTH CLASSNAME",
1481 /* 90 */ "nth ::= NTH LAST CLASSNAME",
1482 /* 91 */ "nth ::= LAST CLASSNAME",
1483 /* 92 */ "nth ::= LAST",
1484 /* 93 */ "nth ::= NTH LB RB",
1485 /* 94 */ "nth ::= NTH LAST LB RB",
1486 /* 95 */ "nth ::= LAST LB RB",
1487 /* 96 */ "expr ::= expr PLUS expr",
1488 /* 97 */ "expr ::= expr MINUS expr",
1489 /* 98 */ "expr ::= expr STAR expr",
1490 /* 99 */ "expr ::= expr SLASH expr",
1491 /* 100 */ "expr ::= MINUS expr",
1492 /* 101 */ "expr ::= PLUS expr",
1493 /* 102 */ "expr ::= LP expr RP",
1494 /* 103 */ "expr ::= LP FILL|COLOR|THICKNESS RP",
1495 /* 104 */ "expr ::= NUMBER",
1496 /* 105 */ "expr ::= ID",
1497 /* 106 */ "expr ::= FUNC1 LP expr RP",
1498 /* 107 */ "expr ::= FUNC2 LP expr COMMA expr RP",
1499 /* 108 */ "expr ::= DIST LP position COMMA position RP",
1500 /* 109 */ "expr ::= place2 DOT_XY X",
1501 /* 110 */ "expr ::= place2 DOT_XY Y",
1502 /* 111 */ "expr ::= object DOT_L numproperty",
1503 /* 112 */ "expr ::= object DOT_L dashproperty",
1504 /* 113 */ "expr ::= object DOT_L colorproperty",
1505 /* 114 */ "lvalue ::= ID",
1506 /* 115 */ "lvalue ::= FILL",
1507 /* 116 */ "lvalue ::= COLOR",
1508 /* 117 */ "lvalue ::= THICKNESS",
1509 /* 118 */ "rvalue ::= expr",
1510 /* 119 */ "print ::= PRINT",
1511 /* 120 */ "prlist ::= pritem",
1512 /* 121 */ "prlist ::= prlist prsep pritem",
1513 /* 122 */ "direction ::= UP",
1514 /* 123 */ "direction ::= DOWN",
1515 /* 124 */ "direction ::= LEFT",
1516 /* 125 */ "direction ::= RIGHT",
1517 /* 126 */ "optrelexpr ::= relexpr",
1518 /* 127 */ "attribute_list ::= alist",
1519 /* 128 */ "alist ::=",
1520 /* 129 */ "alist ::= alist attribute",
1521 /* 130 */ "attribute ::= boolproperty",
1522 /* 131 */ "attribute ::= WITH withclause",
1523 /* 132 */ "go ::= GO",
1524 /* 133 */ "go ::=",
1525 /* 134 */ "even ::= UNTIL EVEN WITH",
1526 /* 135 */ "even ::= EVEN WITH",
1527 /* 136 */ "dashproperty ::= DOTTED",
1528 /* 137 */ "dashproperty ::= DASHED",
1529 /* 138 */ "colorproperty ::= FILL",
1530 /* 139 */ "colorproperty ::= COLOR",
1531 /* 140 */ "position ::= place",
1532 /* 141 */ "between ::= WAY BETWEEN",
1533 /* 142 */ "between ::= BETWEEN",
1534 /* 143 */ "between ::= OF THE WAY BETWEEN",
1535 /* 144 */ "place ::= place2",
1536 /* 145 */ "edge ::= CENTER",
1537 /* 146 */ "edge ::= EDGEPT",
1538 /* 147 */ "edge ::= TOP",
1539 /* 148 */ "edge ::= BOTTOM",
1540 /* 149 */ "edge ::= START",
1541 /* 150 */ "edge ::= END",
1542 /* 151 */ "edge ::= RIGHT",
1543 /* 152 */ "edge ::= LEFT",
1544 /* 153 */ "object ::= objectname",
 
1545 };
1546 #endif /* NDEBUG */
1547
1548
1549 #if YYSTACKDEPTH<=0
@@ -1665,24 +1678,24 @@
1665 ** Note: during a reduce, the only symbols destroyed are those
1666 ** which appear on the RHS of the rule, but which are *not* used
1667 ** inside the C code.
1668 */
1669 /********* Begin destructor definitions ***************************************/
1670 case 97: /* statement_list */
1671 {
1672 #line 483 "pikchr.y"
1673 pik_elist_free(p,(yypminor->yy191));
1674 #line 1699 "pikchr.c"
1675 }
1676 break;
1677 case 98: /* statement */
1678 case 99: /* unnamed_statement */
1679 case 100: /* basetype */
1680 {
1681 #line 485 "pikchr.y"
1682 pik_elem_free(p,(yypminor->yy138));
1683 #line 1708 "pikchr.c"
1684 }
1685 break;
1686 /********* End destructor definitions *****************************************/
1687 default: break; /* If no destructor action specified: do nothing */
1688 }
@@ -1899,11 +1912,11 @@
1899 ** stack every overflows */
1900 /******** Begin %stack_overflow code ******************************************/
1901 #line 517 "pikchr.y"
1902
1903 pik_error(p, 0, "parser stack overflow");
1904 #line 1929 "pikchr.c"
1905 /******** End %stack_overflow code ********************************************/
1906 pik_parserARG_STORE /* Suppress warning about unused %extra_argument var */
1907 pik_parserCTX_STORE
1908 }
1909
@@ -1971,164 +1984,165 @@
1971 }
1972
1973 /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
1974 ** of that rule */
1975 static const YYCODETYPE yyRuleInfoLhs[] = {
1976 119, /* (0) document ::= statement_list */
1977 97, /* (1) statement_list ::= statement */
1978 97, /* (2) statement_list ::= statement_list EOL statement */
1979 98, /* (3) statement ::= */
1980 98, /* (4) statement ::= direction */
1981 98, /* (5) statement ::= lvalue ASSIGN rvalue */
1982 98, /* (6) statement ::= PLACENAME COLON unnamed_statement */
1983 98, /* (7) statement ::= PLACENAME COLON position */
1984 98, /* (8) statement ::= unnamed_statement */
1985 98, /* (9) statement ::= print prlist */
1986 98, /* (10) statement ::= ASSERT LP expr EQ expr RP */
1987 98, /* (11) statement ::= ASSERT LP position EQ position RP */
1988 98, /* (12) statement ::= DEFINE ID CODEBLOCK */
1989 114, /* (13) rvalue ::= PLACENAME */
1990 122, /* (14) pritem ::= FILL */
1991 122, /* (15) pritem ::= COLOR */
1992 122, /* (16) pritem ::= THICKNESS */
1993 122, /* (17) pritem ::= rvalue */
1994 122, /* (18) pritem ::= STRING */
1995 123, /* (19) prsep ::= COMMA */
1996 99, /* (20) unnamed_statement ::= basetype attribute_list */
1997 100, /* (21) basetype ::= CLASSNAME */
1998 100, /* (22) basetype ::= STRING textposition */
1999 100, /* (23) basetype ::= LB savelist statement_list RB */
2000 125, /* (24) savelist ::= */
2001 117, /* (25) relexpr ::= expr */
2002 117, /* (26) relexpr ::= expr PERCENT */
2003 118, /* (27) optrelexpr ::= */
2004 124, /* (28) attribute_list ::= relexpr alist */
2005 127, /* (29) attribute ::= numproperty relexpr */
2006 127, /* (30) attribute ::= dashproperty expr */
2007 127, /* (31) attribute ::= dashproperty */
2008 127, /* (32) attribute ::= colorproperty rvalue */
2009 127, /* (33) attribute ::= go direction optrelexpr */
2010 127, /* (34) attribute ::= go direction even position */
2011 127, /* (35) attribute ::= CLOSE */
2012 127, /* (36) attribute ::= CHOP */
2013 127, /* (37) attribute ::= FROM position */
2014 127, /* (38) attribute ::= TO position */
2015 127, /* (39) attribute ::= THEN */
2016 127, /* (40) attribute ::= THEN optrelexpr HEADING expr */
2017 127, /* (41) attribute ::= THEN optrelexpr EDGEPT */
2018 127, /* (42) attribute ::= GO optrelexpr HEADING expr */
2019 127, /* (43) attribute ::= GO optrelexpr EDGEPT */
2020 127, /* (44) attribute ::= AT position */
2021 127, /* (45) attribute ::= SAME */
2022 127, /* (46) attribute ::= SAME AS object */
2023 127, /* (47) attribute ::= STRING textposition */
2024 127, /* (48) attribute ::= FIT */
2025 127, /* (49) attribute ::= BEHIND object */
2026 130, /* (50) withclause ::= DOT_E edge AT position */
2027 130, /* (51) withclause ::= edge AT position */
2028 102, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
2029 129, /* (53) boolproperty ::= CW */
2030 129, /* (54) boolproperty ::= CCW */
2031 129, /* (55) boolproperty ::= LARROW */
2032 129, /* (56) boolproperty ::= RARROW */
2033 129, /* (57) boolproperty ::= LRARROW */
2034 129, /* (58) boolproperty ::= INVIS */
2035 129, /* (59) boolproperty ::= THICK */
2036 129, /* (60) boolproperty ::= THIN */
2037 113, /* (61) textposition ::= */
2038 113, /* (62) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2039 108, /* (63) position ::= expr COMMA expr */
2040 108, /* (64) position ::= place PLUS expr COMMA expr */
2041 108, /* (65) position ::= place MINUS expr COMMA expr */
2042 108, /* (66) position ::= place PLUS LP expr COMMA expr RP */
2043 108, /* (67) position ::= place MINUS LP expr COMMA expr RP */
2044 108, /* (68) position ::= LP position COMMA position RP */
2045 108, /* (69) position ::= LP position RP */
2046 108, /* (70) position ::= expr between position AND position */
2047 108, /* (71) position ::= expr LT position COMMA position GT */
2048 108, /* (72) position ::= expr ABOVE position */
2049 108, /* (73) position ::= expr BELOW position */
2050 108, /* (74) position ::= expr LEFT OF position */
2051 108, /* (75) position ::= expr RIGHT OF position */
2052 108, /* (76) position ::= expr ON HEADING EDGEPT OF position */
2053 108, /* (77) position ::= expr HEADING EDGEPT OF position */
2054 108, /* (78) position ::= expr EDGEPT OF position */
2055 108, /* (79) position ::= expr ON HEADING expr FROM position */
2056 108, /* (80) position ::= expr HEADING expr FROM position */
2057 109, /* (81) place ::= edge OF object */
2058 132, /* (82) place2 ::= object */
2059 132, /* (83) place2 ::= object DOT_E edge */
2060 132, /* (84) place2 ::= NTH VERTEX OF object */
2061 110, /* (85) object ::= nth */
2062 110, /* (86) object ::= nth OF|IN object */
2063 111, /* (87) objectname ::= PLACENAME */
2064 111, /* (88) objectname ::= objectname DOT_U PLACENAME */
2065 112, /* (89) nth ::= NTH CLASSNAME */
2066 112, /* (90) nth ::= NTH LAST CLASSNAME */
2067 112, /* (91) nth ::= LAST CLASSNAME */
2068 112, /* (92) nth ::= LAST */
2069 112, /* (93) nth ::= NTH LB RB */
2070 112, /* (94) nth ::= NTH LAST LB RB */
2071 112, /* (95) nth ::= LAST LB RB */
2072 101, /* (96) expr ::= expr PLUS expr */
2073 101, /* (97) expr ::= expr MINUS expr */
2074 101, /* (98) expr ::= expr STAR expr */
2075 101, /* (99) expr ::= expr SLASH expr */
2076 101, /* (100) expr ::= MINUS expr */
2077 101, /* (101) expr ::= PLUS expr */
2078 101, /* (102) expr ::= LP expr RP */
2079 101, /* (103) expr ::= LP FILL|COLOR|THICKNESS RP */
2080 101, /* (104) expr ::= NUMBER */
2081 101, /* (105) expr ::= ID */
2082 101, /* (106) expr ::= FUNC1 LP expr RP */
2083 101, /* (107) expr ::= FUNC2 LP expr COMMA expr RP */
2084 101, /* (108) expr ::= DIST LP position COMMA position RP */
2085 101, /* (109) expr ::= place2 DOT_XY X */
2086 101, /* (110) expr ::= place2 DOT_XY Y */
2087 101, /* (111) expr ::= object DOT_L numproperty */
2088 101, /* (112) expr ::= object DOT_L dashproperty */
2089 101, /* (113) expr ::= object DOT_L colorproperty */
2090 115, /* (114) lvalue ::= ID */
2091 115, /* (115) lvalue ::= FILL */
2092 115, /* (116) lvalue ::= COLOR */
2093 115, /* (117) lvalue ::= THICKNESS */
2094 114, /* (118) rvalue ::= expr */
2095 120, /* (119) print ::= PRINT */
2096 121, /* (120) prlist ::= pritem */
2097 121, /* (121) prlist ::= prlist prsep pritem */
2098 104, /* (122) direction ::= UP */
2099 104, /* (123) direction ::= DOWN */
2100 104, /* (124) direction ::= LEFT */
2101 104, /* (125) direction ::= RIGHT */
2102 118, /* (126) optrelexpr ::= relexpr */
2103 124, /* (127) attribute_list ::= alist */
2104 126, /* (128) alist ::= */
2105 126, /* (129) alist ::= alist attribute */
2106 127, /* (130) attribute ::= boolproperty */
2107 127, /* (131) attribute ::= WITH withclause */
2108 128, /* (132) go ::= GO */
2109 128, /* (133) go ::= */
2110 116, /* (134) even ::= UNTIL EVEN WITH */
2111 116, /* (135) even ::= EVEN WITH */
2112 105, /* (136) dashproperty ::= DOTTED */
2113 105, /* (137) dashproperty ::= DASHED */
2114 106, /* (138) colorproperty ::= FILL */
2115 106, /* (139) colorproperty ::= COLOR */
2116 108, /* (140) position ::= place */
2117 131, /* (141) between ::= WAY BETWEEN */
2118 131, /* (142) between ::= BETWEEN */
2119 131, /* (143) between ::= OF THE WAY BETWEEN */
2120 109, /* (144) place ::= place2 */
2121 103, /* (145) edge ::= CENTER */
2122 103, /* (146) edge ::= EDGEPT */
2123 103, /* (147) edge ::= TOP */
2124 103, /* (148) edge ::= BOTTOM */
2125 103, /* (149) edge ::= START */
2126 103, /* (150) edge ::= END */
2127 103, /* (151) edge ::= RIGHT */
2128 103, /* (152) edge ::= LEFT */
2129 110, /* (153) object ::= objectname */
 
2130 };
2131
2132 /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
2133 ** of symbols on the right-hand side of that rule. */
2134 static const signed char yyRuleInfoNRhs[] = {
@@ -2191,103 +2205,104 @@
2191 -1, /* (56) boolproperty ::= RARROW */
2192 -1, /* (57) boolproperty ::= LRARROW */
2193 -1, /* (58) boolproperty ::= INVIS */
2194 -1, /* (59) boolproperty ::= THICK */
2195 -1, /* (60) boolproperty ::= THIN */
2196 0, /* (61) textposition ::= */
2197 -2, /* (62) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2198 -3, /* (63) position ::= expr COMMA expr */
2199 -5, /* (64) position ::= place PLUS expr COMMA expr */
2200 -5, /* (65) position ::= place MINUS expr COMMA expr */
2201 -7, /* (66) position ::= place PLUS LP expr COMMA expr RP */
2202 -7, /* (67) position ::= place MINUS LP expr COMMA expr RP */
2203 -5, /* (68) position ::= LP position COMMA position RP */
2204 -3, /* (69) position ::= LP position RP */
2205 -5, /* (70) position ::= expr between position AND position */
2206 -6, /* (71) position ::= expr LT position COMMA position GT */
2207 -3, /* (72) position ::= expr ABOVE position */
2208 -3, /* (73) position ::= expr BELOW position */
2209 -4, /* (74) position ::= expr LEFT OF position */
2210 -4, /* (75) position ::= expr RIGHT OF position */
2211 -6, /* (76) position ::= expr ON HEADING EDGEPT OF position */
2212 -5, /* (77) position ::= expr HEADING EDGEPT OF position */
2213 -4, /* (78) position ::= expr EDGEPT OF position */
2214 -6, /* (79) position ::= expr ON HEADING expr FROM position */
2215 -5, /* (80) position ::= expr HEADING expr FROM position */
2216 -3, /* (81) place ::= edge OF object */
2217 -1, /* (82) place2 ::= object */
2218 -3, /* (83) place2 ::= object DOT_E edge */
2219 -4, /* (84) place2 ::= NTH VERTEX OF object */
2220 -1, /* (85) object ::= nth */
2221 -3, /* (86) object ::= nth OF|IN object */
2222 -1, /* (87) objectname ::= PLACENAME */
2223 -3, /* (88) objectname ::= objectname DOT_U PLACENAME */
2224 -2, /* (89) nth ::= NTH CLASSNAME */
2225 -3, /* (90) nth ::= NTH LAST CLASSNAME */
2226 -2, /* (91) nth ::= LAST CLASSNAME */
2227 -1, /* (92) nth ::= LAST */
2228 -3, /* (93) nth ::= NTH LB RB */
2229 -4, /* (94) nth ::= NTH LAST LB RB */
2230 -3, /* (95) nth ::= LAST LB RB */
2231 -3, /* (96) expr ::= expr PLUS expr */
2232 -3, /* (97) expr ::= expr MINUS expr */
2233 -3, /* (98) expr ::= expr STAR expr */
2234 -3, /* (99) expr ::= expr SLASH expr */
2235 -2, /* (100) expr ::= MINUS expr */
2236 -2, /* (101) expr ::= PLUS expr */
2237 -3, /* (102) expr ::= LP expr RP */
2238 -3, /* (103) expr ::= LP FILL|COLOR|THICKNESS RP */
2239 -1, /* (104) expr ::= NUMBER */
2240 -1, /* (105) expr ::= ID */
2241 -4, /* (106) expr ::= FUNC1 LP expr RP */
2242 -6, /* (107) expr ::= FUNC2 LP expr COMMA expr RP */
2243 -6, /* (108) expr ::= DIST LP position COMMA position RP */
2244 -3, /* (109) expr ::= place2 DOT_XY X */
2245 -3, /* (110) expr ::= place2 DOT_XY Y */
2246 -3, /* (111) expr ::= object DOT_L numproperty */
2247 -3, /* (112) expr ::= object DOT_L dashproperty */
2248 -3, /* (113) expr ::= object DOT_L colorproperty */
2249 -1, /* (114) lvalue ::= ID */
2250 -1, /* (115) lvalue ::= FILL */
2251 -1, /* (116) lvalue ::= COLOR */
2252 -1, /* (117) lvalue ::= THICKNESS */
2253 -1, /* (118) rvalue ::= expr */
2254 -1, /* (119) print ::= PRINT */
2255 -1, /* (120) prlist ::= pritem */
2256 -3, /* (121) prlist ::= prlist prsep pritem */
2257 -1, /* (122) direction ::= UP */
2258 -1, /* (123) direction ::= DOWN */
2259 -1, /* (124) direction ::= LEFT */
2260 -1, /* (125) direction ::= RIGHT */
2261 -1, /* (126) optrelexpr ::= relexpr */
2262 -1, /* (127) attribute_list ::= alist */
2263 0, /* (128) alist ::= */
2264 -2, /* (129) alist ::= alist attribute */
2265 -1, /* (130) attribute ::= boolproperty */
2266 -2, /* (131) attribute ::= WITH withclause */
2267 -1, /* (132) go ::= GO */
2268 0, /* (133) go ::= */
2269 -3, /* (134) even ::= UNTIL EVEN WITH */
2270 -2, /* (135) even ::= EVEN WITH */
2271 -1, /* (136) dashproperty ::= DOTTED */
2272 -1, /* (137) dashproperty ::= DASHED */
2273 -1, /* (138) colorproperty ::= FILL */
2274 -1, /* (139) colorproperty ::= COLOR */
2275 -1, /* (140) position ::= place */
2276 -2, /* (141) between ::= WAY BETWEEN */
2277 -1, /* (142) between ::= BETWEEN */
2278 -4, /* (143) between ::= OF THE WAY BETWEEN */
2279 -1, /* (144) place ::= place2 */
2280 -1, /* (145) edge ::= CENTER */
2281 -1, /* (146) edge ::= EDGEPT */
2282 -1, /* (147) edge ::= TOP */
2283 -1, /* (148) edge ::= BOTTOM */
2284 -1, /* (149) edge ::= START */
2285 -1, /* (150) edge ::= END */
2286 -1, /* (151) edge ::= RIGHT */
2287 -1, /* (152) edge ::= LEFT */
2288 -1, /* (153) object ::= objectname */
 
2289 };
2290
2291 static void yy_accept(yyParser*); /* Forward Declaration */
2292
2293 /*
@@ -2376,650 +2391,656 @@
2376 */
2377 /********** Begin reduce actions **********************************************/
2378 YYMINORTYPE yylhsminor;
2379 case 0: /* document ::= statement_list */
2380 #line 521 "pikchr.y"
2381 {pik_render(p,yymsp[0].minor.yy191);}
2382 #line 2407 "pikchr.c"
2383 break;
2384 case 1: /* statement_list ::= statement */
2385 #line 524 "pikchr.y"
2386 { yylhsminor.yy191 = pik_elist_append(p,0,yymsp[0].minor.yy138); }
2387 #line 2412 "pikchr.c"
2388 yymsp[0].minor.yy191 = yylhsminor.yy191;
2389 break;
2390 case 2: /* statement_list ::= statement_list EOL statement */
2391 #line 526 "pikchr.y"
2392 { yylhsminor.yy191 = pik_elist_append(p,yymsp[-2].minor.yy191,yymsp[0].minor.yy138); }
2393 #line 2418 "pikchr.c"
2394 yymsp[-2].minor.yy191 = yylhsminor.yy191;
2395 break;
2396 case 3: /* statement ::= */
2397 #line 529 "pikchr.y"
2398 { yymsp[1].minor.yy138 = 0; }
2399 #line 2424 "pikchr.c"
2400 break;
2401 case 4: /* statement ::= direction */
2402 #line 530 "pikchr.y"
2403 { pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy138=0; }
2404 #line 2429 "pikchr.c"
2405 yymsp[0].minor.yy138 = yylhsminor.yy138;
2406 break;
2407 case 5: /* statement ::= lvalue ASSIGN rvalue */
2408 #line 531 "pikchr.y"
2409 {pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy121,&yymsp[-1].minor.yy0); yylhsminor.yy138=0;}
2410 #line 2435 "pikchr.c"
2411 yymsp[-2].minor.yy138 = yylhsminor.yy138;
2412 break;
2413 case 6: /* statement ::= PLACENAME COLON unnamed_statement */
2414 #line 533 "pikchr.y"
2415 { yylhsminor.yy138 = yymsp[0].minor.yy138; pik_elem_setname(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0); }
2416 #line 2441 "pikchr.c"
2417 yymsp[-2].minor.yy138 = yylhsminor.yy138;
2418 break;
2419 case 7: /* statement ::= PLACENAME COLON position */
2420 #line 535 "pikchr.y"
2421 { yylhsminor.yy138 = pik_elem_new(p,0,0,0);
2422 if(yylhsminor.yy138){ yylhsminor.yy138->ptAt = yymsp[0].minor.yy47; pik_elem_setname(p,yylhsminor.yy138,&yymsp[-2].minor.yy0); }}
2423 #line 2448 "pikchr.c"
2424 yymsp[-2].minor.yy138 = yylhsminor.yy138;
2425 break;
2426 case 8: /* statement ::= unnamed_statement */
2427 #line 537 "pikchr.y"
2428 {yylhsminor.yy138 = yymsp[0].minor.yy138;}
2429 #line 2454 "pikchr.c"
2430 yymsp[0].minor.yy138 = yylhsminor.yy138;
2431 break;
2432 case 9: /* statement ::= print prlist */
2433 #line 538 "pikchr.y"
2434 {pik_append(p,"<br>\n",5); yymsp[-1].minor.yy138=0;}
2435 #line 2460 "pikchr.c"
2436 break;
2437 case 10: /* statement ::= ASSERT LP expr EQ expr RP */
2438 #line 543 "pikchr.y"
2439 {yymsp[-5].minor.yy138=pik_assert(p,yymsp[-3].minor.yy121,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy121);}
2440 #line 2465 "pikchr.c"
2441 break;
2442 case 11: /* statement ::= ASSERT LP position EQ position RP */
2443 #line 545 "pikchr.y"
2444 {yymsp[-5].minor.yy138=pik_position_assert(p,&yymsp[-3].minor.yy47,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy47);}
2445 #line 2470 "pikchr.c"
2446 break;
2447 case 12: /* statement ::= DEFINE ID CODEBLOCK */
2448 #line 546 "pikchr.y"
2449 {yymsp[-2].minor.yy138=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
2450 #line 2475 "pikchr.c"
2451 break;
2452 case 13: /* rvalue ::= PLACENAME */
2453 #line 557 "pikchr.y"
2454 {yylhsminor.yy121 = pik_lookup_color(p,&yymsp[0].minor.yy0);}
2455 #line 2480 "pikchr.c"
2456 yymsp[0].minor.yy121 = yylhsminor.yy121;
2457 break;
2458 case 14: /* pritem ::= FILL */
2459 case 15: /* pritem ::= COLOR */ yytestcase(yyruleno==15);
2460 case 16: /* pritem ::= THICKNESS */ yytestcase(yyruleno==16);
2461 #line 562 "pikchr.y"
2462 {pik_append_num(p,"",pik_value(p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.n,0));}
2463 #line 2488 "pikchr.c"
2464 break;
2465 case 17: /* pritem ::= rvalue */
2466 #line 565 "pikchr.y"
2467 {pik_append_num(p,"",yymsp[0].minor.yy121);}
2468 #line 2493 "pikchr.c"
2469 break;
2470 case 18: /* pritem ::= STRING */
2471 #line 566 "pikchr.y"
2472 {pik_append_text(p,yymsp[0].minor.yy0.z+1,yymsp[0].minor.yy0.n-2,0);}
2473 #line 2498 "pikchr.c"
2474 break;
2475 case 19: /* prsep ::= COMMA */
2476 #line 567 "pikchr.y"
2477 {pik_append(p, " ", 1);}
2478 #line 2503 "pikchr.c"
2479 break;
2480 case 20: /* unnamed_statement ::= basetype attribute_list */
2481 #line 570 "pikchr.y"
2482 {yylhsminor.yy138 = yymsp[-1].minor.yy138; pik_after_adding_attributes(p,yylhsminor.yy138);}
2483 #line 2508 "pikchr.c"
2484 yymsp[-1].minor.yy138 = yylhsminor.yy138;
2485 break;
2486 case 21: /* basetype ::= CLASSNAME */
2487 #line 572 "pikchr.y"
2488 {yylhsminor.yy138 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); }
2489 #line 2514 "pikchr.c"
2490 yymsp[0].minor.yy138 = yylhsminor.yy138;
2491 break;
2492 case 22: /* basetype ::= STRING textposition */
2493 #line 574 "pikchr.y"
2494 {yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy46; yylhsminor.yy138 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); }
2495 #line 2520 "pikchr.c"
2496 yymsp[-1].minor.yy138 = yylhsminor.yy138;
2497 break;
2498 case 23: /* basetype ::= LB savelist statement_list RB */
2499 #line 576 "pikchr.y"
2500 { p->list = yymsp[-2].minor.yy191; yymsp[-3].minor.yy138 = pik_elem_new(p,0,0,yymsp[-1].minor.yy191); if(yymsp[-3].minor.yy138) yymsp[-3].minor.yy138->errTok = yymsp[0].minor.yy0; }
2501 #line 2526 "pikchr.c"
2502 break;
2503 case 24: /* savelist ::= */
2504 #line 581 "pikchr.y"
2505 {yymsp[1].minor.yy191 = p->list; p->list = 0;}
2506 #line 2531 "pikchr.c"
2507 break;
2508 case 25: /* relexpr ::= expr */
2509 #line 588 "pikchr.y"
2510 {yylhsminor.yy134.rAbs = yymsp[0].minor.yy121; yylhsminor.yy134.rRel = 0;}
2511 #line 2536 "pikchr.c"
2512 yymsp[0].minor.yy134 = yylhsminor.yy134;
2513 break;
2514 case 26: /* relexpr ::= expr PERCENT */
2515 #line 589 "pikchr.y"
2516 {yylhsminor.yy134.rAbs = 0; yylhsminor.yy134.rRel = yymsp[-1].minor.yy121/100;}
2517 #line 2542 "pikchr.c"
2518 yymsp[-1].minor.yy134 = yylhsminor.yy134;
2519 break;
2520 case 27: /* optrelexpr ::= */
2521 #line 591 "pikchr.y"
2522 {yymsp[1].minor.yy134.rAbs = 0; yymsp[1].minor.yy134.rRel = 1.0;}
2523 #line 2548 "pikchr.c"
2524 break;
2525 case 28: /* attribute_list ::= relexpr alist */
2526 #line 593 "pikchr.y"
2527 {pik_add_direction(p,0,&yymsp[-1].minor.yy134);}
2528 #line 2553 "pikchr.c"
2529 break;
2530 case 29: /* attribute ::= numproperty relexpr */
2531 #line 597 "pikchr.y"
2532 { pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy134); }
2533 #line 2558 "pikchr.c"
2534 break;
2535 case 30: /* attribute ::= dashproperty expr */
2536 #line 598 "pikchr.y"
2537 { pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy121); }
2538 #line 2563 "pikchr.c"
2539 break;
2540 case 31: /* attribute ::= dashproperty */
2541 #line 599 "pikchr.y"
2542 { pik_set_dashed(p,&yymsp[0].minor.yy0,0); }
2543 #line 2568 "pikchr.c"
2544 break;
2545 case 32: /* attribute ::= colorproperty rvalue */
2546 #line 600 "pikchr.y"
2547 { pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy121); }
2548 #line 2573 "pikchr.c"
2549 break;
2550 case 33: /* attribute ::= go direction optrelexpr */
2551 #line 601 "pikchr.y"
2552 { pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy134);}
2553 #line 2578 "pikchr.c"
2554 break;
2555 case 34: /* attribute ::= go direction even position */
2556 #line 602 "pikchr.y"
2557 {pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy47);}
2558 #line 2583 "pikchr.c"
2559 break;
2560 case 35: /* attribute ::= CLOSE */
2561 #line 603 "pikchr.y"
2562 { pik_close_path(p,&yymsp[0].minor.yy0); }
2563 #line 2588 "pikchr.c"
2564 break;
2565 case 36: /* attribute ::= CHOP */
2566 #line 604 "pikchr.y"
2567 { p->cur->bChop = 1; }
2568 #line 2593 "pikchr.c"
2569 break;
2570 case 37: /* attribute ::= FROM position */
2571 #line 605 "pikchr.y"
2572 { pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy47); }
2573 #line 2598 "pikchr.c"
2574 break;
2575 case 38: /* attribute ::= TO position */
2576 #line 606 "pikchr.y"
2577 { pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy47); }
2578 #line 2603 "pikchr.c"
2579 break;
2580 case 39: /* attribute ::= THEN */
2581 #line 607 "pikchr.y"
2582 { pik_then(p, &yymsp[0].minor.yy0, p->cur); }
2583 #line 2608 "pikchr.c"
2584 break;
2585 case 40: /* attribute ::= THEN optrelexpr HEADING expr */
2586 case 42: /* attribute ::= GO optrelexpr HEADING expr */ yytestcase(yyruleno==42);
2587 #line 609 "pikchr.y"
2588 {pik_move_hdg(p,&yymsp[-2].minor.yy134,&yymsp[-1].minor.yy0,yymsp[0].minor.yy121,0,&yymsp[-3].minor.yy0);}
2589 #line 2614 "pikchr.c"
2590 break;
2591 case 41: /* attribute ::= THEN optrelexpr EDGEPT */
2592 case 43: /* attribute ::= GO optrelexpr EDGEPT */ yytestcase(yyruleno==43);
2593 #line 610 "pikchr.y"
2594 {pik_move_hdg(p,&yymsp[-1].minor.yy134,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);}
2595 #line 2620 "pikchr.c"
2596 break;
2597 case 44: /* attribute ::= AT position */
2598 #line 615 "pikchr.y"
2599 { pik_set_at(p,0,&yymsp[0].minor.yy47,&yymsp[-1].minor.yy0); }
2600 #line 2625 "pikchr.c"
2601 break;
2602 case 45: /* attribute ::= SAME */
2603 #line 617 "pikchr.y"
2604 {pik_same(p,0,&yymsp[0].minor.yy0);}
2605 #line 2630 "pikchr.c"
2606 break;
2607 case 46: /* attribute ::= SAME AS object */
2608 #line 618 "pikchr.y"
2609 {pik_same(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0);}
2610 #line 2635 "pikchr.c"
2611 break;
2612 case 47: /* attribute ::= STRING textposition */
2613 #line 619 "pikchr.y"
2614 {pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy46);}
2615 #line 2640 "pikchr.c"
2616 break;
2617 case 48: /* attribute ::= FIT */
2618 #line 620 "pikchr.y"
2619 {pik_size_to_fit(p,&yymsp[0].minor.yy0,3); }
2620 #line 2645 "pikchr.c"
2621 break;
2622 case 49: /* attribute ::= BEHIND object */
2623 #line 621 "pikchr.y"
2624 {pik_behind(p,yymsp[0].minor.yy138);}
2625 #line 2650 "pikchr.c"
2626 break;
2627 case 50: /* withclause ::= DOT_E edge AT position */
2628 case 51: /* withclause ::= edge AT position */ yytestcase(yyruleno==51);
2629 #line 629 "pikchr.y"
2630 { pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy47,&yymsp[-1].minor.yy0); }
2631 #line 2656 "pikchr.c"
2632 break;
2633 case 52: /* numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
2634 #line 633 "pikchr.y"
2635 {yylhsminor.yy0 = yymsp[0].minor.yy0;}
2636 #line 2661 "pikchr.c"
2637 yymsp[0].minor.yy0 = yylhsminor.yy0;
2638 break;
2639 case 53: /* boolproperty ::= CW */
2640 #line 644 "pikchr.y"
2641 {p->cur->cw = 1;}
2642 #line 2667 "pikchr.c"
2643 break;
2644 case 54: /* boolproperty ::= CCW */
2645 #line 645 "pikchr.y"
2646 {p->cur->cw = 0;}
2647 #line 2672 "pikchr.c"
2648 break;
2649 case 55: /* boolproperty ::= LARROW */
2650 #line 646 "pikchr.y"
2651 {p->cur->larrow=1; p->cur->rarrow=0; }
2652 #line 2677 "pikchr.c"
2653 break;
2654 case 56: /* boolproperty ::= RARROW */
2655 #line 647 "pikchr.y"
2656 {p->cur->larrow=0; p->cur->rarrow=1; }
2657 #line 2682 "pikchr.c"
2658 break;
2659 case 57: /* boolproperty ::= LRARROW */
2660 #line 648 "pikchr.y"
2661 {p->cur->larrow=1; p->cur->rarrow=1; }
2662 #line 2687 "pikchr.c"
2663 break;
2664 case 58: /* boolproperty ::= INVIS */
2665 #line 649 "pikchr.y"
2666 {p->cur->sw = 0.0;}
2667 #line 2692 "pikchr.c"
2668 break;
2669 case 59: /* boolproperty ::= THICK */
2670 #line 650 "pikchr.y"
2671 {p->cur->sw *= 1.5;}
2672 #line 2697 "pikchr.c"
2673 break;
2674 case 60: /* boolproperty ::= THIN */
2675 #line 651 "pikchr.y"
2676 {p->cur->sw *= 0.67;}
2677 #line 2702 "pikchr.c"
2678 break;
2679 case 61: /* textposition ::= */
2680 #line 653 "pikchr.y"
2681 {yymsp[1].minor.yy46 = 0;}
2682 #line 2707 "pikchr.c"
2683 break;
2684 case 62: /* textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2685 #line 656 "pikchr.y"
2686 {yylhsminor.yy46 = pik_text_position(yymsp[-1].minor.yy46,&yymsp[0].minor.yy0);}
2687 #line 2712 "pikchr.c"
2688 yymsp[-1].minor.yy46 = yylhsminor.yy46;
2689 break;
2690 case 63: /* position ::= expr COMMA expr */
2691 #line 659 "pikchr.y"
2692 {yylhsminor.yy47.x=yymsp[-2].minor.yy121; yylhsminor.yy47.y=yymsp[0].minor.yy121;}
2693 #line 2718 "pikchr.c"
2694 yymsp[-2].minor.yy47 = yylhsminor.yy47;
2695 break;
2696 case 64: /* position ::= place PLUS expr COMMA expr */
2697 #line 661 "pikchr.y"
2698 {yylhsminor.yy47.x=yymsp[-4].minor.yy47.x+yymsp[-2].minor.yy121; yylhsminor.yy47.y=yymsp[-4].minor.yy47.y+yymsp[0].minor.yy121;}
2699 #line 2724 "pikchr.c"
2700 yymsp[-4].minor.yy47 = yylhsminor.yy47;
2701 break;
2702 case 65: /* position ::= place MINUS expr COMMA expr */
2703 #line 662 "pikchr.y"
2704 {yylhsminor.yy47.x=yymsp[-4].minor.yy47.x-yymsp[-2].minor.yy121; yylhsminor.yy47.y=yymsp[-4].minor.yy47.y-yymsp[0].minor.yy121;}
2705 #line 2730 "pikchr.c"
2706 yymsp[-4].minor.yy47 = yylhsminor.yy47;
2707 break;
2708 case 66: /* position ::= place PLUS LP expr COMMA expr RP */
2709 #line 664 "pikchr.y"
2710 {yylhsminor.yy47.x=yymsp[-6].minor.yy47.x+yymsp[-3].minor.yy121; yylhsminor.yy47.y=yymsp[-6].minor.yy47.y+yymsp[-1].minor.yy121;}
2711 #line 2736 "pikchr.c"
2712 yymsp[-6].minor.yy47 = yylhsminor.yy47;
2713 break;
2714 case 67: /* position ::= place MINUS LP expr COMMA expr RP */
2715 #line 666 "pikchr.y"
2716 {yylhsminor.yy47.x=yymsp[-6].minor.yy47.x-yymsp[-3].minor.yy121; yylhsminor.yy47.y=yymsp[-6].minor.yy47.y-yymsp[-1].minor.yy121;}
2717 #line 2742 "pikchr.c"
2718 yymsp[-6].minor.yy47 = yylhsminor.yy47;
2719 break;
2720 case 68: /* position ::= LP position COMMA position RP */
2721 #line 667 "pikchr.y"
2722 {yymsp[-4].minor.yy47.x=yymsp[-3].minor.yy47.x; yymsp[-4].minor.yy47.y=yymsp[-1].minor.yy47.y;}
2723 #line 2748 "pikchr.c"
2724 break;
2725 case 69: /* position ::= LP position RP */
2726 #line 668 "pikchr.y"
2727 {yymsp[-2].minor.yy47=yymsp[-1].minor.yy47;}
2728 #line 2753 "pikchr.c"
 
 
 
 
 
 
2729 break;
2730 case 70: /* position ::= expr between position AND position */
2731 #line 670 "pikchr.y"
2732 {yylhsminor.yy47 = pik_position_between(yymsp[-4].minor.yy121,yymsp[-2].minor.yy47,yymsp[0].minor.yy47);}
2733 #line 2758 "pikchr.c"
2734 yymsp[-4].minor.yy47 = yylhsminor.yy47;
2735 break;
2736 case 71: /* position ::= expr LT position COMMA position GT */
2737 #line 672 "pikchr.y"
2738 {yylhsminor.yy47 = pik_position_between(yymsp[-5].minor.yy121,yymsp[-3].minor.yy47,yymsp[-1].minor.yy47);}
2739 #line 2764 "pikchr.c"
2740 yymsp[-5].minor.yy47 = yylhsminor.yy47;
2741 break;
2742 case 72: /* position ::= expr ABOVE position */
2743 #line 673 "pikchr.y"
2744 {yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.y += yymsp[-2].minor.yy121;}
2745 #line 2770 "pikchr.c"
2746 yymsp[-2].minor.yy47 = yylhsminor.yy47;
2747 break;
2748 case 73: /* position ::= expr BELOW position */
2749 #line 674 "pikchr.y"
2750 {yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.y -= yymsp[-2].minor.yy121;}
2751 #line 2776 "pikchr.c"
2752 yymsp[-2].minor.yy47 = yylhsminor.yy47;
2753 break;
2754 case 74: /* position ::= expr LEFT OF position */
2755 #line 675 "pikchr.y"
2756 {yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.x -= yymsp[-3].minor.yy121;}
2757 #line 2782 "pikchr.c"
2758 yymsp[-3].minor.yy47 = yylhsminor.yy47;
2759 break;
2760 case 75: /* position ::= expr RIGHT OF position */
2761 #line 676 "pikchr.y"
2762 {yylhsminor.yy47=yymsp[0].minor.yy47; yylhsminor.yy47.x += yymsp[-3].minor.yy121;}
2763 #line 2788 "pikchr.c"
2764 yymsp[-3].minor.yy47 = yylhsminor.yy47;
 
 
 
 
 
 
2765 break;
2766 case 76: /* position ::= expr ON HEADING EDGEPT OF position */
2767 #line 678 "pikchr.y"
2768 {yylhsminor.yy47 = pik_position_at_hdg(yymsp[-5].minor.yy121,&yymsp[-2].minor.yy0,yymsp[0].minor.yy47);}
2769 #line 2794 "pikchr.c"
2770 yymsp[-5].minor.yy47 = yylhsminor.yy47;
2771 break;
2772 case 77: /* position ::= expr HEADING EDGEPT OF position */
2773 #line 680 "pikchr.y"
2774 {yylhsminor.yy47 = pik_position_at_hdg(yymsp[-4].minor.yy121,&yymsp[-2].minor.yy0,yymsp[0].minor.yy47);}
2775 #line 2800 "pikchr.c"
2776 yymsp[-4].minor.yy47 = yylhsminor.yy47;
2777 break;
2778 case 78: /* position ::= expr EDGEPT OF position */
2779 #line 682 "pikchr.y"
2780 {yylhsminor.yy47 = pik_position_at_hdg(yymsp[-3].minor.yy121,&yymsp[-2].minor.yy0,yymsp[0].minor.yy47);}
2781 #line 2806 "pikchr.c"
2782 yymsp[-3].minor.yy47 = yylhsminor.yy47;
2783 break;
2784 case 79: /* position ::= expr ON HEADING expr FROM position */
2785 #line 684 "pikchr.y"
2786 {yylhsminor.yy47 = pik_position_at_angle(yymsp[-5].minor.yy121,yymsp[-2].minor.yy121,yymsp[0].minor.yy47);}
2787 #line 2812 "pikchr.c"
2788 yymsp[-5].minor.yy47 = yylhsminor.yy47;
2789 break;
2790 case 80: /* position ::= expr HEADING expr FROM position */
2791 #line 686 "pikchr.y"
2792 {yylhsminor.yy47 = pik_position_at_angle(yymsp[-4].minor.yy121,yymsp[-2].minor.yy121,yymsp[0].minor.yy47);}
2793 #line 2818 "pikchr.c"
2794 yymsp[-4].minor.yy47 = yylhsminor.yy47;
2795 break;
2796 case 81: /* place ::= edge OF object */
2797 #line 698 "pikchr.y"
2798 {yylhsminor.yy47 = pik_place_of_elem(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0);}
2799 #line 2824 "pikchr.c"
2800 yymsp[-2].minor.yy47 = yylhsminor.yy47;
2801 break;
2802 case 82: /* place2 ::= object */
2803 #line 699 "pikchr.y"
2804 {yylhsminor.yy47 = pik_place_of_elem(p,yymsp[0].minor.yy138,0);}
2805 #line 2830 "pikchr.c"
2806 yymsp[0].minor.yy47 = yylhsminor.yy47;
2807 break;
2808 case 83: /* place2 ::= object DOT_E edge */
2809 #line 700 "pikchr.y"
2810 {yylhsminor.yy47 = pik_place_of_elem(p,yymsp[-2].minor.yy138,&yymsp[0].minor.yy0);}
2811 #line 2836 "pikchr.c"
2812 yymsp[-2].minor.yy47 = yylhsminor.yy47;
2813 break;
2814 case 84: /* place2 ::= NTH VERTEX OF object */
2815 #line 701 "pikchr.y"
2816 {yylhsminor.yy47 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy138);}
2817 #line 2842 "pikchr.c"
2818 yymsp[-3].minor.yy47 = yylhsminor.yy47;
2819 break;
2820 case 85: /* object ::= nth */
2821 #line 713 "pikchr.y"
2822 {yylhsminor.yy138 = pik_find_nth(p,0,&yymsp[0].minor.yy0);}
2823 #line 2848 "pikchr.c"
2824 yymsp[0].minor.yy138 = yylhsminor.yy138;
2825 break;
2826 case 86: /* object ::= nth OF|IN object */
2827 #line 714 "pikchr.y"
2828 {yylhsminor.yy138 = pik_find_nth(p,yymsp[0].minor.yy138,&yymsp[-2].minor.yy0);}
2829 #line 2854 "pikchr.c"
2830 yymsp[-2].minor.yy138 = yylhsminor.yy138;
2831 break;
2832 case 87: /* objectname ::= PLACENAME */
 
 
 
 
 
 
2833 #line 716 "pikchr.y"
2834 {yylhsminor.yy138 = pik_find_byname(p,0,&yymsp[0].minor.yy0);}
2835 #line 2860 "pikchr.c"
2836 yymsp[0].minor.yy138 = yylhsminor.yy138;
2837 break;
2838 case 88: /* objectname ::= objectname DOT_U PLACENAME */
2839 #line 718 "pikchr.y"
2840 {yylhsminor.yy138 = pik_find_byname(p,yymsp[-2].minor.yy138,&yymsp[0].minor.yy0);}
2841 #line 2866 "pikchr.c"
2842 yymsp[-2].minor.yy138 = yylhsminor.yy138;
2843 break;
2844 case 89: /* nth ::= NTH CLASSNAME */
2845 #line 720 "pikchr.y"
 
 
 
 
 
 
2846 {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-1].minor.yy0); }
2847 #line 2872 "pikchr.c"
2848 yymsp[-1].minor.yy0 = yylhsminor.yy0;
2849 break;
2850 case 90: /* nth ::= NTH LAST CLASSNAME */
2851 #line 721 "pikchr.y"
2852 {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-2].minor.yy0); }
2853 #line 2878 "pikchr.c"
2854 yymsp[-2].minor.yy0 = yylhsminor.yy0;
2855 break;
2856 case 91: /* nth ::= LAST CLASSNAME */
2857 #line 722 "pikchr.y"
2858 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.eCode = -1;}
2859 #line 2884 "pikchr.c"
2860 break;
2861 case 92: /* nth ::= LAST */
2862 #line 723 "pikchr.y"
2863 {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -1;}
2864 #line 2889 "pikchr.c"
2865 yymsp[0].minor.yy0 = yylhsminor.yy0;
2866 break;
2867 case 93: /* nth ::= NTH LB RB */
2868 #line 724 "pikchr.y"
2869 {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-2].minor.yy0);}
2870 #line 2895 "pikchr.c"
2871 yymsp[-2].minor.yy0 = yylhsminor.yy0;
2872 break;
2873 case 94: /* nth ::= NTH LAST LB RB */
2874 #line 725 "pikchr.y"
2875 {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-3].minor.yy0);}
2876 #line 2901 "pikchr.c"
2877 yymsp[-3].minor.yy0 = yylhsminor.yy0;
2878 break;
2879 case 95: /* nth ::= LAST LB RB */
2880 #line 726 "pikchr.y"
2881 {yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; }
2882 #line 2907 "pikchr.c"
2883 break;
2884 case 96: /* expr ::= expr PLUS expr */
2885 #line 728 "pikchr.y"
2886 {yylhsminor.yy121=yymsp[-2].minor.yy121+yymsp[0].minor.yy121;}
2887 #line 2912 "pikchr.c"
2888 yymsp[-2].minor.yy121 = yylhsminor.yy121;
2889 break;
2890 case 97: /* expr ::= expr MINUS expr */
2891 #line 729 "pikchr.y"
2892 {yylhsminor.yy121=yymsp[-2].minor.yy121-yymsp[0].minor.yy121;}
2893 #line 2918 "pikchr.c"
2894 yymsp[-2].minor.yy121 = yylhsminor.yy121;
2895 break;
2896 case 98: /* expr ::= expr STAR expr */
2897 #line 730 "pikchr.y"
2898 {yylhsminor.yy121=yymsp[-2].minor.yy121*yymsp[0].minor.yy121;}
2899 #line 2924 "pikchr.c"
2900 yymsp[-2].minor.yy121 = yylhsminor.yy121;
2901 break;
2902 case 99: /* expr ::= expr SLASH expr */
2903 #line 731 "pikchr.y"
2904 {
2905 if( yymsp[0].minor.yy121==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy121 = 0.0; }
2906 else{ yylhsminor.yy121 = yymsp[-2].minor.yy121/yymsp[0].minor.yy121; }
2907 }
2908 #line 2933 "pikchr.c"
2909 yymsp[-2].minor.yy121 = yylhsminor.yy121;
2910 break;
2911 case 100: /* expr ::= MINUS expr */
2912 #line 735 "pikchr.y"
2913 {yymsp[-1].minor.yy121=-yymsp[0].minor.yy121;}
2914 #line 2939 "pikchr.c"
2915 break;
2916 case 101: /* expr ::= PLUS expr */
2917 #line 736 "pikchr.y"
2918 {yymsp[-1].minor.yy121=yymsp[0].minor.yy121;}
2919 #line 2944 "pikchr.c"
2920 break;
2921 case 102: /* expr ::= LP expr RP */
2922 #line 737 "pikchr.y"
2923 {yymsp[-2].minor.yy121=yymsp[-1].minor.yy121;}
2924 #line 2949 "pikchr.c"
2925 break;
2926 case 103: /* expr ::= LP FILL|COLOR|THICKNESS RP */
2927 #line 738 "pikchr.y"
2928 {yymsp[-2].minor.yy121=pik_get_var(p,&yymsp[-1].minor.yy0);}
2929 #line 2954 "pikchr.c"
2930 break;
2931 case 104: /* expr ::= NUMBER */
2932 #line 739 "pikchr.y"
2933 {yylhsminor.yy121=pik_atof(&yymsp[0].minor.yy0);}
2934 #line 2959 "pikchr.c"
2935 yymsp[0].minor.yy121 = yylhsminor.yy121;
2936 break;
2937 case 105: /* expr ::= ID */
2938 #line 740 "pikchr.y"
2939 {yylhsminor.yy121=pik_get_var(p,&yymsp[0].minor.yy0);}
2940 #line 2965 "pikchr.c"
2941 yymsp[0].minor.yy121 = yylhsminor.yy121;
2942 break;
2943 case 106: /* expr ::= FUNC1 LP expr RP */
2944 #line 741 "pikchr.y"
2945 {yylhsminor.yy121 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy121,0.0);}
2946 #line 2971 "pikchr.c"
2947 yymsp[-3].minor.yy121 = yylhsminor.yy121;
2948 break;
2949 case 107: /* expr ::= FUNC2 LP expr COMMA expr RP */
2950 #line 742 "pikchr.y"
2951 {yylhsminor.yy121 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy121,yymsp[-1].minor.yy121);}
2952 #line 2977 "pikchr.c"
2953 yymsp[-5].minor.yy121 = yylhsminor.yy121;
2954 break;
2955 case 108: /* expr ::= DIST LP position COMMA position RP */
2956 #line 743 "pikchr.y"
2957 {yymsp[-5].minor.yy121 = pik_dist(&yymsp[-3].minor.yy47,&yymsp[-1].minor.yy47);}
2958 #line 2983 "pikchr.c"
 
2959 break;
2960 case 109: /* expr ::= place2 DOT_XY X */
2961 #line 744 "pikchr.y"
2962 {yylhsminor.yy121 = yymsp[-2].minor.yy47.x;}
2963 #line 2988 "pikchr.c"
2964 yymsp[-2].minor.yy121 = yylhsminor.yy121;
2965 break;
2966 case 110: /* expr ::= place2 DOT_XY Y */
2967 #line 745 "pikchr.y"
2968 {yylhsminor.yy121 = yymsp[-2].minor.yy47.y;}
2969 #line 2994 "pikchr.c"
2970 yymsp[-2].minor.yy121 = yylhsminor.yy121;
2971 break;
2972 case 111: /* expr ::= object DOT_L numproperty */
2973 case 112: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==112);
2974 case 113: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==113);
2975 #line 746 "pikchr.y"
2976 {yylhsminor.yy121=pik_property_of(yymsp[-2].minor.yy138,&yymsp[0].minor.yy0);}
2977 #line 3002 "pikchr.c"
2978 yymsp[-2].minor.yy121 = yylhsminor.yy121;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2979 break;
2980 default:
2981 /* (114) lvalue ::= ID */ yytestcase(yyruleno==114);
2982 /* (115) lvalue ::= FILL */ yytestcase(yyruleno==115);
2983 /* (116) lvalue ::= COLOR */ yytestcase(yyruleno==116);
2984 /* (117) lvalue ::= THICKNESS */ yytestcase(yyruleno==117);
2985 /* (118) rvalue ::= expr */ yytestcase(yyruleno==118);
2986 /* (119) print ::= PRINT */ yytestcase(yyruleno==119);
2987 /* (120) prlist ::= pritem (OPTIMIZED OUT) */ assert(yyruleno!=120);
2988 /* (121) prlist ::= prlist prsep pritem */ yytestcase(yyruleno==121);
2989 /* (122) direction ::= UP */ yytestcase(yyruleno==122);
2990 /* (123) direction ::= DOWN */ yytestcase(yyruleno==123);
2991 /* (124) direction ::= LEFT */ yytestcase(yyruleno==124);
2992 /* (125) direction ::= RIGHT */ yytestcase(yyruleno==125);
2993 /* (126) optrelexpr ::= relexpr (OPTIMIZED OUT) */ assert(yyruleno!=126);
2994 /* (127) attribute_list ::= alist */ yytestcase(yyruleno==127);
2995 /* (128) alist ::= */ yytestcase(yyruleno==128);
2996 /* (129) alist ::= alist attribute */ yytestcase(yyruleno==129);
2997 /* (130) attribute ::= boolproperty (OPTIMIZED OUT) */ assert(yyruleno!=130);
2998 /* (131) attribute ::= WITH withclause */ yytestcase(yyruleno==131);
2999 /* (132) go ::= GO */ yytestcase(yyruleno==132);
3000 /* (133) go ::= */ yytestcase(yyruleno==133);
3001 /* (134) even ::= UNTIL EVEN WITH */ yytestcase(yyruleno==134);
3002 /* (135) even ::= EVEN WITH */ yytestcase(yyruleno==135);
3003 /* (136) dashproperty ::= DOTTED */ yytestcase(yyruleno==136);
3004 /* (137) dashproperty ::= DASHED */ yytestcase(yyruleno==137);
3005 /* (138) colorproperty ::= FILL */ yytestcase(yyruleno==138);
3006 /* (139) colorproperty ::= COLOR */ yytestcase(yyruleno==139);
3007 /* (140) position ::= place */ yytestcase(yyruleno==140);
3008 /* (141) between ::= WAY BETWEEN */ yytestcase(yyruleno==141);
3009 /* (142) between ::= BETWEEN */ yytestcase(yyruleno==142);
3010 /* (143) between ::= OF THE WAY BETWEEN */ yytestcase(yyruleno==143);
3011 /* (144) place ::= place2 */ yytestcase(yyruleno==144);
3012 /* (145) edge ::= CENTER */ yytestcase(yyruleno==145);
3013 /* (146) edge ::= EDGEPT */ yytestcase(yyruleno==146);
3014 /* (147) edge ::= TOP */ yytestcase(yyruleno==147);
3015 /* (148) edge ::= BOTTOM */ yytestcase(yyruleno==148);
3016 /* (149) edge ::= START */ yytestcase(yyruleno==149);
3017 /* (150) edge ::= END */ yytestcase(yyruleno==150);
3018 /* (151) edge ::= RIGHT */ yytestcase(yyruleno==151);
3019 /* (152) edge ::= LEFT */ yytestcase(yyruleno==152);
3020 /* (153) object ::= objectname */ yytestcase(yyruleno==153);
3021 break;
3022 /********** End reduce actions ************************************************/
3023 };
3024 assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) );
3025 yygoto = yyRuleInfoLhs[yyruleno];
@@ -3083,11 +3104,11 @@
3083 pik_error(p, &TOKEN, "syntax error");
3084 }else{
3085 pik_error(p, 0, "syntax error");
3086 }
3087 UNUSED_PARAMETER(yymajor);
3088 #line 3113 "pikchr.c"
3089 /************ End %syntax_error code ******************************************/
3090 pik_parserARG_STORE /* Suppress warning about unused %extra_argument variable */
3091 pik_parserCTX_STORE
3092 }
3093
@@ -3316,11 +3337,11 @@
3316 #else
3317 (void)iToken;
3318 return 0;
3319 #endif
3320 }
3321 #line 751 "pikchr.y"
3322
3323
3324
3325 /* Chart of the 140 official HTML color names with their
3326 ** corresponding RGB value.
@@ -6859,10 +6880,11 @@
6859 { "s", 1, T_EDGEPT, 0, CP_S },
6860 { "same", 4, T_SAME, 0, 0 },
6861 { "se", 2, T_EDGEPT, 0, CP_SE },
6862 { "sin", 3, T_FUNC1, FN_SIN, 0 },
6863 { "small", 5, T_SMALL, 0, 0 },
 
6864 { "south", 5, T_EDGEPT, 0, CP_S },
6865 { "sqrt", 4, T_FUNC1, FN_SQRT, 0 },
6866 { "start", 5, T_START, 0, CP_START },
6867 { "sw", 2, T_EDGEPT, 0, CP_SW },
6868 { "t", 1, T_TOP, 0, CP_N },
@@ -7600,6 +7622,6 @@
7600 }
7601 return 0;
7602 }
7603 #endif /* PIKCHR_SHELL */
7604
7605 #line 7630 "pikchr.c"
7606
--- src/pikchr.c
+++ src/pikchr.c
@@ -530,44 +530,45 @@
530 #define T_RARROW 58
531 #define T_LRARROW 59
532 #define T_INVIS 60
533 #define T_THICK 61
534 #define T_THIN 62
535 #define T_SOLID 63
536 #define T_CENTER 64
537 #define T_LJUST 65
538 #define T_RJUST 66
539 #define T_ABOVE 67
540 #define T_BELOW 68
541 #define T_ITALIC 69
542 #define T_BOLD 70
543 #define T_ALIGNED 71
544 #define T_BIG 72
545 #define T_SMALL 73
546 #define T_AND 74
547 #define T_LT 75
548 #define T_GT 76
549 #define T_ON 77
550 #define T_WAY 78
551 #define T_BETWEEN 79
552 #define T_THE 80
553 #define T_NTH 81
554 #define T_VERTEX 82
555 #define T_TOP 83
556 #define T_BOTTOM 84
557 #define T_START 85
558 #define T_END 86
559 #define T_IN 87
560 #define T_DOT_U 88
561 #define T_LAST 89
562 #define T_NUMBER 90
563 #define T_FUNC1 91
564 #define T_FUNC2 92
565 #define T_DIST 93
566 #define T_DOT_XY 94
567 #define T_X 95
568 #define T_Y 96
569 #define T_DOT_L 97
570 #endif
571 /**************** End token definitions ***************************************/
572
573 /* The next sections is a series of control #defines.
574 ** various aspects of the generated parser.
@@ -623,22 +624,22 @@
624 #ifndef INTERFACE
625 # define INTERFACE 1
626 #endif
627 /************* Begin control #defines *****************************************/
628 #define YYCODETYPE unsigned char
629 #define YYNOCODE 134
630 #define YYACTIONTYPE unsigned short int
631 #define pik_parserTOKENTYPE PToken
632 typedef union {
633 int yyinit;
634 pik_parserTOKENTYPE yy0;
635 PObj* yy38;
636 PPoint yy43;
637 PList* yy119;
638 int yy196;
639 PRel yy200;
640 PNum yy265;
641 } YYMINORTYPE;
642 #ifndef YYSTACKDEPTH
643 #define YYSTACKDEPTH 100
644 #endif
645 #define pik_parserARG_SDECL
@@ -651,21 +652,21 @@
652 #define pik_parserCTX_PARAM ,p
653 #define pik_parserCTX_FETCH Pik *p=yypParser->p;
654 #define pik_parserCTX_STORE yypParser->p=p;
655 #define YYFALLBACK 1
656 #define YYNSTATE 164
657 #define YYNRULE 155
658 #define YYNRULE_WITH_ACTION 115
659 #define YYNTOKEN 98
660 #define YY_MAX_SHIFT 163
661 #define YY_MIN_SHIFTREDUCE 286
662 #define YY_MAX_SHIFTREDUCE 440
663 #define YY_ERROR_ACTION 441
664 #define YY_ACCEPT_ACTION 442
665 #define YY_NO_ACTION 443
666 #define YY_MIN_REDUCE 444
667 #define YY_MAX_REDUCE 598
668 /************* End control #defines *******************************************/
669 #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
670
671 /* Define the yytestcase() macro to be a no-op if is not already defined
672 ** otherwise.
@@ -728,324 +729,333 @@
729 ** yy_reduce_ofst[] For each state, the offset into yy_action for
730 ** shifting non-terminals after a reduce.
731 ** yy_default[] Default action for each state.
732 **
733 *********** Begin parsing tables **********************************************/
734 #define YY_ACTTAB_COUNT (1263)
735 static const YYACTIONTYPE yy_action[] = {
736 /* 0 */ 572, 493, 161, 119, 25, 450, 29, 74, 129, 148,
737 /* 10 */ 572, 490, 161, 119, 451, 113, 120, 161, 119, 528,
738 /* 20 */ 425, 426, 338, 556, 81, 30, 557, 558, 572, 64,
739 /* 30 */ 63, 62, 61, 321, 322, 9, 8, 33, 149, 32,
740 /* 40 */ 7, 71, 127, 38, 334, 66, 48, 37, 28, 338,
741 /* 50 */ 338, 338, 338, 423, 424, 339, 340, 341, 342, 343,
742 /* 60 */ 344, 345, 346, 347, 472, 526, 161, 119, 574, 77,
743 /* 70 */ 574, 73, 374, 148, 472, 531, 161, 119, 112, 113,
744 /* 80 */ 120, 161, 119, 128, 425, 426, 338, 305, 81, 376,
745 /* 90 */ 158, 76, 472, 529, 161, 119, 31, 321, 322, 9,
746 /* 100 */ 8, 33, 149, 32, 7, 71, 127, 329, 334, 66,
747 /* 110 */ 576, 83, 36, 338, 338, 338, 338, 423, 424, 339,
748 /* 120 */ 340, 341, 342, 343, 344, 345, 346, 347, 392, 433,
749 /* 130 */ 309, 59, 60, 409, 410, 411, 412, 107, 84, 374,
750 /* 140 */ 65, 108, 2, 46, 401, 162, 120, 161, 119, 117,
751 /* 150 */ 476, 80, 118, 307, 79, 133, 35, 126, 439, 438,
752 /* 160 */ 298, 123, 122, 402, 403, 404, 406, 80, 152, 307,
753 /* 170 */ 79, 327, 409, 410, 411, 412, 392, 54, 51, 59,
754 /* 180 */ 60, 64, 63, 62, 61, 312, 3, 102, 378, 157,
755 /* 190 */ 42, 432, 446, 452, 29, 300, 301, 302, 448, 304,
756 /* 200 */ 62, 61, 64, 63, 62, 61, 297, 47, 106, 163,
757 /* 210 */ 434, 435, 436, 437, 27, 389, 117, 391, 155, 154,
758 /* 220 */ 153, 392, 433, 49, 59, 60, 64, 63, 62, 61,
759 /* 230 */ 532, 69, 374, 396, 397, 2, 376, 158, 356, 296,
760 /* 240 */ 156, 156, 156, 67, 392, 433, 13, 59, 60, 4,
761 /* 250 */ 107, 439, 438, 377, 159, 374, 106, 5, 2, 120,
762 /* 260 */ 161, 119, 131, 449, 117, 391, 155, 154, 153, 392,
763 /* 270 */ 532, 6, 59, 60, 439, 438, 532, 444, 422, 532,
764 /* 280 */ 374, 152, 421, 42, 432, 1, 395, 36, 156, 156,
765 /* 290 */ 156, 11, 12, 355, 64, 63, 62, 61, 430, 118,
766 /* 300 */ 14, 106, 138, 434, 435, 436, 437, 432, 428, 117,
767 /* 310 */ 391, 155, 154, 153, 16, 69, 142, 140, 64, 63,
768 /* 320 */ 62, 61, 139, 18, 106, 15, 434, 435, 436, 437,
769 /* 330 */ 45, 44, 117, 391, 155, 154, 153, 358, 19, 55,
770 /* 340 */ 64, 63, 62, 61, 20, 147, 146, 68, 114, 106,
771 /* 350 */ 23, 382, 43, 26, 425, 426, 338, 117, 391, 155,
772 /* 360 */ 154, 153, 392, 57, 58, 59, 60, 390, 380, 375,
773 /* 370 */ 381, 17, 160, 374, 70, 39, 42, 443, 443, 443,
774 /* 380 */ 443, 22, 21, 338, 338, 338, 338, 423, 424, 24,
775 /* 390 */ 443, 145, 141, 429, 142, 140, 64, 63, 62, 61,
776 /* 400 */ 392, 471, 443, 59, 60, 443, 443, 132, 130, 389,
777 /* 410 */ 443, 374, 443, 443, 42, 443, 443, 55, 443, 64,
778 /* 420 */ 63, 62, 61, 147, 146, 392, 143, 443, 59, 60,
779 /* 430 */ 43, 443, 389, 443, 443, 443, 374, 471, 443, 42,
780 /* 440 */ 52, 443, 106, 443, 392, 144, 443, 59, 60, 443,
781 /* 450 */ 117, 391, 155, 154, 153, 374, 443, 443, 42, 22,
782 /* 460 */ 21, 121, 445, 452, 29, 443, 443, 24, 448, 145,
783 /* 470 */ 141, 429, 142, 140, 64, 63, 62, 61, 443, 163,
784 /* 480 */ 106, 443, 392, 442, 27, 59, 60, 443, 117, 391,
785 /* 490 */ 155, 154, 153, 374, 443, 55, 42, 443, 443, 443,
786 /* 500 */ 443, 147, 146, 443, 443, 106, 443, 392, 43, 443,
787 /* 510 */ 59, 60, 443, 117, 391, 155, 154, 153, 102, 443,
788 /* 520 */ 74, 42, 148, 443, 106, 443, 443, 124, 113, 120,
789 /* 530 */ 161, 119, 117, 391, 155, 154, 153, 22, 21, 392,
790 /* 540 */ 443, 443, 59, 60, 443, 24, 443, 145, 141, 429,
791 /* 550 */ 374, 149, 392, 40, 443, 59, 60, 443, 85, 443,
792 /* 560 */ 443, 443, 106, 374, 443, 443, 41, 120, 161, 119,
793 /* 570 */ 117, 391, 155, 154, 153, 349, 349, 349, 349, 349,
794 /* 580 */ 349, 349, 349, 349, 349, 443, 443, 106, 443, 152,
795 /* 590 */ 443, 443, 88, 443, 443, 117, 391, 155, 154, 153,
796 /* 600 */ 443, 120, 161, 119, 72, 443, 148, 10, 477, 477,
797 /* 610 */ 443, 125, 113, 120, 161, 119, 443, 443, 443, 106,
798 /* 620 */ 443, 443, 433, 152, 443, 443, 443, 117, 391, 155,
799 /* 630 */ 154, 153, 106, 443, 443, 149, 64, 63, 62, 61,
800 /* 640 */ 117, 391, 155, 154, 153, 443, 74, 443, 148, 354,
801 /* 650 */ 107, 439, 438, 495, 113, 120, 161, 119, 443, 120,
802 /* 660 */ 161, 119, 443, 461, 443, 74, 443, 148, 75, 443,
803 /* 670 */ 78, 78, 494, 113, 120, 161, 119, 149, 74, 443,
804 /* 680 */ 148, 152, 443, 443, 432, 488, 113, 120, 161, 119,
805 /* 690 */ 74, 443, 148, 443, 443, 443, 149, 482, 113, 120,
806 /* 700 */ 161, 119, 88, 434, 435, 436, 437, 443, 443, 149,
807 /* 710 */ 443, 120, 161, 119, 443, 74, 443, 148, 110, 110,
808 /* 720 */ 443, 149, 481, 113, 120, 161, 119, 443, 443, 443,
809 /* 730 */ 74, 443, 148, 152, 443, 443, 443, 478, 113, 120,
810 /* 740 */ 161, 119, 443, 74, 443, 148, 149, 443, 443, 443,
811 /* 750 */ 134, 113, 120, 161, 119, 74, 443, 148, 443, 443,
812 /* 760 */ 443, 149, 515, 113, 120, 161, 119, 443, 74, 443,
813 /* 770 */ 148, 443, 443, 443, 149, 137, 113, 120, 161, 119,
814 /* 780 */ 74, 443, 148, 443, 443, 443, 149, 523, 113, 120,
815 /* 790 */ 161, 119, 443, 74, 443, 148, 443, 443, 443, 149,
816 /* 800 */ 525, 113, 120, 161, 119, 443, 74, 443, 148, 443,
817 /* 810 */ 443, 149, 443, 522, 113, 120, 161, 119, 74, 443,
818 /* 820 */ 148, 86, 443, 443, 149, 524, 113, 120, 161, 119,
819 /* 830 */ 120, 161, 119, 74, 443, 148, 443, 149, 443, 443,
820 /* 840 */ 521, 113, 120, 161, 119, 443, 74, 443, 148, 149,
821 /* 850 */ 443, 443, 152, 520, 113, 120, 161, 119, 74, 443,
822 /* 860 */ 148, 443, 443, 443, 149, 519, 113, 120, 161, 119,
823 /* 870 */ 443, 74, 443, 148, 443, 443, 443, 149, 518, 113,
824 /* 880 */ 120, 161, 119, 74, 443, 148, 443, 443, 443, 149,
825 /* 890 */ 517, 113, 120, 161, 119, 433, 74, 443, 148, 443,
826 /* 900 */ 443, 443, 149, 150, 113, 120, 161, 119, 443, 74,
827 /* 910 */ 443, 148, 443, 443, 149, 443, 151, 113, 120, 161,
828 /* 920 */ 119, 74, 443, 148, 439, 438, 443, 149, 136, 113,
829 /* 930 */ 120, 161, 119, 443, 443, 443, 74, 443, 148, 443,
830 /* 940 */ 149, 443, 443, 135, 113, 120, 161, 119, 443, 88,
831 /* 950 */ 443, 443, 149, 443, 443, 443, 443, 432, 120, 161,
832 /* 960 */ 119, 443, 443, 443, 443, 82, 443, 149, 443, 443,
833 /* 970 */ 443, 443, 464, 443, 34, 443, 434, 435, 436, 437,
834 /* 980 */ 152, 107, 109, 445, 452, 29, 443, 443, 443, 448,
835 /* 990 */ 120, 161, 119, 443, 461, 443, 443, 88, 443, 443,
836 /* 1000 */ 163, 443, 566, 443, 443, 27, 120, 161, 119, 88,
837 /* 1010 */ 443, 443, 152, 111, 111, 443, 443, 443, 120, 161,
838 /* 1020 */ 119, 98, 443, 443, 89, 473, 443, 90, 152, 443,
839 /* 1030 */ 120, 161, 119, 120, 161, 119, 120, 161, 119, 87,
840 /* 1040 */ 152, 443, 443, 64, 63, 62, 61, 443, 120, 161,
841 /* 1050 */ 119, 443, 152, 443, 443, 152, 443, 443, 152, 443,
842 /* 1060 */ 443, 443, 99, 443, 50, 443, 443, 443, 100, 443,
843 /* 1070 */ 152, 120, 161, 119, 443, 101, 443, 120, 161, 119,
844 /* 1080 */ 91, 443, 443, 443, 120, 161, 119, 103, 443, 120,
845 /* 1090 */ 161, 119, 92, 152, 443, 443, 120, 161, 119, 152,
846 /* 1100 */ 443, 120, 161, 119, 443, 93, 152, 443, 443, 443,
847 /* 1110 */ 104, 152, 443, 443, 120, 161, 119, 94, 152, 120,
848 /* 1120 */ 161, 119, 105, 152, 443, 443, 120, 161, 119, 443,
849 /* 1130 */ 443, 120, 161, 119, 95, 443, 152, 443, 443, 443,
850 /* 1140 */ 96, 152, 443, 120, 161, 119, 443, 443, 152, 120,
851 /* 1150 */ 161, 119, 97, 152, 443, 443, 443, 443, 546, 443,
852 /* 1160 */ 443, 120, 161, 119, 443, 152, 443, 120, 161, 119,
853 /* 1170 */ 443, 152, 443, 443, 443, 545, 443, 443, 443, 443,
854 /* 1180 */ 443, 544, 443, 152, 120, 161, 119, 543, 443, 152,
855 /* 1190 */ 120, 161, 119, 115, 443, 443, 120, 161, 119, 116,
856 /* 1200 */ 443, 443, 120, 161, 119, 443, 152, 443, 120, 161,
857 /* 1210 */ 119, 443, 152, 64, 63, 62, 61, 443, 152, 64,
858 /* 1220 */ 63, 62, 61, 443, 152, 443, 353, 443, 443, 443,
859 /* 1230 */ 152, 64, 63, 62, 61, 64, 63, 62, 61, 443,
860 /* 1240 */ 53, 443, 443, 443, 394, 64, 63, 62, 61, 64,
861 /* 1250 */ 63, 62, 61, 443, 443, 443, 56, 443, 393, 443,
862 /* 1260 */ 443, 443, 389,
863 };
864 static const YYCODETYPE yy_lookahead[] = {
865 /* 0 */ 0, 111, 112, 113, 132, 100, 101, 102, 104, 104,
866 /* 10 */ 10, 111, 112, 113, 109, 110, 111, 112, 113, 104,
867 /* 20 */ 20, 21, 22, 103, 24, 124, 106, 107, 28, 4,
868 /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 133, 39,
869 /* 40 */ 40, 41, 42, 103, 44, 45, 106, 107, 105, 49,
870 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
871 /* 60 */ 60, 61, 62, 63, 0, 111, 112, 113, 128, 129,
872 /* 70 */ 130, 102, 12, 104, 10, 111, 112, 113, 109, 110,
873 /* 80 */ 111, 112, 113, 104, 20, 21, 22, 25, 24, 26,
874 /* 90 */ 27, 48, 28, 111, 112, 113, 126, 33, 34, 35,
875 /* 100 */ 36, 37, 133, 39, 40, 41, 42, 2, 44, 45,
876 /* 110 */ 131, 114, 10, 49, 50, 51, 52, 53, 54, 55,
877 /* 120 */ 56, 57, 58, 59, 60, 61, 62, 63, 1, 2,
878 /* 130 */ 28, 4, 5, 29, 30, 31, 32, 102, 114, 12,
879 /* 140 */ 97, 81, 15, 38, 1, 82, 111, 112, 113, 89,
880 /* 150 */ 115, 24, 89, 26, 27, 12, 127, 14, 31, 32,
881 /* 160 */ 19, 18, 1, 20, 21, 22, 23, 24, 133, 26,
882 /* 170 */ 27, 2, 29, 30, 31, 32, 1, 4, 5, 4,
883 /* 180 */ 5, 4, 5, 6, 7, 8, 16, 12, 26, 27,
884 /* 190 */ 15, 64, 99, 100, 101, 20, 21, 22, 105, 24,
885 /* 200 */ 6, 7, 4, 5, 6, 7, 17, 38, 81, 116,
886 /* 210 */ 83, 84, 85, 86, 121, 17, 89, 90, 91, 92,
887 /* 220 */ 93, 1, 2, 25, 4, 5, 4, 5, 6, 7,
888 /* 230 */ 48, 3, 12, 95, 96, 15, 26, 27, 17, 17,
889 /* 240 */ 20, 21, 22, 43, 1, 2, 25, 4, 5, 15,
890 /* 250 */ 102, 31, 32, 26, 27, 12, 81, 40, 15, 111,
891 /* 260 */ 112, 113, 47, 115, 89, 90, 91, 92, 93, 1,
892 /* 270 */ 88, 40, 4, 5, 31, 32, 94, 0, 41, 97,
893 /* 280 */ 12, 133, 41, 15, 64, 13, 17, 10, 20, 21,
894 /* 290 */ 22, 25, 74, 17, 4, 5, 6, 7, 79, 89,
895 /* 300 */ 3, 81, 78, 83, 84, 85, 86, 64, 79, 89,
896 /* 310 */ 90, 91, 92, 93, 3, 87, 2, 3, 4, 5,
897 /* 320 */ 6, 7, 80, 3, 81, 35, 83, 84, 85, 86,
898 /* 330 */ 16, 38, 89, 90, 91, 92, 93, 76, 3, 25,
899 /* 340 */ 4, 5, 6, 7, 3, 31, 32, 3, 94, 81,
900 /* 350 */ 25, 28, 38, 15, 20, 21, 22, 89, 90, 91,
901 /* 360 */ 92, 93, 1, 15, 15, 4, 5, 17, 28, 12,
902 /* 370 */ 28, 35, 88, 12, 3, 11, 15, 134, 134, 134,
903 /* 380 */ 134, 67, 68, 49, 50, 51, 52, 53, 54, 75,
904 /* 390 */ 134, 77, 78, 79, 2, 3, 4, 5, 6, 7,
905 /* 400 */ 1, 2, 134, 4, 5, 134, 134, 46, 47, 17,
906 /* 410 */ 134, 12, 134, 134, 15, 134, 134, 25, 134, 4,
907 /* 420 */ 5, 6, 7, 31, 32, 1, 2, 134, 4, 5,
908 /* 430 */ 38, 134, 17, 134, 134, 134, 12, 38, 134, 15,
909 /* 440 */ 25, 134, 81, 134, 1, 2, 134, 4, 5, 134,
910 /* 450 */ 89, 90, 91, 92, 93, 12, 134, 134, 15, 67,
911 /* 460 */ 68, 98, 99, 100, 101, 134, 134, 75, 105, 77,
912 /* 470 */ 78, 79, 2, 3, 4, 5, 6, 7, 134, 116,
913 /* 480 */ 81, 134, 1, 120, 121, 4, 5, 134, 89, 90,
914 /* 490 */ 91, 92, 93, 12, 134, 25, 15, 134, 134, 134,
915 /* 500 */ 134, 31, 32, 134, 134, 81, 134, 1, 38, 134,
916 /* 510 */ 4, 5, 134, 89, 90, 91, 92, 93, 12, 134,
917 /* 520 */ 102, 15, 104, 134, 81, 134, 134, 109, 110, 111,
918 /* 530 */ 112, 113, 89, 90, 91, 92, 93, 67, 68, 1,
919 /* 540 */ 134, 134, 4, 5, 134, 75, 134, 77, 78, 79,
920 /* 550 */ 12, 133, 1, 15, 134, 4, 5, 134, 102, 134,
921 /* 560 */ 134, 134, 81, 12, 134, 134, 15, 111, 112, 113,
922 /* 570 */ 89, 90, 91, 92, 93, 64, 65, 66, 67, 68,
923 /* 580 */ 69, 70, 71, 72, 73, 134, 134, 81, 134, 133,
924 /* 590 */ 134, 134, 102, 134, 134, 89, 90, 91, 92, 93,
925 /* 600 */ 134, 111, 112, 113, 102, 134, 104, 117, 118, 119,
926 /* 610 */ 134, 109, 110, 111, 112, 113, 134, 134, 134, 81,
927 /* 620 */ 134, 134, 2, 133, 134, 134, 134, 89, 90, 91,
928 /* 630 */ 92, 93, 81, 134, 134, 133, 4, 5, 6, 7,
929 /* 640 */ 89, 90, 91, 92, 93, 134, 102, 134, 104, 17,
930 /* 650 */ 102, 31, 32, 109, 110, 111, 112, 113, 134, 111,
931 /* 660 */ 112, 113, 134, 115, 134, 102, 134, 104, 48, 134,
932 /* 670 */ 122, 123, 109, 110, 111, 112, 113, 133, 102, 134,
933 /* 680 */ 104, 133, 134, 134, 64, 109, 110, 111, 112, 113,
934 /* 690 */ 102, 134, 104, 134, 134, 134, 133, 109, 110, 111,
935 /* 700 */ 112, 113, 102, 83, 84, 85, 86, 134, 134, 133,
936 /* 710 */ 134, 111, 112, 113, 134, 102, 134, 104, 118, 119,
937 /* 720 */ 134, 133, 109, 110, 111, 112, 113, 134, 134, 134,
938 /* 730 */ 102, 134, 104, 133, 134, 134, 134, 109, 110, 111,
939 /* 740 */ 112, 113, 134, 102, 134, 104, 133, 134, 134, 134,
940 /* 750 */ 109, 110, 111, 112, 113, 102, 134, 104, 134, 134,
941 /* 760 */ 134, 133, 109, 110, 111, 112, 113, 134, 102, 134,
942 /* 770 */ 104, 134, 134, 134, 133, 109, 110, 111, 112, 113,
943 /* 780 */ 102, 134, 104, 134, 134, 134, 133, 109, 110, 111,
944 /* 790 */ 112, 113, 134, 102, 134, 104, 134, 134, 134, 133,
945 /* 800 */ 109, 110, 111, 112, 113, 134, 102, 134, 104, 134,
946 /* 810 */ 134, 133, 134, 109, 110, 111, 112, 113, 102, 134,
947 /* 820 */ 104, 102, 134, 134, 133, 109, 110, 111, 112, 113,
948 /* 830 */ 111, 112, 113, 102, 134, 104, 134, 133, 134, 134,
949 /* 840 */ 109, 110, 111, 112, 113, 134, 102, 134, 104, 133,
950 /* 850 */ 134, 134, 133, 109, 110, 111, 112, 113, 102, 134,
951 /* 860 */ 104, 134, 134, 134, 133, 109, 110, 111, 112, 113,
952 /* 870 */ 134, 102, 134, 104, 134, 134, 134, 133, 109, 110,
953 /* 880 */ 111, 112, 113, 102, 134, 104, 134, 134, 134, 133,
954 /* 890 */ 109, 110, 111, 112, 113, 2, 102, 134, 104, 134,
955 /* 900 */ 134, 134, 133, 109, 110, 111, 112, 113, 134, 102,
956 /* 910 */ 134, 104, 134, 134, 133, 134, 109, 110, 111, 112,
957 /* 920 */ 113, 102, 134, 104, 31, 32, 134, 133, 109, 110,
958 /* 930 */ 111, 112, 113, 134, 134, 134, 102, 134, 104, 134,
959 /* 940 */ 133, 134, 134, 109, 110, 111, 112, 113, 134, 102,
960 /* 950 */ 134, 134, 133, 134, 134, 134, 134, 64, 111, 112,
961 /* 960 */ 113, 134, 134, 134, 134, 118, 134, 133, 134, 134,
962 /* 970 */ 134, 134, 125, 134, 127, 134, 83, 84, 85, 86,
963 /* 980 */ 133, 102, 98, 99, 100, 101, 134, 134, 134, 105,
964 /* 990 */ 111, 112, 113, 134, 115, 134, 134, 102, 134, 134,
965 /* 1000 */ 116, 134, 123, 134, 134, 121, 111, 112, 113, 102,
966 /* 1010 */ 134, 134, 133, 118, 119, 134, 134, 134, 111, 112,
967 /* 1020 */ 113, 102, 134, 134, 102, 118, 134, 102, 133, 134,
968 /* 1030 */ 111, 112, 113, 111, 112, 113, 111, 112, 113, 102,
969 /* 1040 */ 133, 134, 134, 4, 5, 6, 7, 134, 111, 112,
970 /* 1050 */ 113, 134, 133, 134, 134, 133, 134, 134, 133, 134,
971 /* 1060 */ 134, 134, 102, 134, 25, 134, 134, 134, 102, 134,
972 /* 1070 */ 133, 111, 112, 113, 134, 102, 134, 111, 112, 113,
973 /* 1080 */ 102, 134, 134, 134, 111, 112, 113, 102, 134, 111,
974 /* 1090 */ 112, 113, 102, 133, 134, 134, 111, 112, 113, 133,
975 /* 1100 */ 134, 111, 112, 113, 134, 102, 133, 134, 134, 134,
976 /* 1110 */ 102, 133, 134, 134, 111, 112, 113, 102, 133, 111,
977 /* 1120 */ 112, 113, 102, 133, 134, 134, 111, 112, 113, 134,
978 /* 1130 */ 134, 111, 112, 113, 102, 134, 133, 134, 134, 134,
979 /* 1140 */ 102, 133, 134, 111, 112, 113, 134, 134, 133, 111,
980 /* 1150 */ 112, 113, 102, 133, 134, 134, 134, 134, 102, 134,
981 /* 1160 */ 134, 111, 112, 113, 134, 133, 134, 111, 112, 113,
982 /* 1170 */ 134, 133, 134, 134, 134, 102, 134, 134, 134, 134,
983 /* 1180 */ 134, 102, 134, 133, 111, 112, 113, 102, 134, 133,
984 /* 1190 */ 111, 112, 113, 102, 134, 134, 111, 112, 113, 102,
985 /* 1200 */ 134, 134, 111, 112, 113, 134, 133, 134, 111, 112,
986 /* 1210 */ 113, 134, 133, 4, 5, 6, 7, 134, 133, 4,
987 /* 1220 */ 5, 6, 7, 134, 133, 134, 17, 134, 134, 134,
988 /* 1230 */ 133, 4, 5, 6, 7, 4, 5, 6, 7, 134,
989 /* 1240 */ 25, 134, 134, 134, 17, 4, 5, 6, 7, 4,
990 /* 1250 */ 5, 6, 7, 134, 134, 134, 25, 134, 17, 134,
991 /* 1260 */ 134, 134, 17, 134, 134, 134, 134, 134, 134, 134,
992 /* 1270 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
993 /* 1280 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
994 /* 1290 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
995 /* 1300 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
996 /* 1310 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
997 /* 1320 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
998 /* 1330 */ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
999 /* 1340 */ 134, 134, 134, 134, 134, 134, 134, 134, 98, 98,
1000 /* 1350 */ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1001 /* 1360 */ 98,
1002 };
1003 #define YY_SHIFT_COUNT (163)
1004 #define YY_SHIFT_MIN (0)
1005 #define YY_SHIFT_MAX (1245)
1006 static const unsigned short int yy_shift_ofst[] = {
1007 /* 0 */ 143, 127, 220, 243, 243, 243, 243, 243, 243, 243,
1008 /* 10 */ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
1009 /* 20 */ 243, 243, 243, 243, 243, 243, 243, 175, 361, 481,
1010 /* 30 */ 175, 143, 399, 399, 0, 64, 143, 506, 481, 506,
1011 /* 40 */ 268, 268, 268, 424, 443, 481, 481, 481, 481, 481,
1012 /* 50 */ 481, 538, 481, 481, 551, 481, 481, 481, 481, 481,
1013 /* 60 */ 481, 481, 481, 481, 481, 334, 60, 60, 60, 60,
1014 /* 70 */ 60, 620, 314, 392, 470, 893, 893, 104, 62, 1263,
1015 /* 80 */ 1263, 1263, 1263, 511, 511, 198, 415, 222, 177, 290,
1016 /* 90 */ 336, 632, 1039, 1209, 1215, 1227, 1231, 1241, 1245, 25,
1017 /* 100 */ 25, 25, 182, 25, 25, 25, 63, 25, 210, 102,
1018 /* 110 */ 105, 169, 221, 173, 138, 194, 194, 162, 227, 228,
1019 /* 120 */ 43, 277, 141, 161, 189, 170, 234, 200, 217, 231,
1020 /* 130 */ 237, 241, 215, 272, 269, 266, 218, 276, 219, 224,
1021 /* 140 */ 242, 229, 297, 311, 320, 293, 335, 341, 344, 254,
1022 /* 150 */ 261, 325, 254, 338, 348, 349, 350, 323, 340, 342,
1023 /* 160 */ 357, 284, 371, 364,
1024 };
1025 #define YY_REDUCE_COUNT (82)
1026 #define YY_REDUCE_MIN (-128)
1027 #define YY_REDUCE_MAX (1097)
1028 static const short yy_reduce_ofst[] = {
1029 /* 0 */ 363, -95, -31, 418, 502, 544, 563, 576, 588, 613,
1030 /* 10 */ 628, 641, 653, 666, 678, 691, 704, 716, 731, 744,
1031 /* 20 */ 756, 769, 781, 794, 807, 819, 834, 548, 490, 847,
1032 /* 30 */ 879, 884, 600, 895, -60, -60, 93, 35, 907, 148,
1033 /* 40 */ 456, 719, 919, 922, 925, 937, 960, 966, 973, 978,
1034 /* 50 */ 985, 990, 1003, 1008, 1015, 1020, 1032, 1038, 1050, 1056,
1035 /* 60 */ 1073, 1079, 1085, 1091, 1097, -80, -110, -100, -46, -36,
1036 /* 70 */ -18, -21, -128, -128, -128, -96, -85, -57, -99, -30,
1037 /* 80 */ -3, 24, 29,
1038 };
1039 static const YYACTIONTYPE yy_default[] = {
1040 /* 0 */ 447, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1041 /* 10 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1042 /* 20 */ 441, 441, 441, 441, 441, 441, 441, 441, 471, 573,
1043 /* 30 */ 441, 447, 577, 483, 578, 578, 447, 441, 441, 441,
1044 /* 40 */ 441, 441, 441, 441, 441, 441, 441, 441, 475, 441,
1045 /* 50 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1046 /* 60 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1047 /* 70 */ 441, 441, 441, 441, 441, 441, 441, 441, 453, 468,
1048 /* 80 */ 506, 506, 573, 466, 491, 441, 441, 441, 469, 441,
1049 /* 90 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 486,
1050 /* 100 */ 484, 474, 457, 510, 509, 508, 441, 563, 441, 441,
1051 /* 110 */ 441, 441, 441, 585, 441, 542, 541, 537, 441, 530,
1052 /* 120 */ 527, 441, 441, 441, 441, 441, 441, 489, 441, 441,
1053 /* 130 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1054 /* 140 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 589,
1055 /* 150 */ 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
1056 /* 160 */ 441, 598, 441, 441,
1057 };
1058 /********** End of lemon-generated parsing tables *****************************/
1059
1060 /* The next table maps tokens (terminal symbols) into fallback tokens.
1061 ** If a construct like the following:
@@ -1124,10 +1134,11 @@
1134 0, /* RARROW => nothing */
1135 0, /* LRARROW => nothing */
1136 0, /* INVIS => nothing */
1137 0, /* THICK => nothing */
1138 0, /* THIN => nothing */
1139 0, /* SOLID => nothing */
1140 0, /* CENTER => nothing */
1141 0, /* LJUST => nothing */
1142 0, /* RJUST => nothing */
1143 0, /* ABOVE => nothing */
1144 0, /* BELOW => nothing */
@@ -1309,80 +1320,81 @@
1320 /* 58 */ "RARROW",
1321 /* 59 */ "LRARROW",
1322 /* 60 */ "INVIS",
1323 /* 61 */ "THICK",
1324 /* 62 */ "THIN",
1325 /* 63 */ "SOLID",
1326 /* 64 */ "CENTER",
1327 /* 65 */ "LJUST",
1328 /* 66 */ "RJUST",
1329 /* 67 */ "ABOVE",
1330 /* 68 */ "BELOW",
1331 /* 69 */ "ITALIC",
1332 /* 70 */ "BOLD",
1333 /* 71 */ "ALIGNED",
1334 /* 72 */ "BIG",
1335 /* 73 */ "SMALL",
1336 /* 74 */ "AND",
1337 /* 75 */ "LT",
1338 /* 76 */ "GT",
1339 /* 77 */ "ON",
1340 /* 78 */ "WAY",
1341 /* 79 */ "BETWEEN",
1342 /* 80 */ "THE",
1343 /* 81 */ "NTH",
1344 /* 82 */ "VERTEX",
1345 /* 83 */ "TOP",
1346 /* 84 */ "BOTTOM",
1347 /* 85 */ "START",
1348 /* 86 */ "END",
1349 /* 87 */ "IN",
1350 /* 88 */ "DOT_U",
1351 /* 89 */ "LAST",
1352 /* 90 */ "NUMBER",
1353 /* 91 */ "FUNC1",
1354 /* 92 */ "FUNC2",
1355 /* 93 */ "DIST",
1356 /* 94 */ "DOT_XY",
1357 /* 95 */ "X",
1358 /* 96 */ "Y",
1359 /* 97 */ "DOT_L",
1360 /* 98 */ "statement_list",
1361 /* 99 */ "statement",
1362 /* 100 */ "unnamed_statement",
1363 /* 101 */ "basetype",
1364 /* 102 */ "expr",
1365 /* 103 */ "numproperty",
1366 /* 104 */ "edge",
1367 /* 105 */ "direction",
1368 /* 106 */ "dashproperty",
1369 /* 107 */ "colorproperty",
1370 /* 108 */ "locproperty",
1371 /* 109 */ "position",
1372 /* 110 */ "place",
1373 /* 111 */ "object",
1374 /* 112 */ "objectname",
1375 /* 113 */ "nth",
1376 /* 114 */ "textposition",
1377 /* 115 */ "rvalue",
1378 /* 116 */ "lvalue",
1379 /* 117 */ "even",
1380 /* 118 */ "relexpr",
1381 /* 119 */ "optrelexpr",
1382 /* 120 */ "document",
1383 /* 121 */ "print",
1384 /* 122 */ "prlist",
1385 /* 123 */ "pritem",
1386 /* 124 */ "prsep",
1387 /* 125 */ "attribute_list",
1388 /* 126 */ "savelist",
1389 /* 127 */ "alist",
1390 /* 128 */ "attribute",
1391 /* 129 */ "go",
1392 /* 130 */ "boolproperty",
1393 /* 131 */ "withclause",
1394 /* 132 */ "between",
1395 /* 133 */ "place2",
1396 };
1397 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
1398
1399 #ifndef NDEBUG
1400 /* For tracing reduce actions, the names of all rules are required.
@@ -1447,103 +1459,104 @@
1459 /* 56 */ "boolproperty ::= RARROW",
1460 /* 57 */ "boolproperty ::= LRARROW",
1461 /* 58 */ "boolproperty ::= INVIS",
1462 /* 59 */ "boolproperty ::= THICK",
1463 /* 60 */ "boolproperty ::= THIN",
1464 /* 61 */ "boolproperty ::= SOLID",
1465 /* 62 */ "textposition ::=",
1466 /* 63 */ "textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL",
1467 /* 64 */ "position ::= expr COMMA expr",
1468 /* 65 */ "position ::= place PLUS expr COMMA expr",
1469 /* 66 */ "position ::= place MINUS expr COMMA expr",
1470 /* 67 */ "position ::= place PLUS LP expr COMMA expr RP",
1471 /* 68 */ "position ::= place MINUS LP expr COMMA expr RP",
1472 /* 69 */ "position ::= LP position COMMA position RP",
1473 /* 70 */ "position ::= LP position RP",
1474 /* 71 */ "position ::= expr between position AND position",
1475 /* 72 */ "position ::= expr LT position COMMA position GT",
1476 /* 73 */ "position ::= expr ABOVE position",
1477 /* 74 */ "position ::= expr BELOW position",
1478 /* 75 */ "position ::= expr LEFT OF position",
1479 /* 76 */ "position ::= expr RIGHT OF position",
1480 /* 77 */ "position ::= expr ON HEADING EDGEPT OF position",
1481 /* 78 */ "position ::= expr HEADING EDGEPT OF position",
1482 /* 79 */ "position ::= expr EDGEPT OF position",
1483 /* 80 */ "position ::= expr ON HEADING expr FROM position",
1484 /* 81 */ "position ::= expr HEADING expr FROM position",
1485 /* 82 */ "place ::= edge OF object",
1486 /* 83 */ "place2 ::= object",
1487 /* 84 */ "place2 ::= object DOT_E edge",
1488 /* 85 */ "place2 ::= NTH VERTEX OF object",
1489 /* 86 */ "object ::= nth",
1490 /* 87 */ "object ::= nth OF|IN object",
1491 /* 88 */ "objectname ::= PLACENAME",
1492 /* 89 */ "objectname ::= objectname DOT_U PLACENAME",
1493 /* 90 */ "nth ::= NTH CLASSNAME",
1494 /* 91 */ "nth ::= NTH LAST CLASSNAME",
1495 /* 92 */ "nth ::= LAST CLASSNAME",
1496 /* 93 */ "nth ::= LAST",
1497 /* 94 */ "nth ::= NTH LB RB",
1498 /* 95 */ "nth ::= NTH LAST LB RB",
1499 /* 96 */ "nth ::= LAST LB RB",
1500 /* 97 */ "expr ::= expr PLUS expr",
1501 /* 98 */ "expr ::= expr MINUS expr",
1502 /* 99 */ "expr ::= expr STAR expr",
1503 /* 100 */ "expr ::= expr SLASH expr",
1504 /* 101 */ "expr ::= MINUS expr",
1505 /* 102 */ "expr ::= PLUS expr",
1506 /* 103 */ "expr ::= LP expr RP",
1507 /* 104 */ "expr ::= LP FILL|COLOR|THICKNESS RP",
1508 /* 105 */ "expr ::= NUMBER",
1509 /* 106 */ "expr ::= ID",
1510 /* 107 */ "expr ::= FUNC1 LP expr RP",
1511 /* 108 */ "expr ::= FUNC2 LP expr COMMA expr RP",
1512 /* 109 */ "expr ::= DIST LP position COMMA position RP",
1513 /* 110 */ "expr ::= place2 DOT_XY X",
1514 /* 111 */ "expr ::= place2 DOT_XY Y",
1515 /* 112 */ "expr ::= object DOT_L numproperty",
1516 /* 113 */ "expr ::= object DOT_L dashproperty",
1517 /* 114 */ "expr ::= object DOT_L colorproperty",
1518 /* 115 */ "lvalue ::= ID",
1519 /* 116 */ "lvalue ::= FILL",
1520 /* 117 */ "lvalue ::= COLOR",
1521 /* 118 */ "lvalue ::= THICKNESS",
1522 /* 119 */ "rvalue ::= expr",
1523 /* 120 */ "print ::= PRINT",
1524 /* 121 */ "prlist ::= pritem",
1525 /* 122 */ "prlist ::= prlist prsep pritem",
1526 /* 123 */ "direction ::= UP",
1527 /* 124 */ "direction ::= DOWN",
1528 /* 125 */ "direction ::= LEFT",
1529 /* 126 */ "direction ::= RIGHT",
1530 /* 127 */ "optrelexpr ::= relexpr",
1531 /* 128 */ "attribute_list ::= alist",
1532 /* 129 */ "alist ::=",
1533 /* 130 */ "alist ::= alist attribute",
1534 /* 131 */ "attribute ::= boolproperty",
1535 /* 132 */ "attribute ::= WITH withclause",
1536 /* 133 */ "go ::= GO",
1537 /* 134 */ "go ::=",
1538 /* 135 */ "even ::= UNTIL EVEN WITH",
1539 /* 136 */ "even ::= EVEN WITH",
1540 /* 137 */ "dashproperty ::= DOTTED",
1541 /* 138 */ "dashproperty ::= DASHED",
1542 /* 139 */ "colorproperty ::= FILL",
1543 /* 140 */ "colorproperty ::= COLOR",
1544 /* 141 */ "position ::= place",
1545 /* 142 */ "between ::= WAY BETWEEN",
1546 /* 143 */ "between ::= BETWEEN",
1547 /* 144 */ "between ::= OF THE WAY BETWEEN",
1548 /* 145 */ "place ::= place2",
1549 /* 146 */ "edge ::= CENTER",
1550 /* 147 */ "edge ::= EDGEPT",
1551 /* 148 */ "edge ::= TOP",
1552 /* 149 */ "edge ::= BOTTOM",
1553 /* 150 */ "edge ::= START",
1554 /* 151 */ "edge ::= END",
1555 /* 152 */ "edge ::= RIGHT",
1556 /* 153 */ "edge ::= LEFT",
1557 /* 154 */ "object ::= objectname",
1558 };
1559 #endif /* NDEBUG */
1560
1561
1562 #if YYSTACKDEPTH<=0
@@ -1665,24 +1678,24 @@
1678 ** Note: during a reduce, the only symbols destroyed are those
1679 ** which appear on the RHS of the rule, but which are *not* used
1680 ** inside the C code.
1681 */
1682 /********* Begin destructor definitions ***************************************/
1683 case 98: /* statement_list */
1684 {
1685 #line 483 "pikchr.y"
1686 pik_elist_free(p,(yypminor->yy119));
1687 #line 1712 "pikchr.c"
1688 }
1689 break;
1690 case 99: /* statement */
1691 case 100: /* unnamed_statement */
1692 case 101: /* basetype */
1693 {
1694 #line 485 "pikchr.y"
1695 pik_elem_free(p,(yypminor->yy38));
1696 #line 1721 "pikchr.c"
1697 }
1698 break;
1699 /********* End destructor definitions *****************************************/
1700 default: break; /* If no destructor action specified: do nothing */
1701 }
@@ -1899,11 +1912,11 @@
1912 ** stack every overflows */
1913 /******** Begin %stack_overflow code ******************************************/
1914 #line 517 "pikchr.y"
1915
1916 pik_error(p, 0, "parser stack overflow");
1917 #line 1942 "pikchr.c"
1918 /******** End %stack_overflow code ********************************************/
1919 pik_parserARG_STORE /* Suppress warning about unused %extra_argument var */
1920 pik_parserCTX_STORE
1921 }
1922
@@ -1971,164 +1984,165 @@
1984 }
1985
1986 /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
1987 ** of that rule */
1988 static const YYCODETYPE yyRuleInfoLhs[] = {
1989 120, /* (0) document ::= statement_list */
1990 98, /* (1) statement_list ::= statement */
1991 98, /* (2) statement_list ::= statement_list EOL statement */
1992 99, /* (3) statement ::= */
1993 99, /* (4) statement ::= direction */
1994 99, /* (5) statement ::= lvalue ASSIGN rvalue */
1995 99, /* (6) statement ::= PLACENAME COLON unnamed_statement */
1996 99, /* (7) statement ::= PLACENAME COLON position */
1997 99, /* (8) statement ::= unnamed_statement */
1998 99, /* (9) statement ::= print prlist */
1999 99, /* (10) statement ::= ASSERT LP expr EQ expr RP */
2000 99, /* (11) statement ::= ASSERT LP position EQ position RP */
2001 99, /* (12) statement ::= DEFINE ID CODEBLOCK */
2002 115, /* (13) rvalue ::= PLACENAME */
2003 123, /* (14) pritem ::= FILL */
2004 123, /* (15) pritem ::= COLOR */
2005 123, /* (16) pritem ::= THICKNESS */
2006 123, /* (17) pritem ::= rvalue */
2007 123, /* (18) pritem ::= STRING */
2008 124, /* (19) prsep ::= COMMA */
2009 100, /* (20) unnamed_statement ::= basetype attribute_list */
2010 101, /* (21) basetype ::= CLASSNAME */
2011 101, /* (22) basetype ::= STRING textposition */
2012 101, /* (23) basetype ::= LB savelist statement_list RB */
2013 126, /* (24) savelist ::= */
2014 118, /* (25) relexpr ::= expr */
2015 118, /* (26) relexpr ::= expr PERCENT */
2016 119, /* (27) optrelexpr ::= */
2017 125, /* (28) attribute_list ::= relexpr alist */
2018 128, /* (29) attribute ::= numproperty relexpr */
2019 128, /* (30) attribute ::= dashproperty expr */
2020 128, /* (31) attribute ::= dashproperty */
2021 128, /* (32) attribute ::= colorproperty rvalue */
2022 128, /* (33) attribute ::= go direction optrelexpr */
2023 128, /* (34) attribute ::= go direction even position */
2024 128, /* (35) attribute ::= CLOSE */
2025 128, /* (36) attribute ::= CHOP */
2026 128, /* (37) attribute ::= FROM position */
2027 128, /* (38) attribute ::= TO position */
2028 128, /* (39) attribute ::= THEN */
2029 128, /* (40) attribute ::= THEN optrelexpr HEADING expr */
2030 128, /* (41) attribute ::= THEN optrelexpr EDGEPT */
2031 128, /* (42) attribute ::= GO optrelexpr HEADING expr */
2032 128, /* (43) attribute ::= GO optrelexpr EDGEPT */
2033 128, /* (44) attribute ::= AT position */
2034 128, /* (45) attribute ::= SAME */
2035 128, /* (46) attribute ::= SAME AS object */
2036 128, /* (47) attribute ::= STRING textposition */
2037 128, /* (48) attribute ::= FIT */
2038 128, /* (49) attribute ::= BEHIND object */
2039 131, /* (50) withclause ::= DOT_E edge AT position */
2040 131, /* (51) withclause ::= edge AT position */
2041 103, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
2042 130, /* (53) boolproperty ::= CW */
2043 130, /* (54) boolproperty ::= CCW */
2044 130, /* (55) boolproperty ::= LARROW */
2045 130, /* (56) boolproperty ::= RARROW */
2046 130, /* (57) boolproperty ::= LRARROW */
2047 130, /* (58) boolproperty ::= INVIS */
2048 130, /* (59) boolproperty ::= THICK */
2049 130, /* (60) boolproperty ::= THIN */
2050 130, /* (61) boolproperty ::= SOLID */
2051 114, /* (62) textposition ::= */
2052 114, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2053 109, /* (64) position ::= expr COMMA expr */
2054 109, /* (65) position ::= place PLUS expr COMMA expr */
2055 109, /* (66) position ::= place MINUS expr COMMA expr */
2056 109, /* (67) position ::= place PLUS LP expr COMMA expr RP */
2057 109, /* (68) position ::= place MINUS LP expr COMMA expr RP */
2058 109, /* (69) position ::= LP position COMMA position RP */
2059 109, /* (70) position ::= LP position RP */
2060 109, /* (71) position ::= expr between position AND position */
2061 109, /* (72) position ::= expr LT position COMMA position GT */
2062 109, /* (73) position ::= expr ABOVE position */
2063 109, /* (74) position ::= expr BELOW position */
2064 109, /* (75) position ::= expr LEFT OF position */
2065 109, /* (76) position ::= expr RIGHT OF position */
2066 109, /* (77) position ::= expr ON HEADING EDGEPT OF position */
2067 109, /* (78) position ::= expr HEADING EDGEPT OF position */
2068 109, /* (79) position ::= expr EDGEPT OF position */
2069 109, /* (80) position ::= expr ON HEADING expr FROM position */
2070 109, /* (81) position ::= expr HEADING expr FROM position */
2071 110, /* (82) place ::= edge OF object */
2072 133, /* (83) place2 ::= object */
2073 133, /* (84) place2 ::= object DOT_E edge */
2074 133, /* (85) place2 ::= NTH VERTEX OF object */
2075 111, /* (86) object ::= nth */
2076 111, /* (87) object ::= nth OF|IN object */
2077 112, /* (88) objectname ::= PLACENAME */
2078 112, /* (89) objectname ::= objectname DOT_U PLACENAME */
2079 113, /* (90) nth ::= NTH CLASSNAME */
2080 113, /* (91) nth ::= NTH LAST CLASSNAME */
2081 113, /* (92) nth ::= LAST CLASSNAME */
2082 113, /* (93) nth ::= LAST */
2083 113, /* (94) nth ::= NTH LB RB */
2084 113, /* (95) nth ::= NTH LAST LB RB */
2085 113, /* (96) nth ::= LAST LB RB */
2086 102, /* (97) expr ::= expr PLUS expr */
2087 102, /* (98) expr ::= expr MINUS expr */
2088 102, /* (99) expr ::= expr STAR expr */
2089 102, /* (100) expr ::= expr SLASH expr */
2090 102, /* (101) expr ::= MINUS expr */
2091 102, /* (102) expr ::= PLUS expr */
2092 102, /* (103) expr ::= LP expr RP */
2093 102, /* (104) expr ::= LP FILL|COLOR|THICKNESS RP */
2094 102, /* (105) expr ::= NUMBER */
2095 102, /* (106) expr ::= ID */
2096 102, /* (107) expr ::= FUNC1 LP expr RP */
2097 102, /* (108) expr ::= FUNC2 LP expr COMMA expr RP */
2098 102, /* (109) expr ::= DIST LP position COMMA position RP */
2099 102, /* (110) expr ::= place2 DOT_XY X */
2100 102, /* (111) expr ::= place2 DOT_XY Y */
2101 102, /* (112) expr ::= object DOT_L numproperty */
2102 102, /* (113) expr ::= object DOT_L dashproperty */
2103 102, /* (114) expr ::= object DOT_L colorproperty */
2104 116, /* (115) lvalue ::= ID */
2105 116, /* (116) lvalue ::= FILL */
2106 116, /* (117) lvalue ::= COLOR */
2107 116, /* (118) lvalue ::= THICKNESS */
2108 115, /* (119) rvalue ::= expr */
2109 121, /* (120) print ::= PRINT */
2110 122, /* (121) prlist ::= pritem */
2111 122, /* (122) prlist ::= prlist prsep pritem */
2112 105, /* (123) direction ::= UP */
2113 105, /* (124) direction ::= DOWN */
2114 105, /* (125) direction ::= LEFT */
2115 105, /* (126) direction ::= RIGHT */
2116 119, /* (127) optrelexpr ::= relexpr */
2117 125, /* (128) attribute_list ::= alist */
2118 127, /* (129) alist ::= */
2119 127, /* (130) alist ::= alist attribute */
2120 128, /* (131) attribute ::= boolproperty */
2121 128, /* (132) attribute ::= WITH withclause */
2122 129, /* (133) go ::= GO */
2123 129, /* (134) go ::= */
2124 117, /* (135) even ::= UNTIL EVEN WITH */
2125 117, /* (136) even ::= EVEN WITH */
2126 106, /* (137) dashproperty ::= DOTTED */
2127 106, /* (138) dashproperty ::= DASHED */
2128 107, /* (139) colorproperty ::= FILL */
2129 107, /* (140) colorproperty ::= COLOR */
2130 109, /* (141) position ::= place */
2131 132, /* (142) between ::= WAY BETWEEN */
2132 132, /* (143) between ::= BETWEEN */
2133 132, /* (144) between ::= OF THE WAY BETWEEN */
2134 110, /* (145) place ::= place2 */
2135 104, /* (146) edge ::= CENTER */
2136 104, /* (147) edge ::= EDGEPT */
2137 104, /* (148) edge ::= TOP */
2138 104, /* (149) edge ::= BOTTOM */
2139 104, /* (150) edge ::= START */
2140 104, /* (151) edge ::= END */
2141 104, /* (152) edge ::= RIGHT */
2142 104, /* (153) edge ::= LEFT */
2143 111, /* (154) object ::= objectname */
2144 };
2145
2146 /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
2147 ** of symbols on the right-hand side of that rule. */
2148 static const signed char yyRuleInfoNRhs[] = {
@@ -2191,103 +2205,104 @@
2205 -1, /* (56) boolproperty ::= RARROW */
2206 -1, /* (57) boolproperty ::= LRARROW */
2207 -1, /* (58) boolproperty ::= INVIS */
2208 -1, /* (59) boolproperty ::= THICK */
2209 -1, /* (60) boolproperty ::= THIN */
2210 -1, /* (61) boolproperty ::= SOLID */
2211 0, /* (62) textposition ::= */
2212 -2, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2213 -3, /* (64) position ::= expr COMMA expr */
2214 -5, /* (65) position ::= place PLUS expr COMMA expr */
2215 -5, /* (66) position ::= place MINUS expr COMMA expr */
2216 -7, /* (67) position ::= place PLUS LP expr COMMA expr RP */
2217 -7, /* (68) position ::= place MINUS LP expr COMMA expr RP */
2218 -5, /* (69) position ::= LP position COMMA position RP */
2219 -3, /* (70) position ::= LP position RP */
2220 -5, /* (71) position ::= expr between position AND position */
2221 -6, /* (72) position ::= expr LT position COMMA position GT */
2222 -3, /* (73) position ::= expr ABOVE position */
2223 -3, /* (74) position ::= expr BELOW position */
2224 -4, /* (75) position ::= expr LEFT OF position */
2225 -4, /* (76) position ::= expr RIGHT OF position */
2226 -6, /* (77) position ::= expr ON HEADING EDGEPT OF position */
2227 -5, /* (78) position ::= expr HEADING EDGEPT OF position */
2228 -4, /* (79) position ::= expr EDGEPT OF position */
2229 -6, /* (80) position ::= expr ON HEADING expr FROM position */
2230 -5, /* (81) position ::= expr HEADING expr FROM position */
2231 -3, /* (82) place ::= edge OF object */
2232 -1, /* (83) place2 ::= object */
2233 -3, /* (84) place2 ::= object DOT_E edge */
2234 -4, /* (85) place2 ::= NTH VERTEX OF object */
2235 -1, /* (86) object ::= nth */
2236 -3, /* (87) object ::= nth OF|IN object */
2237 -1, /* (88) objectname ::= PLACENAME */
2238 -3, /* (89) objectname ::= objectname DOT_U PLACENAME */
2239 -2, /* (90) nth ::= NTH CLASSNAME */
2240 -3, /* (91) nth ::= NTH LAST CLASSNAME */
2241 -2, /* (92) nth ::= LAST CLASSNAME */
2242 -1, /* (93) nth ::= LAST */
2243 -3, /* (94) nth ::= NTH LB RB */
2244 -4, /* (95) nth ::= NTH LAST LB RB */
2245 -3, /* (96) nth ::= LAST LB RB */
2246 -3, /* (97) expr ::= expr PLUS expr */
2247 -3, /* (98) expr ::= expr MINUS expr */
2248 -3, /* (99) expr ::= expr STAR expr */
2249 -3, /* (100) expr ::= expr SLASH expr */
2250 -2, /* (101) expr ::= MINUS expr */
2251 -2, /* (102) expr ::= PLUS expr */
2252 -3, /* (103) expr ::= LP expr RP */
2253 -3, /* (104) expr ::= LP FILL|COLOR|THICKNESS RP */
2254 -1, /* (105) expr ::= NUMBER */
2255 -1, /* (106) expr ::= ID */
2256 -4, /* (107) expr ::= FUNC1 LP expr RP */
2257 -6, /* (108) expr ::= FUNC2 LP expr COMMA expr RP */
2258 -6, /* (109) expr ::= DIST LP position COMMA position RP */
2259 -3, /* (110) expr ::= place2 DOT_XY X */
2260 -3, /* (111) expr ::= place2 DOT_XY Y */
2261 -3, /* (112) expr ::= object DOT_L numproperty */
2262 -3, /* (113) expr ::= object DOT_L dashproperty */
2263 -3, /* (114) expr ::= object DOT_L colorproperty */
2264 -1, /* (115) lvalue ::= ID */
2265 -1, /* (116) lvalue ::= FILL */
2266 -1, /* (117) lvalue ::= COLOR */
2267 -1, /* (118) lvalue ::= THICKNESS */
2268 -1, /* (119) rvalue ::= expr */
2269 -1, /* (120) print ::= PRINT */
2270 -1, /* (121) prlist ::= pritem */
2271 -3, /* (122) prlist ::= prlist prsep pritem */
2272 -1, /* (123) direction ::= UP */
2273 -1, /* (124) direction ::= DOWN */
2274 -1, /* (125) direction ::= LEFT */
2275 -1, /* (126) direction ::= RIGHT */
2276 -1, /* (127) optrelexpr ::= relexpr */
2277 -1, /* (128) attribute_list ::= alist */
2278 0, /* (129) alist ::= */
2279 -2, /* (130) alist ::= alist attribute */
2280 -1, /* (131) attribute ::= boolproperty */
2281 -2, /* (132) attribute ::= WITH withclause */
2282 -1, /* (133) go ::= GO */
2283 0, /* (134) go ::= */
2284 -3, /* (135) even ::= UNTIL EVEN WITH */
2285 -2, /* (136) even ::= EVEN WITH */
2286 -1, /* (137) dashproperty ::= DOTTED */
2287 -1, /* (138) dashproperty ::= DASHED */
2288 -1, /* (139) colorproperty ::= FILL */
2289 -1, /* (140) colorproperty ::= COLOR */
2290 -1, /* (141) position ::= place */
2291 -2, /* (142) between ::= WAY BETWEEN */
2292 -1, /* (143) between ::= BETWEEN */
2293 -4, /* (144) between ::= OF THE WAY BETWEEN */
2294 -1, /* (145) place ::= place2 */
2295 -1, /* (146) edge ::= CENTER */
2296 -1, /* (147) edge ::= EDGEPT */
2297 -1, /* (148) edge ::= TOP */
2298 -1, /* (149) edge ::= BOTTOM */
2299 -1, /* (150) edge ::= START */
2300 -1, /* (151) edge ::= END */
2301 -1, /* (152) edge ::= RIGHT */
2302 -1, /* (153) edge ::= LEFT */
2303 -1, /* (154) object ::= objectname */
2304 };
2305
2306 static void yy_accept(yyParser*); /* Forward Declaration */
2307
2308 /*
@@ -2376,650 +2391,656 @@
2391 */
2392 /********** Begin reduce actions **********************************************/
2393 YYMINORTYPE yylhsminor;
2394 case 0: /* document ::= statement_list */
2395 #line 521 "pikchr.y"
2396 {pik_render(p,yymsp[0].minor.yy119);}
2397 #line 2422 "pikchr.c"
2398 break;
2399 case 1: /* statement_list ::= statement */
2400 #line 524 "pikchr.y"
2401 { yylhsminor.yy119 = pik_elist_append(p,0,yymsp[0].minor.yy38); }
2402 #line 2427 "pikchr.c"
2403 yymsp[0].minor.yy119 = yylhsminor.yy119;
2404 break;
2405 case 2: /* statement_list ::= statement_list EOL statement */
2406 #line 526 "pikchr.y"
2407 { yylhsminor.yy119 = pik_elist_append(p,yymsp[-2].minor.yy119,yymsp[0].minor.yy38); }
2408 #line 2433 "pikchr.c"
2409 yymsp[-2].minor.yy119 = yylhsminor.yy119;
2410 break;
2411 case 3: /* statement ::= */
2412 #line 529 "pikchr.y"
2413 { yymsp[1].minor.yy38 = 0; }
2414 #line 2439 "pikchr.c"
2415 break;
2416 case 4: /* statement ::= direction */
2417 #line 530 "pikchr.y"
2418 { pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy38=0; }
2419 #line 2444 "pikchr.c"
2420 yymsp[0].minor.yy38 = yylhsminor.yy38;
2421 break;
2422 case 5: /* statement ::= lvalue ASSIGN rvalue */
2423 #line 531 "pikchr.y"
2424 {pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy265,&yymsp[-1].minor.yy0); yylhsminor.yy38=0;}
2425 #line 2450 "pikchr.c"
2426 yymsp[-2].minor.yy38 = yylhsminor.yy38;
2427 break;
2428 case 6: /* statement ::= PLACENAME COLON unnamed_statement */
2429 #line 533 "pikchr.y"
2430 { yylhsminor.yy38 = yymsp[0].minor.yy38; pik_elem_setname(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0); }
2431 #line 2456 "pikchr.c"
2432 yymsp[-2].minor.yy38 = yylhsminor.yy38;
2433 break;
2434 case 7: /* statement ::= PLACENAME COLON position */
2435 #line 535 "pikchr.y"
2436 { yylhsminor.yy38 = pik_elem_new(p,0,0,0);
2437 if(yylhsminor.yy38){ yylhsminor.yy38->ptAt = yymsp[0].minor.yy43; pik_elem_setname(p,yylhsminor.yy38,&yymsp[-2].minor.yy0); }}
2438 #line 2463 "pikchr.c"
2439 yymsp[-2].minor.yy38 = yylhsminor.yy38;
2440 break;
2441 case 8: /* statement ::= unnamed_statement */
2442 #line 537 "pikchr.y"
2443 {yylhsminor.yy38 = yymsp[0].minor.yy38;}
2444 #line 2469 "pikchr.c"
2445 yymsp[0].minor.yy38 = yylhsminor.yy38;
2446 break;
2447 case 9: /* statement ::= print prlist */
2448 #line 538 "pikchr.y"
2449 {pik_append(p,"<br>\n",5); yymsp[-1].minor.yy38=0;}
2450 #line 2475 "pikchr.c"
2451 break;
2452 case 10: /* statement ::= ASSERT LP expr EQ expr RP */
2453 #line 543 "pikchr.y"
2454 {yymsp[-5].minor.yy38=pik_assert(p,yymsp[-3].minor.yy265,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy265);}
2455 #line 2480 "pikchr.c"
2456 break;
2457 case 11: /* statement ::= ASSERT LP position EQ position RP */
2458 #line 545 "pikchr.y"
2459 {yymsp[-5].minor.yy38=pik_position_assert(p,&yymsp[-3].minor.yy43,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy43);}
2460 #line 2485 "pikchr.c"
2461 break;
2462 case 12: /* statement ::= DEFINE ID CODEBLOCK */
2463 #line 546 "pikchr.y"
2464 {yymsp[-2].minor.yy38=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
2465 #line 2490 "pikchr.c"
2466 break;
2467 case 13: /* rvalue ::= PLACENAME */
2468 #line 557 "pikchr.y"
2469 {yylhsminor.yy265 = pik_lookup_color(p,&yymsp[0].minor.yy0);}
2470 #line 2495 "pikchr.c"
2471 yymsp[0].minor.yy265 = yylhsminor.yy265;
2472 break;
2473 case 14: /* pritem ::= FILL */
2474 case 15: /* pritem ::= COLOR */ yytestcase(yyruleno==15);
2475 case 16: /* pritem ::= THICKNESS */ yytestcase(yyruleno==16);
2476 #line 562 "pikchr.y"
2477 {pik_append_num(p,"",pik_value(p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.n,0));}
2478 #line 2503 "pikchr.c"
2479 break;
2480 case 17: /* pritem ::= rvalue */
2481 #line 565 "pikchr.y"
2482 {pik_append_num(p,"",yymsp[0].minor.yy265);}
2483 #line 2508 "pikchr.c"
2484 break;
2485 case 18: /* pritem ::= STRING */
2486 #line 566 "pikchr.y"
2487 {pik_append_text(p,yymsp[0].minor.yy0.z+1,yymsp[0].minor.yy0.n-2,0);}
2488 #line 2513 "pikchr.c"
2489 break;
2490 case 19: /* prsep ::= COMMA */
2491 #line 567 "pikchr.y"
2492 {pik_append(p, " ", 1);}
2493 #line 2518 "pikchr.c"
2494 break;
2495 case 20: /* unnamed_statement ::= basetype attribute_list */
2496 #line 570 "pikchr.y"
2497 {yylhsminor.yy38 = yymsp[-1].minor.yy38; pik_after_adding_attributes(p,yylhsminor.yy38);}
2498 #line 2523 "pikchr.c"
2499 yymsp[-1].minor.yy38 = yylhsminor.yy38;
2500 break;
2501 case 21: /* basetype ::= CLASSNAME */
2502 #line 572 "pikchr.y"
2503 {yylhsminor.yy38 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); }
2504 #line 2529 "pikchr.c"
2505 yymsp[0].minor.yy38 = yylhsminor.yy38;
2506 break;
2507 case 22: /* basetype ::= STRING textposition */
2508 #line 574 "pikchr.y"
2509 {yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy196; yylhsminor.yy38 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); }
2510 #line 2535 "pikchr.c"
2511 yymsp[-1].minor.yy38 = yylhsminor.yy38;
2512 break;
2513 case 23: /* basetype ::= LB savelist statement_list RB */
2514 #line 576 "pikchr.y"
2515 { 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; }
2516 #line 2541 "pikchr.c"
2517 break;
2518 case 24: /* savelist ::= */
2519 #line 581 "pikchr.y"
2520 {yymsp[1].minor.yy119 = p->list; p->list = 0;}
2521 #line 2546 "pikchr.c"
2522 break;
2523 case 25: /* relexpr ::= expr */
2524 #line 588 "pikchr.y"
2525 {yylhsminor.yy200.rAbs = yymsp[0].minor.yy265; yylhsminor.yy200.rRel = 0;}
2526 #line 2551 "pikchr.c"
2527 yymsp[0].minor.yy200 = yylhsminor.yy200;
2528 break;
2529 case 26: /* relexpr ::= expr PERCENT */
2530 #line 589 "pikchr.y"
2531 {yylhsminor.yy200.rAbs = 0; yylhsminor.yy200.rRel = yymsp[-1].minor.yy265/100;}
2532 #line 2557 "pikchr.c"
2533 yymsp[-1].minor.yy200 = yylhsminor.yy200;
2534 break;
2535 case 27: /* optrelexpr ::= */
2536 #line 591 "pikchr.y"
2537 {yymsp[1].minor.yy200.rAbs = 0; yymsp[1].minor.yy200.rRel = 1.0;}
2538 #line 2563 "pikchr.c"
2539 break;
2540 case 28: /* attribute_list ::= relexpr alist */
2541 #line 593 "pikchr.y"
2542 {pik_add_direction(p,0,&yymsp[-1].minor.yy200);}
2543 #line 2568 "pikchr.c"
2544 break;
2545 case 29: /* attribute ::= numproperty relexpr */
2546 #line 597 "pikchr.y"
2547 { pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy200); }
2548 #line 2573 "pikchr.c"
2549 break;
2550 case 30: /* attribute ::= dashproperty expr */
2551 #line 598 "pikchr.y"
2552 { pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy265); }
2553 #line 2578 "pikchr.c"
2554 break;
2555 case 31: /* attribute ::= dashproperty */
2556 #line 599 "pikchr.y"
2557 { pik_set_dashed(p,&yymsp[0].minor.yy0,0); }
2558 #line 2583 "pikchr.c"
2559 break;
2560 case 32: /* attribute ::= colorproperty rvalue */
2561 #line 600 "pikchr.y"
2562 { pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy265); }
2563 #line 2588 "pikchr.c"
2564 break;
2565 case 33: /* attribute ::= go direction optrelexpr */
2566 #line 601 "pikchr.y"
2567 { pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy200);}
2568 #line 2593 "pikchr.c"
2569 break;
2570 case 34: /* attribute ::= go direction even position */
2571 #line 602 "pikchr.y"
2572 {pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy43);}
2573 #line 2598 "pikchr.c"
2574 break;
2575 case 35: /* attribute ::= CLOSE */
2576 #line 603 "pikchr.y"
2577 { pik_close_path(p,&yymsp[0].minor.yy0); }
2578 #line 2603 "pikchr.c"
2579 break;
2580 case 36: /* attribute ::= CHOP */
2581 #line 604 "pikchr.y"
2582 { p->cur->bChop = 1; }
2583 #line 2608 "pikchr.c"
2584 break;
2585 case 37: /* attribute ::= FROM position */
2586 #line 605 "pikchr.y"
2587 { pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy43); }
2588 #line 2613 "pikchr.c"
2589 break;
2590 case 38: /* attribute ::= TO position */
2591 #line 606 "pikchr.y"
2592 { pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy43); }
2593 #line 2618 "pikchr.c"
2594 break;
2595 case 39: /* attribute ::= THEN */
2596 #line 607 "pikchr.y"
2597 { pik_then(p, &yymsp[0].minor.yy0, p->cur); }
2598 #line 2623 "pikchr.c"
2599 break;
2600 case 40: /* attribute ::= THEN optrelexpr HEADING expr */
2601 case 42: /* attribute ::= GO optrelexpr HEADING expr */ yytestcase(yyruleno==42);
2602 #line 609 "pikchr.y"
2603 {pik_move_hdg(p,&yymsp[-2].minor.yy200,&yymsp[-1].minor.yy0,yymsp[0].minor.yy265,0,&yymsp[-3].minor.yy0);}
2604 #line 2629 "pikchr.c"
2605 break;
2606 case 41: /* attribute ::= THEN optrelexpr EDGEPT */
2607 case 43: /* attribute ::= GO optrelexpr EDGEPT */ yytestcase(yyruleno==43);
2608 #line 610 "pikchr.y"
2609 {pik_move_hdg(p,&yymsp[-1].minor.yy200,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);}
2610 #line 2635 "pikchr.c"
2611 break;
2612 case 44: /* attribute ::= AT position */
2613 #line 615 "pikchr.y"
2614 { pik_set_at(p,0,&yymsp[0].minor.yy43,&yymsp[-1].minor.yy0); }
2615 #line 2640 "pikchr.c"
2616 break;
2617 case 45: /* attribute ::= SAME */
2618 #line 617 "pikchr.y"
2619 {pik_same(p,0,&yymsp[0].minor.yy0);}
2620 #line 2645 "pikchr.c"
2621 break;
2622 case 46: /* attribute ::= SAME AS object */
2623 #line 618 "pikchr.y"
2624 {pik_same(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);}
2625 #line 2650 "pikchr.c"
2626 break;
2627 case 47: /* attribute ::= STRING textposition */
2628 #line 619 "pikchr.y"
2629 {pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy196);}
2630 #line 2655 "pikchr.c"
2631 break;
2632 case 48: /* attribute ::= FIT */
2633 #line 620 "pikchr.y"
2634 {pik_size_to_fit(p,&yymsp[0].minor.yy0,3); }
2635 #line 2660 "pikchr.c"
2636 break;
2637 case 49: /* attribute ::= BEHIND object */
2638 #line 621 "pikchr.y"
2639 {pik_behind(p,yymsp[0].minor.yy38);}
2640 #line 2665 "pikchr.c"
2641 break;
2642 case 50: /* withclause ::= DOT_E edge AT position */
2643 case 51: /* withclause ::= edge AT position */ yytestcase(yyruleno==51);
2644 #line 629 "pikchr.y"
2645 { pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy43,&yymsp[-1].minor.yy0); }
2646 #line 2671 "pikchr.c"
2647 break;
2648 case 52: /* numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */
2649 #line 633 "pikchr.y"
2650 {yylhsminor.yy0 = yymsp[0].minor.yy0;}
2651 #line 2676 "pikchr.c"
2652 yymsp[0].minor.yy0 = yylhsminor.yy0;
2653 break;
2654 case 53: /* boolproperty ::= CW */
2655 #line 644 "pikchr.y"
2656 {p->cur->cw = 1;}
2657 #line 2682 "pikchr.c"
2658 break;
2659 case 54: /* boolproperty ::= CCW */
2660 #line 645 "pikchr.y"
2661 {p->cur->cw = 0;}
2662 #line 2687 "pikchr.c"
2663 break;
2664 case 55: /* boolproperty ::= LARROW */
2665 #line 646 "pikchr.y"
2666 {p->cur->larrow=1; p->cur->rarrow=0; }
2667 #line 2692 "pikchr.c"
2668 break;
2669 case 56: /* boolproperty ::= RARROW */
2670 #line 647 "pikchr.y"
2671 {p->cur->larrow=0; p->cur->rarrow=1; }
2672 #line 2697 "pikchr.c"
2673 break;
2674 case 57: /* boolproperty ::= LRARROW */
2675 #line 648 "pikchr.y"
2676 {p->cur->larrow=1; p->cur->rarrow=1; }
2677 #line 2702 "pikchr.c"
2678 break;
2679 case 58: /* boolproperty ::= INVIS */
2680 #line 649 "pikchr.y"
2681 {p->cur->sw = 0.0;}
2682 #line 2707 "pikchr.c"
2683 break;
2684 case 59: /* boolproperty ::= THICK */
2685 #line 650 "pikchr.y"
2686 {p->cur->sw *= 1.5;}
2687 #line 2712 "pikchr.c"
2688 break;
2689 case 60: /* boolproperty ::= THIN */
2690 #line 651 "pikchr.y"
2691 {p->cur->sw *= 0.67;}
2692 #line 2717 "pikchr.c"
2693 break;
2694 case 61: /* boolproperty ::= SOLID */
2695 #line 652 "pikchr.y"
2696 {p->cur->sw = pik_value(p,"thickness",9,0);
2697 p->cur->dotted = p->cur->dashed = 0.0;}
2698 #line 2723 "pikchr.c"
2699 break;
2700 case 62: /* textposition ::= */
2701 #line 655 "pikchr.y"
2702 {yymsp[1].minor.yy196 = 0;}
2703 #line 2728 "pikchr.c"
2704 break;
2705 case 63: /* textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|ALIGNED|BIG|SMALL */
2706 #line 658 "pikchr.y"
2707 {yylhsminor.yy196 = pik_text_position(yymsp[-1].minor.yy196,&yymsp[0].minor.yy0);}
2708 #line 2733 "pikchr.c"
2709 yymsp[-1].minor.yy196 = yylhsminor.yy196;
2710 break;
2711 case 64: /* position ::= expr COMMA expr */
2712 #line 661 "pikchr.y"
2713 {yylhsminor.yy43.x=yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[0].minor.yy265;}
2714 #line 2739 "pikchr.c"
2715 yymsp[-2].minor.yy43 = yylhsminor.yy43;
2716 break;
2717 case 65: /* position ::= place PLUS expr COMMA expr */
2718 #line 663 "pikchr.y"
2719 {yylhsminor.yy43.x=yymsp[-4].minor.yy43.x+yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[-4].minor.yy43.y+yymsp[0].minor.yy265;}
2720 #line 2745 "pikchr.c"
2721 yymsp[-4].minor.yy43 = yylhsminor.yy43;
2722 break;
2723 case 66: /* position ::= place MINUS expr COMMA expr */
2724 #line 664 "pikchr.y"
2725 {yylhsminor.yy43.x=yymsp[-4].minor.yy43.x-yymsp[-2].minor.yy265; yylhsminor.yy43.y=yymsp[-4].minor.yy43.y-yymsp[0].minor.yy265;}
2726 #line 2751 "pikchr.c"
2727 yymsp[-4].minor.yy43 = yylhsminor.yy43;
2728 break;
2729 case 67: /* position ::= place PLUS LP expr COMMA expr RP */
2730 #line 666 "pikchr.y"
2731 {yylhsminor.yy43.x=yymsp[-6].minor.yy43.x+yymsp[-3].minor.yy265; yylhsminor.yy43.y=yymsp[-6].minor.yy43.y+yymsp[-1].minor.yy265;}
2732 #line 2757 "pikchr.c"
2733 yymsp[-6].minor.yy43 = yylhsminor.yy43;
2734 break;
2735 case 68: /* position ::= place MINUS LP expr COMMA expr RP */
 
 
 
 
 
2736 #line 668 "pikchr.y"
2737 {yylhsminor.yy43.x=yymsp[-6].minor.yy43.x-yymsp[-3].minor.yy265; yylhsminor.yy43.y=yymsp[-6].minor.yy43.y-yymsp[-1].minor.yy265;}
2738 #line 2763 "pikchr.c"
2739 yymsp[-6].minor.yy43 = yylhsminor.yy43;
2740 break;
2741 case 69: /* position ::= LP position COMMA position RP */
2742 #line 669 "pikchr.y"
2743 {yymsp[-4].minor.yy43.x=yymsp[-3].minor.yy43.x; yymsp[-4].minor.yy43.y=yymsp[-1].minor.yy43.y;}
2744 #line 2769 "pikchr.c"
2745 break;
2746 case 70: /* position ::= LP position RP */
2747 #line 670 "pikchr.y"
2748 {yymsp[-2].minor.yy43=yymsp[-1].minor.yy43;}
2749 #line 2774 "pikchr.c"
 
2750 break;
2751 case 71: /* position ::= expr between position AND position */
2752 #line 672 "pikchr.y"
2753 {yylhsminor.yy43 = pik_position_between(yymsp[-4].minor.yy265,yymsp[-2].minor.yy43,yymsp[0].minor.yy43);}
2754 #line 2779 "pikchr.c"
2755 yymsp[-4].minor.yy43 = yylhsminor.yy43;
2756 break;
2757 case 72: /* position ::= expr LT position COMMA position GT */
 
 
 
 
 
 
2758 #line 674 "pikchr.y"
2759 {yylhsminor.yy43 = pik_position_between(yymsp[-5].minor.yy265,yymsp[-3].minor.yy43,yymsp[-1].minor.yy43);}
2760 #line 2785 "pikchr.c"
2761 yymsp[-5].minor.yy43 = yylhsminor.yy43;
2762 break;
2763 case 73: /* position ::= expr ABOVE position */
2764 #line 675 "pikchr.y"
2765 {yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.y += yymsp[-2].minor.yy265;}
2766 #line 2791 "pikchr.c"
2767 yymsp[-2].minor.yy43 = yylhsminor.yy43;
2768 break;
2769 case 74: /* position ::= expr BELOW position */
2770 #line 676 "pikchr.y"
2771 {yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.y -= yymsp[-2].minor.yy265;}
2772 #line 2797 "pikchr.c"
2773 yymsp[-2].minor.yy43 = yylhsminor.yy43;
2774 break;
2775 case 75: /* position ::= expr LEFT OF position */
2776 #line 677 "pikchr.y"
2777 {yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.x -= yymsp[-3].minor.yy265;}
2778 #line 2803 "pikchr.c"
2779 yymsp[-3].minor.yy43 = yylhsminor.yy43;
2780 break;
2781 case 76: /* position ::= expr RIGHT OF position */
2782 #line 678 "pikchr.y"
2783 {yylhsminor.yy43=yymsp[0].minor.yy43; yylhsminor.yy43.x += yymsp[-3].minor.yy265;}
2784 #line 2809 "pikchr.c"
2785 yymsp[-3].minor.yy43 = yylhsminor.yy43;
2786 break;
2787 case 77: /* position ::= expr ON HEADING EDGEPT OF position */
2788 #line 680 "pikchr.y"
2789 {yylhsminor.yy43 = pik_position_at_hdg(yymsp[-5].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);}
2790 #line 2815 "pikchr.c"
2791 yymsp[-5].minor.yy43 = yylhsminor.yy43;
2792 break;
2793 case 78: /* position ::= expr HEADING EDGEPT OF position */
2794 #line 682 "pikchr.y"
2795 {yylhsminor.yy43 = pik_position_at_hdg(yymsp[-4].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);}
2796 #line 2821 "pikchr.c"
2797 yymsp[-4].minor.yy43 = yylhsminor.yy43;
2798 break;
2799 case 79: /* position ::= expr EDGEPT OF position */
2800 #line 684 "pikchr.y"
2801 {yylhsminor.yy43 = pik_position_at_hdg(yymsp[-3].minor.yy265,&yymsp[-2].minor.yy0,yymsp[0].minor.yy43);}
2802 #line 2827 "pikchr.c"
2803 yymsp[-3].minor.yy43 = yylhsminor.yy43;
2804 break;
2805 case 80: /* position ::= expr ON HEADING expr FROM position */
2806 #line 686 "pikchr.y"
2807 {yylhsminor.yy43 = pik_position_at_angle(yymsp[-5].minor.yy265,yymsp[-2].minor.yy265,yymsp[0].minor.yy43);}
2808 #line 2833 "pikchr.c"
2809 yymsp[-5].minor.yy43 = yylhsminor.yy43;
2810 break;
2811 case 81: /* position ::= expr HEADING expr FROM position */
2812 #line 688 "pikchr.y"
2813 {yylhsminor.yy43 = pik_position_at_angle(yymsp[-4].minor.yy265,yymsp[-2].minor.yy265,yymsp[0].minor.yy43);}
2814 #line 2839 "pikchr.c"
2815 yymsp[-4].minor.yy43 = yylhsminor.yy43;
2816 break;
2817 case 82: /* place ::= edge OF object */
 
 
 
 
 
 
2818 #line 700 "pikchr.y"
2819 {yylhsminor.yy43 = pik_place_of_elem(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);}
2820 #line 2845 "pikchr.c"
2821 yymsp[-2].minor.yy43 = yylhsminor.yy43;
2822 break;
2823 case 83: /* place2 ::= object */
2824 #line 701 "pikchr.y"
2825 {yylhsminor.yy43 = pik_place_of_elem(p,yymsp[0].minor.yy38,0);}
2826 #line 2851 "pikchr.c"
2827 yymsp[0].minor.yy43 = yylhsminor.yy43;
2828 break;
2829 case 84: /* place2 ::= object DOT_E edge */
2830 #line 702 "pikchr.y"
2831 {yylhsminor.yy43 = pik_place_of_elem(p,yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);}
2832 #line 2857 "pikchr.c"
2833 yymsp[-2].minor.yy43 = yylhsminor.yy43;
2834 break;
2835 case 85: /* place2 ::= NTH VERTEX OF object */
2836 #line 703 "pikchr.y"
2837 {yylhsminor.yy43 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy38);}
2838 #line 2863 "pikchr.c"
2839 yymsp[-3].minor.yy43 = yylhsminor.yy43;
2840 break;
2841 case 86: /* object ::= nth */
2842 #line 715 "pikchr.y"
2843 {yylhsminor.yy38 = pik_find_nth(p,0,&yymsp[0].minor.yy0);}
2844 #line 2869 "pikchr.c"
2845 yymsp[0].minor.yy38 = yylhsminor.yy38;
2846 break;
2847 case 87: /* object ::= nth OF|IN object */
2848 #line 716 "pikchr.y"
2849 {yylhsminor.yy38 = pik_find_nth(p,yymsp[0].minor.yy38,&yymsp[-2].minor.yy0);}
2850 #line 2875 "pikchr.c"
2851 yymsp[-2].minor.yy38 = yylhsminor.yy38;
2852 break;
2853 case 88: /* objectname ::= PLACENAME */
2854 #line 718 "pikchr.y"
2855 {yylhsminor.yy38 = pik_find_byname(p,0,&yymsp[0].minor.yy0);}
2856 #line 2881 "pikchr.c"
2857 yymsp[0].minor.yy38 = yylhsminor.yy38;
2858 break;
2859 case 89: /* objectname ::= objectname DOT_U PLACENAME */
2860 #line 720 "pikchr.y"
2861 {yylhsminor.yy38 = pik_find_byname(p,yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);}
2862 #line 2887 "pikchr.c"
2863 yymsp[-2].minor.yy38 = yylhsminor.yy38;
2864 break;
2865 case 90: /* nth ::= NTH CLASSNAME */
2866 #line 722 "pikchr.y"
2867 {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-1].minor.yy0); }
2868 #line 2893 "pikchr.c"
2869 yymsp[-1].minor.yy0 = yylhsminor.yy0;
2870 break;
2871 case 91: /* nth ::= NTH LAST CLASSNAME */
2872 #line 723 "pikchr.y"
2873 {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-2].minor.yy0); }
2874 #line 2899 "pikchr.c"
2875 yymsp[-2].minor.yy0 = yylhsminor.yy0;
2876 break;
2877 case 92: /* nth ::= LAST CLASSNAME */
2878 #line 724 "pikchr.y"
2879 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.eCode = -1;}
2880 #line 2905 "pikchr.c"
2881 break;
2882 case 93: /* nth ::= LAST */
2883 #line 725 "pikchr.y"
2884 {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -1;}
2885 #line 2910 "pikchr.c"
2886 yymsp[0].minor.yy0 = yylhsminor.yy0;
2887 break;
2888 case 94: /* nth ::= NTH LB RB */
2889 #line 726 "pikchr.y"
2890 {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-2].minor.yy0);}
2891 #line 2916 "pikchr.c"
2892 yymsp[-2].minor.yy0 = yylhsminor.yy0;
2893 break;
2894 case 95: /* nth ::= NTH LAST LB RB */
2895 #line 727 "pikchr.y"
2896 {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-3].minor.yy0);}
2897 #line 2922 "pikchr.c"
2898 yymsp[-3].minor.yy0 = yylhsminor.yy0;
2899 break;
2900 case 96: /* nth ::= LAST LB RB */
2901 #line 728 "pikchr.y"
2902 {yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; }
2903 #line 2928 "pikchr.c"
2904 break;
2905 case 97: /* expr ::= expr PLUS expr */
2906 #line 730 "pikchr.y"
2907 {yylhsminor.yy265=yymsp[-2].minor.yy265+yymsp[0].minor.yy265;}
2908 #line 2933 "pikchr.c"
2909 yymsp[-2].minor.yy265 = yylhsminor.yy265;
2910 break;
2911 case 98: /* expr ::= expr MINUS expr */
2912 #line 731 "pikchr.y"
2913 {yylhsminor.yy265=yymsp[-2].minor.yy265-yymsp[0].minor.yy265;}
2914 #line 2939 "pikchr.c"
2915 yymsp[-2].minor.yy265 = yylhsminor.yy265;
2916 break;
2917 case 99: /* expr ::= expr STAR expr */
2918 #line 732 "pikchr.y"
2919 {yylhsminor.yy265=yymsp[-2].minor.yy265*yymsp[0].minor.yy265;}
2920 #line 2945 "pikchr.c"
2921 yymsp[-2].minor.yy265 = yylhsminor.yy265;
2922 break;
2923 case 100: /* expr ::= expr SLASH expr */
2924 #line 733 "pikchr.y"
2925 {
2926 if( yymsp[0].minor.yy265==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy265 = 0.0; }
2927 else{ yylhsminor.yy265 = yymsp[-2].minor.yy265/yymsp[0].minor.yy265; }
2928 }
2929 #line 2954 "pikchr.c"
2930 yymsp[-2].minor.yy265 = yylhsminor.yy265;
2931 break;
2932 case 101: /* expr ::= MINUS expr */
2933 #line 737 "pikchr.y"
2934 {yymsp[-1].minor.yy265=-yymsp[0].minor.yy265;}
2935 #line 2960 "pikchr.c"
2936 break;
2937 case 102: /* expr ::= PLUS expr */
 
 
 
 
 
 
 
 
 
 
2938 #line 738 "pikchr.y"
2939 {yymsp[-1].minor.yy265=yymsp[0].minor.yy265;}
2940 #line 2965 "pikchr.c"
2941 break;
2942 case 103: /* expr ::= LP expr RP */
2943 #line 739 "pikchr.y"
2944 {yymsp[-2].minor.yy265=yymsp[-1].minor.yy265;}
2945 #line 2970 "pikchr.c"
 
2946 break;
2947 case 104: /* expr ::= LP FILL|COLOR|THICKNESS RP */
2948 #line 740 "pikchr.y"
2949 {yymsp[-2].minor.yy265=pik_get_var(p,&yymsp[-1].minor.yy0);}
2950 #line 2975 "pikchr.c"
 
2951 break;
2952 case 105: /* expr ::= NUMBER */
2953 #line 741 "pikchr.y"
2954 {yylhsminor.yy265=pik_atof(&yymsp[0].minor.yy0);}
2955 #line 2980 "pikchr.c"
2956 yymsp[0].minor.yy265 = yylhsminor.yy265;
2957 break;
2958 case 106: /* expr ::= ID */
2959 #line 742 "pikchr.y"
2960 {yylhsminor.yy265=pik_get_var(p,&yymsp[0].minor.yy0);}
2961 #line 2986 "pikchr.c"
2962 yymsp[0].minor.yy265 = yylhsminor.yy265;
2963 break;
2964 case 107: /* expr ::= FUNC1 LP expr RP */
2965 #line 743 "pikchr.y"
2966 {yylhsminor.yy265 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy265,0.0);}
2967 #line 2992 "pikchr.c"
2968 yymsp[-3].minor.yy265 = yylhsminor.yy265;
2969 break;
2970 case 108: /* expr ::= FUNC2 LP expr COMMA expr RP */
2971 #line 744 "pikchr.y"
2972 {yylhsminor.yy265 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy265,yymsp[-1].minor.yy265);}
2973 #line 2998 "pikchr.c"
2974 yymsp[-5].minor.yy265 = yylhsminor.yy265;
2975 break;
2976 case 109: /* expr ::= DIST LP position COMMA position RP */
2977 #line 745 "pikchr.y"
2978 {yymsp[-5].minor.yy265 = pik_dist(&yymsp[-3].minor.yy43,&yymsp[-1].minor.yy43);}
2979 #line 3004 "pikchr.c"
 
2980 break;
2981 case 110: /* expr ::= place2 DOT_XY X */
 
 
2982 #line 746 "pikchr.y"
2983 {yylhsminor.yy265 = yymsp[-2].minor.yy43.x;}
2984 #line 3009 "pikchr.c"
2985 yymsp[-2].minor.yy265 = yylhsminor.yy265;
2986 break;
2987 case 111: /* expr ::= place2 DOT_XY Y */
2988 #line 747 "pikchr.y"
2989 {yylhsminor.yy265 = yymsp[-2].minor.yy43.y;}
2990 #line 3015 "pikchr.c"
2991 yymsp[-2].minor.yy265 = yylhsminor.yy265;
2992 break;
2993 case 112: /* expr ::= object DOT_L numproperty */
2994 case 113: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==113);
2995 case 114: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==114);
2996 #line 748 "pikchr.y"
2997 {yylhsminor.yy265=pik_property_of(yymsp[-2].minor.yy38,&yymsp[0].minor.yy0);}
2998 #line 3023 "pikchr.c"
2999 yymsp[-2].minor.yy265 = yylhsminor.yy265;
3000 break;
3001 default:
3002 /* (115) lvalue ::= ID */ yytestcase(yyruleno==115);
3003 /* (116) lvalue ::= FILL */ yytestcase(yyruleno==116);
3004 /* (117) lvalue ::= COLOR */ yytestcase(yyruleno==117);
3005 /* (118) lvalue ::= THICKNESS */ yytestcase(yyruleno==118);
3006 /* (119) rvalue ::= expr */ yytestcase(yyruleno==119);
3007 /* (120) print ::= PRINT */ yytestcase(yyruleno==120);
3008 /* (121) prlist ::= pritem (OPTIMIZED OUT) */ assert(yyruleno!=121);
3009 /* (122) prlist ::= prlist prsep pritem */ yytestcase(yyruleno==122);
3010 /* (123) direction ::= UP */ yytestcase(yyruleno==123);
3011 /* (124) direction ::= DOWN */ yytestcase(yyruleno==124);
3012 /* (125) direction ::= LEFT */ yytestcase(yyruleno==125);
3013 /* (126) direction ::= RIGHT */ yytestcase(yyruleno==126);
3014 /* (127) optrelexpr ::= relexpr (OPTIMIZED OUT) */ assert(yyruleno!=127);
3015 /* (128) attribute_list ::= alist */ yytestcase(yyruleno==128);
3016 /* (129) alist ::= */ yytestcase(yyruleno==129);
3017 /* (130) alist ::= alist attribute */ yytestcase(yyruleno==130);
3018 /* (131) attribute ::= boolproperty (OPTIMIZED OUT) */ assert(yyruleno!=131);
3019 /* (132) attribute ::= WITH withclause */ yytestcase(yyruleno==132);
3020 /* (133) go ::= GO */ yytestcase(yyruleno==133);
3021 /* (134) go ::= */ yytestcase(yyruleno==134);
3022 /* (135) even ::= UNTIL EVEN WITH */ yytestcase(yyruleno==135);
3023 /* (136) even ::= EVEN WITH */ yytestcase(yyruleno==136);
3024 /* (137) dashproperty ::= DOTTED */ yytestcase(yyruleno==137);
3025 /* (138) dashproperty ::= DASHED */ yytestcase(yyruleno==138);
3026 /* (139) colorproperty ::= FILL */ yytestcase(yyruleno==139);
3027 /* (140) colorproperty ::= COLOR */ yytestcase(yyruleno==140);
3028 /* (141) position ::= place */ yytestcase(yyruleno==141);
3029 /* (142) between ::= WAY BETWEEN */ yytestcase(yyruleno==142);
3030 /* (143) between ::= BETWEEN */ yytestcase(yyruleno==143);
3031 /* (144) between ::= OF THE WAY BETWEEN */ yytestcase(yyruleno==144);
3032 /* (145) place ::= place2 */ yytestcase(yyruleno==145);
3033 /* (146) edge ::= CENTER */ yytestcase(yyruleno==146);
3034 /* (147) edge ::= EDGEPT */ yytestcase(yyruleno==147);
3035 /* (148) edge ::= TOP */ yytestcase(yyruleno==148);
3036 /* (149) edge ::= BOTTOM */ yytestcase(yyruleno==149);
3037 /* (150) edge ::= START */ yytestcase(yyruleno==150);
3038 /* (151) edge ::= END */ yytestcase(yyruleno==151);
3039 /* (152) edge ::= RIGHT */ yytestcase(yyruleno==152);
3040 /* (153) edge ::= LEFT */ yytestcase(yyruleno==153);
3041 /* (154) object ::= objectname */ yytestcase(yyruleno==154);
3042 break;
3043 /********** End reduce actions ************************************************/
3044 };
3045 assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) );
3046 yygoto = yyRuleInfoLhs[yyruleno];
@@ -3083,11 +3104,11 @@
3104 pik_error(p, &TOKEN, "syntax error");
3105 }else{
3106 pik_error(p, 0, "syntax error");
3107 }
3108 UNUSED_PARAMETER(yymajor);
3109 #line 3134 "pikchr.c"
3110 /************ End %syntax_error code ******************************************/
3111 pik_parserARG_STORE /* Suppress warning about unused %extra_argument variable */
3112 pik_parserCTX_STORE
3113 }
3114
@@ -3316,11 +3337,11 @@
3337 #else
3338 (void)iToken;
3339 return 0;
3340 #endif
3341 }
3342 #line 753 "pikchr.y"
3343
3344
3345
3346 /* Chart of the 140 official HTML color names with their
3347 ** corresponding RGB value.
@@ -6859,10 +6880,11 @@
6880 { "s", 1, T_EDGEPT, 0, CP_S },
6881 { "same", 4, T_SAME, 0, 0 },
6882 { "se", 2, T_EDGEPT, 0, CP_SE },
6883 { "sin", 3, T_FUNC1, FN_SIN, 0 },
6884 { "small", 5, T_SMALL, 0, 0 },
6885 { "solid", 5, T_SOLID, 0, 0 },
6886 { "south", 5, T_EDGEPT, 0, CP_S },
6887 { "sqrt", 4, T_FUNC1, FN_SQRT, 0 },
6888 { "start", 5, T_START, 0, CP_START },
6889 { "sw", 2, T_EDGEPT, 0, CP_SW },
6890 { "t", 1, T_TOP, 0, CP_N },
@@ -7600,6 +7622,6 @@
7622 }
7623 return 0;
7624 }
7625 #endif /* PIKCHR_SHELL */
7626
7627 #line 7652 "pikchr.c"
7628

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button