| | @@ -1,8 +1,47 @@ |
| 1 | 1 | /* This file is automatically generated by Lemon from input grammar |
| 2 | 2 | ** source file "pikchr.y". |
| 3 | 3 | */ |
| 4 | +/* |
| 5 | +** 2000-05-29 |
| 6 | +** |
| 7 | +** The author disclaims copyright to this source code. In place of |
| 8 | +** a legal notice, here is a blessing: |
| 9 | +** |
| 10 | +** May you do good and not evil. |
| 11 | +** May you find forgiveness for yourself and forgive others. |
| 12 | +** May you share freely, never taking more than you give. |
| 13 | +** |
| 14 | +************************************************************************* |
| 15 | +** Driver template for the LEMON parser generator. |
| 16 | +** |
| 17 | +** The "lemon" program processes an LALR(1) input grammar file, then uses |
| 18 | +** this template to construct a parser. The "lemon" program inserts text |
| 19 | +** at each "%%" line. Also, any "P-a-r-s-e" identifier prefix (without the |
| 20 | +** interstitial "-" characters) contained in this template is changed into |
| 21 | +** the value of the %name directive from the grammar. Otherwise, the content |
| 22 | +** of this template is copied straight through into the generate parser |
| 23 | +** source file. |
| 24 | +** |
| 25 | +** The following is the concatenation of all %include directives from the |
| 26 | +** input grammar file: |
| 27 | +*/ |
| 28 | +/************ Begin %include sections from the grammar ************************/ |
| 29 | +#line 1 "VERSION.h" |
| 30 | +#define MANIFEST_UUID "8a43b020141f772a0ac45291a7fd73041d2efba5e3665c6bd2f334ad9b2e9845" |
| 31 | +#define MANIFEST_VERSION "[8a43b02014]" |
| 32 | +#define MANIFEST_DATE "2025-03-19 16:19:43" |
| 33 | +#define MANIFEST_YEAR "2025" |
| 34 | +#define MANIFEST_ISODATE "20250319161943" |
| 35 | +#define MANIFEST_NUMERIC_DATE 20250319 |
| 36 | +#define MANIFEST_NUMERIC_TIME 161943 |
| 37 | +#define RELEASE_VERSION "1.0" |
| 38 | +#define RELEASE_VERSION_NUMBER 10000 |
| 39 | +#define RELEASE_RESOURCE_VERSION 1,0,0,0 |
| 40 | +#define COMPILER "gcc-13.3.0" |
| 41 | +#line 2 "pikchr.y" |
| 42 | + |
| 4 | 43 | /* |
| 5 | 44 | ** Zero-Clause BSD license: |
| 6 | 45 | ** |
| 7 | 46 | ** Copyright (C) 2020-09-01 by D. Richard Hipp <[email protected]> |
| 8 | 47 | ** |
| | @@ -125,10 +164,22 @@ |
| 125 | 164 | #include <assert.h> |
| 126 | 165 | #define count(X) (sizeof(X)/sizeof(X[0])) |
| 127 | 166 | #ifndef M_PI |
| 128 | 167 | # define M_PI 3.1415926535897932385 |
| 129 | 168 | #endif |
| 169 | + |
| 170 | +/* |
| 171 | +** Typesafe version of ctype.h macros. Cygwin requires this, I'm told. |
| 172 | +*/ |
| 173 | +#define IsUpper(X) isupper((unsigned char)(X)) |
| 174 | +#define IsLower(X) islower((unsigned char)(X)) |
| 175 | +#define ToLower(X) tolower((unsigned char)(X)) |
| 176 | +#define IsDigit(X) isdigit((unsigned char)(X)) |
| 177 | +#define IsXDigit(X) isxdigit((unsigned char)(X)) |
| 178 | +#define IsSpace(X) isspace((unsigned char)(X)) |
| 179 | +#define IsAlnum(X) isalnum((unsigned char)(X)) |
| 180 | + |
| 130 | 181 | |
| 131 | 182 | /* Limit the number of tokens in a single script to avoid run-away |
| 132 | 183 | ** macro expansion attacks. See forum post |
| 133 | 184 | ** https://pikchr.org/home/forumpost/ef8684c6955a411a |
| 134 | 185 | */ |
| | @@ -474,11 +525,11 @@ |
| 474 | 525 | static void pik_bbox_addbox(PBox*,PBox*); |
| 475 | 526 | static void pik_bbox_add_xy(PBox*,PNum,PNum); |
| 476 | 527 | static void pik_bbox_addellipse(PBox*,PNum x,PNum y,PNum rx,PNum ry); |
| 477 | 528 | static void pik_add_txt(Pik*,PToken*,int); |
| 478 | 529 | static int pik_text_length(const PToken *pToken, const int isMonospace); |
| 479 | | -static void pik_size_to_fit(Pik*,PToken*,int); |
| 530 | +static void pik_size_to_fit(Pik*,PObj*,PToken*,int); |
| 480 | 531 | static int pik_text_position(int,PToken*); |
| 481 | 532 | static PNum pik_property_of(PObj*,PToken*); |
| 482 | 533 | static PNum pik_func(Pik*,PToken*,PNum,PNum); |
| 483 | 534 | static PPoint pik_position_between(PNum x, PPoint p1, PPoint p2); |
| 484 | 535 | static PPoint pik_position_at_angle(PNum dist, PNum r, PPoint pt); |
| | @@ -492,11 +543,11 @@ |
| 492 | 543 | static PObj *pik_position_assert(Pik*,PPoint*,PToken*,PPoint*); |
| 493 | 544 | static PNum pik_dist(PPoint*,PPoint*); |
| 494 | 545 | static void pik_add_macro(Pik*,PToken *pId,PToken *pCode); |
| 495 | 546 | |
| 496 | 547 | |
| 497 | | -#line 523 "pikchr.c" |
| 548 | +#line 549 "pikchr.c" |
| 498 | 549 | /**************** End of %include directives **********************************/ |
| 499 | 550 | /* These constants specify the various numeric values for terminal symbols. |
| 500 | 551 | ***************** Begin token definitions *************************************/ |
| 501 | 552 | #ifndef T_ID |
| 502 | 553 | #define T_ID 1 |
| | @@ -522,84 +573,85 @@ |
| 522 | 573 | #define T_COLOR 21 |
| 523 | 574 | #define T_THICKNESS 22 |
| 524 | 575 | #define T_PRINT 23 |
| 525 | 576 | #define T_STRING 24 |
| 526 | 577 | #define T_COMMA 25 |
| 527 | | -#define T_CLASSNAME 26 |
| 528 | | -#define T_LB 27 |
| 529 | | -#define T_RB 28 |
| 530 | | -#define T_UP 29 |
| 531 | | -#define T_DOWN 30 |
| 532 | | -#define T_LEFT 31 |
| 533 | | -#define T_RIGHT 32 |
| 534 | | -#define T_CLOSE 33 |
| 535 | | -#define T_CHOP 34 |
| 536 | | -#define T_FROM 35 |
| 537 | | -#define T_TO 36 |
| 538 | | -#define T_THEN 37 |
| 539 | | -#define T_HEADING 38 |
| 540 | | -#define T_GO 39 |
| 541 | | -#define T_AT 40 |
| 542 | | -#define T_WITH 41 |
| 543 | | -#define T_SAME 42 |
| 544 | | -#define T_AS 43 |
| 545 | | -#define T_FIT 44 |
| 546 | | -#define T_BEHIND 45 |
| 547 | | -#define T_UNTIL 46 |
| 548 | | -#define T_EVEN 47 |
| 549 | | -#define T_DOT_E 48 |
| 550 | | -#define T_HEIGHT 49 |
| 551 | | -#define T_WIDTH 50 |
| 552 | | -#define T_RADIUS 51 |
| 553 | | -#define T_DIAMETER 52 |
| 554 | | -#define T_DOTTED 53 |
| 555 | | -#define T_DASHED 54 |
| 556 | | -#define T_CW 55 |
| 557 | | -#define T_CCW 56 |
| 558 | | -#define T_LARROW 57 |
| 559 | | -#define T_RARROW 58 |
| 560 | | -#define T_LRARROW 59 |
| 561 | | -#define T_INVIS 60 |
| 562 | | -#define T_THICK 61 |
| 563 | | -#define T_THIN 62 |
| 564 | | -#define T_SOLID 63 |
| 565 | | -#define T_CENTER 64 |
| 566 | | -#define T_LJUST 65 |
| 567 | | -#define T_RJUST 66 |
| 568 | | -#define T_ABOVE 67 |
| 569 | | -#define T_BELOW 68 |
| 570 | | -#define T_ITALIC 69 |
| 571 | | -#define T_BOLD 70 |
| 572 | | -#define T_MONO 71 |
| 573 | | -#define T_ALIGNED 72 |
| 574 | | -#define T_BIG 73 |
| 575 | | -#define T_SMALL 74 |
| 576 | | -#define T_AND 75 |
| 577 | | -#define T_LT 76 |
| 578 | | -#define T_GT 77 |
| 579 | | -#define T_ON 78 |
| 580 | | -#define T_WAY 79 |
| 581 | | -#define T_BETWEEN 80 |
| 582 | | -#define T_THE 81 |
| 583 | | -#define T_NTH 82 |
| 584 | | -#define T_VERTEX 83 |
| 585 | | -#define T_TOP 84 |
| 586 | | -#define T_BOTTOM 85 |
| 587 | | -#define T_START 86 |
| 588 | | -#define T_END 87 |
| 589 | | -#define T_IN 88 |
| 590 | | -#define T_THIS 89 |
| 591 | | -#define T_DOT_U 90 |
| 592 | | -#define T_LAST 91 |
| 593 | | -#define T_NUMBER 92 |
| 594 | | -#define T_FUNC1 93 |
| 595 | | -#define T_FUNC2 94 |
| 596 | | -#define T_DIST 95 |
| 597 | | -#define T_DOT_XY 96 |
| 598 | | -#define T_X 97 |
| 599 | | -#define T_Y 98 |
| 600 | | -#define T_DOT_L 99 |
| 578 | +#define T_ISODATE 26 |
| 579 | +#define T_CLASSNAME 27 |
| 580 | +#define T_LB 28 |
| 581 | +#define T_RB 29 |
| 582 | +#define T_UP 30 |
| 583 | +#define T_DOWN 31 |
| 584 | +#define T_LEFT 32 |
| 585 | +#define T_RIGHT 33 |
| 586 | +#define T_CLOSE 34 |
| 587 | +#define T_CHOP 35 |
| 588 | +#define T_FROM 36 |
| 589 | +#define T_TO 37 |
| 590 | +#define T_THEN 38 |
| 591 | +#define T_HEADING 39 |
| 592 | +#define T_GO 40 |
| 593 | +#define T_AT 41 |
| 594 | +#define T_WITH 42 |
| 595 | +#define T_SAME 43 |
| 596 | +#define T_AS 44 |
| 597 | +#define T_FIT 45 |
| 598 | +#define T_BEHIND 46 |
| 599 | +#define T_UNTIL 47 |
| 600 | +#define T_EVEN 48 |
| 601 | +#define T_DOT_E 49 |
| 602 | +#define T_HEIGHT 50 |
| 603 | +#define T_WIDTH 51 |
| 604 | +#define T_RADIUS 52 |
| 605 | +#define T_DIAMETER 53 |
| 606 | +#define T_DOTTED 54 |
| 607 | +#define T_DASHED 55 |
| 608 | +#define T_CW 56 |
| 609 | +#define T_CCW 57 |
| 610 | +#define T_LARROW 58 |
| 611 | +#define T_RARROW 59 |
| 612 | +#define T_LRARROW 60 |
| 613 | +#define T_INVIS 61 |
| 614 | +#define T_THICK 62 |
| 615 | +#define T_THIN 63 |
| 616 | +#define T_SOLID 64 |
| 617 | +#define T_CENTER 65 |
| 618 | +#define T_LJUST 66 |
| 619 | +#define T_RJUST 67 |
| 620 | +#define T_ABOVE 68 |
| 621 | +#define T_BELOW 69 |
| 622 | +#define T_ITALIC 70 |
| 623 | +#define T_BOLD 71 |
| 624 | +#define T_MONO 72 |
| 625 | +#define T_ALIGNED 73 |
| 626 | +#define T_BIG 74 |
| 627 | +#define T_SMALL 75 |
| 628 | +#define T_AND 76 |
| 629 | +#define T_LT 77 |
| 630 | +#define T_GT 78 |
| 631 | +#define T_ON 79 |
| 632 | +#define T_WAY 80 |
| 633 | +#define T_BETWEEN 81 |
| 634 | +#define T_THE 82 |
| 635 | +#define T_NTH 83 |
| 636 | +#define T_VERTEX 84 |
| 637 | +#define T_TOP 85 |
| 638 | +#define T_BOTTOM 86 |
| 639 | +#define T_START 87 |
| 640 | +#define T_END 88 |
| 641 | +#define T_IN 89 |
| 642 | +#define T_THIS 90 |
| 643 | +#define T_DOT_U 91 |
| 644 | +#define T_LAST 92 |
| 645 | +#define T_NUMBER 93 |
| 646 | +#define T_FUNC1 94 |
| 647 | +#define T_FUNC2 95 |
| 648 | +#define T_DIST 96 |
| 649 | +#define T_DOT_XY 97 |
| 650 | +#define T_X 98 |
| 651 | +#define T_Y 99 |
| 652 | +#define T_DOT_L 100 |
| 601 | 653 | #endif |
| 602 | 654 | /**************** End token definitions ***************************************/ |
| 603 | 655 | |
| 604 | 656 | /* The next sections is a series of control #defines. |
| 605 | 657 | ** various aspects of the generated parser. |
| | @@ -660,22 +712,22 @@ |
| 660 | 712 | #ifndef INTERFACE |
| 661 | 713 | # define INTERFACE 1 |
| 662 | 714 | #endif |
| 663 | 715 | /************* Begin control #defines *****************************************/ |
| 664 | 716 | #define YYCODETYPE unsigned char |
| 665 | | -#define YYNOCODE 136 |
| 717 | +#define YYNOCODE 138 |
| 666 | 718 | #define YYACTIONTYPE unsigned short int |
| 667 | 719 | #define pik_parserTOKENTYPE PToken |
| 668 | 720 | typedef union { |
| 669 | 721 | int yyinit; |
| 670 | 722 | pik_parserTOKENTYPE yy0; |
| 671 | | - PNum yy21; |
| 672 | | - PPoint yy63; |
| 673 | | - PRel yy72; |
| 674 | | - PObj* yy162; |
| 675 | | - short int yy188; |
| 676 | | - PList* yy235; |
| 723 | + PList* yy23; |
| 724 | + PRel yy28; |
| 725 | + PObj* yy54; |
| 726 | + PNum yy129; |
| 727 | + PPoint yy187; |
| 728 | + short int yy272; |
| 677 | 729 | } YYMINORTYPE; |
| 678 | 730 | #ifndef YYSTACKDEPTH |
| 679 | 731 | #define YYSTACKDEPTH 100 |
| 680 | 732 | #endif |
| 681 | 733 | #define pik_parserARG_SDECL |
| | @@ -693,21 +745,21 @@ |
| 693 | 745 | #define pik_parserCTX_STORE yypParser->p=p; |
| 694 | 746 | #define YYFALLBACK 1 |
| 695 | 747 | #define YYNSTATE 164 |
| 696 | 748 | #define YYNRULE 156 |
| 697 | 749 | #define YYNRULE_WITH_ACTION 116 |
| 698 | | -#define YYNTOKEN 100 |
| 750 | +#define YYNTOKEN 101 |
| 699 | 751 | #define YY_MAX_SHIFT 163 |
| 700 | 752 | #define YY_MIN_SHIFTREDUCE 287 |
| 701 | 753 | #define YY_MAX_SHIFTREDUCE 442 |
| 702 | 754 | #define YY_ERROR_ACTION 443 |
| 703 | 755 | #define YY_ACCEPT_ACTION 444 |
| 704 | 756 | #define YY_NO_ACTION 445 |
| 705 | 757 | #define YY_MIN_REDUCE 446 |
| 706 | 758 | #define YY_MAX_REDUCE 601 |
| 707 | | -#define YY_MIN_DSTRCTR 100 |
| 708 | | -#define YY_MAX_DSTRCTR 103 |
| 759 | +#define YY_MIN_DSTRCTR 101 |
| 760 | +#define YY_MAX_DSTRCTR 104 |
| 709 | 761 | /************* End control #defines *******************************************/ |
| 710 | 762 | #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) |
| 711 | 763 | |
| 712 | 764 | /* Define the yytestcase() macro to be a no-op if is not already defined |
| 713 | 765 | ** otherwise. |
| | @@ -786,324 +838,322 @@ |
| 786 | 838 | ** yy_reduce_ofst[] For each state, the offset into yy_action for |
| 787 | 839 | ** shifting non-terminals after a reduce. |
| 788 | 840 | ** yy_default[] Default action for each state. |
| 789 | 841 | ** |
| 790 | 842 | *********** Begin parsing tables **********************************************/ |
| 791 | | -#define YY_ACTTAB_COUNT (1313) |
| 843 | +#define YY_ACTTAB_COUNT (1305) |
| 792 | 844 | static const YYACTIONTYPE yy_action[] = { |
| 793 | 845 | /* 0 */ 575, 495, 161, 119, 25, 452, 29, 74, 129, 148, |
| 794 | | - /* 10 */ 575, 492, 161, 119, 453, 113, 120, 161, 119, 530, |
| 795 | | - /* 20 */ 427, 428, 339, 559, 81, 30, 560, 561, 575, 64, |
| 796 | | - /* 30 */ 63, 62, 61, 322, 323, 9, 8, 33, 149, 32, |
| 797 | | - /* 40 */ 7, 71, 127, 38, 335, 66, 48, 37, 28, 339, |
| 798 | | - /* 50 */ 339, 339, 339, 425, 426, 340, 341, 342, 343, 344, |
| 799 | | - /* 60 */ 345, 346, 347, 348, 474, 528, 161, 119, 577, 77, |
| 800 | | - /* 70 */ 577, 73, 306, 148, 474, 533, 161, 119, 112, 113, |
| 801 | | - /* 80 */ 120, 161, 119, 128, 427, 428, 339, 31, 81, 531, |
| 802 | | - /* 90 */ 161, 119, 474, 35, 330, 378, 158, 322, 323, 9, |
| 803 | | - /* 100 */ 8, 33, 149, 32, 7, 71, 127, 328, 335, 66, |
| 804 | | - /* 110 */ 579, 378, 158, 339, 339, 339, 339, 425, 426, 340, |
| 805 | | - /* 120 */ 341, 342, 343, 344, 345, 346, 347, 348, 394, 435, |
| 806 | | - /* 130 */ 46, 59, 60, 64, 63, 62, 61, 357, 36, 376, |
| 807 | | - /* 140 */ 54, 51, 2, 47, 403, 13, 297, 411, 412, 413, |
| 808 | | - /* 150 */ 414, 80, 162, 308, 79, 133, 310, 126, 441, 440, |
| 809 | | - /* 160 */ 118, 123, 83, 404, 405, 406, 408, 80, 84, 308, |
| 810 | | - /* 170 */ 79, 299, 411, 412, 413, 414, 118, 69, 350, 350, |
| 811 | | - /* 180 */ 350, 350, 350, 350, 350, 350, 350, 350, 350, 62, |
| 812 | | - /* 190 */ 61, 434, 64, 63, 62, 61, 313, 398, 399, 427, |
| 813 | | - /* 200 */ 428, 339, 380, 157, 64, 63, 62, 61, 122, 106, |
| 814 | | - /* 210 */ 535, 436, 437, 438, 439, 298, 375, 391, 117, 393, |
| 815 | | - /* 220 */ 155, 154, 153, 394, 435, 49, 59, 60, 339, 339, |
| 816 | | - /* 230 */ 339, 339, 425, 426, 376, 3, 4, 2, 64, 63, |
| 817 | | - /* 240 */ 62, 61, 156, 156, 156, 394, 379, 159, 59, 60, |
| 818 | | - /* 250 */ 76, 67, 535, 441, 440, 5, 102, 6, 535, 42, |
| 819 | | - /* 260 */ 131, 535, 69, 107, 301, 302, 303, 394, 305, 15, |
| 820 | | - /* 270 */ 59, 60, 120, 161, 119, 446, 463, 424, 376, 423, |
| 821 | | - /* 280 */ 1, 42, 397, 78, 78, 36, 434, 11, 394, 435, |
| 822 | | - /* 290 */ 356, 59, 60, 12, 152, 139, 432, 14, 16, 376, |
| 823 | | - /* 300 */ 18, 65, 2, 138, 106, 430, 436, 437, 438, 439, |
| 824 | | - /* 310 */ 44, 375, 19, 117, 393, 155, 154, 153, 441, 440, |
| 825 | | - /* 320 */ 142, 140, 64, 63, 62, 61, 106, 20, 68, 376, |
| 826 | | - /* 330 */ 359, 107, 23, 375, 45, 117, 393, 155, 154, 153, |
| 827 | | - /* 340 */ 120, 161, 119, 55, 463, 114, 26, 57, 106, 147, |
| 828 | | - /* 350 */ 146, 434, 569, 58, 392, 375, 43, 117, 393, 155, |
| 829 | | - /* 360 */ 154, 153, 152, 384, 64, 63, 62, 61, 382, 106, |
| 830 | | - /* 370 */ 383, 436, 437, 438, 439, 377, 375, 70, 117, 393, |
| 831 | | - /* 380 */ 155, 154, 153, 160, 39, 22, 21, 445, 142, 140, |
| 832 | | - /* 390 */ 64, 63, 62, 61, 24, 17, 145, 141, 431, 108, |
| 833 | | - /* 400 */ 445, 445, 445, 391, 445, 445, 375, 445, 117, 445, |
| 834 | | - /* 410 */ 445, 55, 74, 445, 148, 445, 445, 147, 146, 124, |
| 835 | | - /* 420 */ 113, 120, 161, 119, 43, 445, 445, 142, 140, 64, |
| 836 | | - /* 430 */ 63, 62, 61, 445, 394, 445, 445, 59, 60, 64, |
| 837 | | - /* 440 */ 63, 62, 61, 149, 445, 376, 445, 445, 42, 445, |
| 838 | | - /* 450 */ 55, 445, 391, 22, 21, 445, 147, 146, 445, 445, |
| 839 | | - /* 460 */ 52, 445, 24, 43, 145, 141, 431, 394, 445, 445, |
| 840 | | - /* 470 */ 59, 60, 64, 63, 62, 61, 445, 445, 376, 132, |
| 841 | | - /* 480 */ 130, 42, 445, 445, 445, 355, 156, 156, 156, 445, |
| 842 | | - /* 490 */ 445, 445, 22, 21, 445, 394, 473, 445, 59, 60, |
| 843 | | - /* 500 */ 445, 24, 445, 145, 141, 431, 376, 445, 107, 42, |
| 844 | | - /* 510 */ 64, 63, 62, 61, 445, 106, 445, 120, 161, 119, |
| 845 | | - /* 520 */ 445, 478, 375, 354, 117, 393, 155, 154, 153, 445, |
| 846 | | - /* 530 */ 394, 143, 473, 59, 60, 64, 63, 62, 61, 152, |
| 847 | | - /* 540 */ 445, 376, 445, 445, 42, 445, 445, 445, 106, 64, |
| 848 | | - /* 550 */ 63, 62, 61, 445, 445, 375, 50, 117, 393, 155, |
| 849 | | - /* 560 */ 154, 153, 445, 394, 144, 445, 59, 60, 445, 445, |
| 850 | | - /* 570 */ 53, 72, 445, 148, 376, 445, 106, 42, 125, 113, |
| 851 | | - /* 580 */ 120, 161, 119, 375, 445, 117, 393, 155, 154, 153, |
| 852 | | - /* 590 */ 394, 445, 445, 59, 60, 445, 445, 445, 445, 445, |
| 853 | | - /* 600 */ 445, 102, 149, 445, 42, 445, 74, 445, 148, 445, |
| 854 | | - /* 610 */ 445, 106, 445, 497, 113, 120, 161, 119, 375, 445, |
| 855 | | - /* 620 */ 117, 393, 155, 154, 153, 394, 445, 445, 59, 60, |
| 856 | | - /* 630 */ 445, 445, 88, 445, 445, 445, 376, 149, 445, 40, |
| 857 | | - /* 640 */ 445, 120, 161, 119, 106, 445, 445, 435, 110, 110, |
| 858 | | - /* 650 */ 445, 375, 445, 117, 393, 155, 154, 153, 394, 445, |
| 859 | | - /* 660 */ 445, 59, 60, 152, 85, 445, 445, 445, 445, 376, |
| 860 | | - /* 670 */ 445, 106, 41, 120, 161, 119, 441, 440, 375, 445, |
| 861 | | - /* 680 */ 117, 393, 155, 154, 153, 448, 454, 29, 445, 445, |
| 862 | | - /* 690 */ 74, 450, 148, 75, 88, 152, 445, 496, 113, 120, |
| 863 | | - /* 700 */ 161, 119, 163, 120, 161, 119, 106, 27, 445, 434, |
| 864 | | - /* 710 */ 111, 111, 445, 375, 445, 117, 393, 155, 154, 153, |
| 865 | | - /* 720 */ 445, 149, 445, 445, 445, 152, 74, 445, 148, 436, |
| 866 | | - /* 730 */ 437, 438, 439, 490, 113, 120, 161, 119, 445, 106, |
| 867 | | - /* 740 */ 121, 447, 454, 29, 445, 445, 375, 450, 117, 393, |
| 868 | | - /* 750 */ 155, 154, 153, 445, 445, 445, 445, 149, 163, 74, |
| 869 | | - /* 760 */ 445, 148, 444, 27, 445, 445, 484, 113, 120, 161, |
| 870 | | - /* 770 */ 119, 445, 445, 445, 74, 445, 148, 445, 445, 445, |
| 871 | | - /* 780 */ 445, 483, 113, 120, 161, 119, 74, 445, 148, 86, |
| 872 | | - /* 790 */ 149, 445, 445, 480, 113, 120, 161, 119, 120, 161, |
| 873 | | - /* 800 */ 119, 445, 74, 445, 148, 149, 445, 445, 445, 134, |
| 874 | | - /* 810 */ 113, 120, 161, 119, 74, 445, 148, 149, 445, 445, |
| 875 | | - /* 820 */ 152, 517, 113, 120, 161, 119, 88, 64, 63, 62, |
| 876 | | - /* 830 */ 61, 445, 445, 149, 445, 120, 161, 119, 445, 74, |
| 877 | | - /* 840 */ 396, 148, 475, 445, 445, 149, 137, 113, 120, 161, |
| 878 | | - /* 850 */ 119, 74, 445, 148, 445, 445, 445, 152, 525, 113, |
| 879 | | - /* 860 */ 120, 161, 119, 445, 74, 445, 148, 445, 445, 445, |
| 880 | | - /* 870 */ 149, 527, 113, 120, 161, 119, 445, 445, 445, 74, |
| 881 | | - /* 880 */ 445, 148, 149, 445, 445, 445, 524, 113, 120, 161, |
| 882 | | - /* 890 */ 119, 74, 445, 148, 98, 149, 445, 445, 526, 113, |
| 883 | | - /* 900 */ 120, 161, 119, 120, 161, 119, 445, 74, 445, 148, |
| 884 | | - /* 910 */ 149, 445, 445, 445, 523, 113, 120, 161, 119, 74, |
| 885 | | - /* 920 */ 445, 148, 149, 445, 445, 152, 522, 113, 120, 161, |
| 886 | | - /* 930 */ 119, 89, 64, 63, 62, 61, 445, 445, 149, 445, |
| 887 | | - /* 940 */ 120, 161, 119, 445, 74, 395, 148, 445, 445, 445, |
| 888 | | - /* 950 */ 149, 521, 113, 120, 161, 119, 74, 445, 148, 445, |
| 889 | | - /* 960 */ 445, 445, 152, 520, 113, 120, 161, 119, 445, 74, |
| 890 | | - /* 970 */ 445, 148, 445, 445, 445, 149, 519, 113, 120, 161, |
| 891 | | - /* 980 */ 119, 445, 445, 445, 74, 445, 148, 149, 445, 445, |
| 892 | | - /* 990 */ 445, 150, 113, 120, 161, 119, 74, 445, 148, 90, |
| 893 | | - /* 1000 */ 149, 445, 445, 151, 113, 120, 161, 119, 120, 161, |
| 894 | | - /* 1010 */ 119, 445, 74, 445, 148, 149, 445, 435, 445, 136, |
| 895 | | - /* 1020 */ 113, 120, 161, 119, 74, 445, 148, 149, 445, 445, |
| 896 | | - /* 1030 */ 152, 135, 113, 120, 161, 119, 64, 63, 62, 61, |
| 897 | | - /* 1040 */ 445, 445, 445, 149, 445, 445, 441, 440, 445, 88, |
| 898 | | - /* 1050 */ 445, 445, 445, 445, 445, 149, 445, 56, 120, 161, |
| 899 | | - /* 1060 */ 119, 88, 445, 445, 10, 479, 479, 445, 445, 445, |
| 900 | | - /* 1070 */ 120, 161, 119, 445, 445, 445, 445, 82, 445, 434, |
| 901 | | - /* 1080 */ 152, 445, 445, 445, 466, 445, 34, 109, 447, 454, |
| 902 | | - /* 1090 */ 29, 445, 152, 445, 450, 445, 445, 445, 107, 436, |
| 903 | | - /* 1100 */ 437, 438, 439, 87, 445, 163, 445, 120, 161, 119, |
| 904 | | - /* 1110 */ 27, 451, 120, 161, 119, 99, 445, 64, 63, 62, |
| 905 | | - /* 1120 */ 61, 445, 100, 445, 120, 161, 119, 101, 445, 152, |
| 906 | | - /* 1130 */ 391, 120, 161, 119, 152, 445, 120, 161, 119, 91, |
| 907 | | - /* 1140 */ 445, 445, 445, 445, 445, 445, 152, 445, 120, 161, |
| 908 | | - /* 1150 */ 119, 103, 445, 152, 92, 445, 445, 445, 152, 445, |
| 909 | | - /* 1160 */ 120, 161, 119, 120, 161, 119, 93, 445, 445, 104, |
| 910 | | - /* 1170 */ 152, 445, 445, 445, 445, 120, 161, 119, 120, 161, |
| 911 | | - /* 1180 */ 119, 445, 152, 445, 94, 152, 445, 445, 445, 445, |
| 912 | | - /* 1190 */ 445, 445, 105, 120, 161, 119, 445, 152, 445, 95, |
| 913 | | - /* 1200 */ 152, 120, 161, 119, 445, 445, 445, 96, 120, 161, |
| 914 | | - /* 1210 */ 119, 445, 445, 445, 445, 152, 120, 161, 119, 445, |
| 915 | | - /* 1220 */ 445, 445, 445, 152, 445, 445, 445, 445, 445, 445, |
| 916 | | - /* 1230 */ 152, 97, 445, 445, 549, 445, 445, 548, 152, 445, |
| 917 | | - /* 1240 */ 120, 161, 119, 120, 161, 119, 120, 161, 119, 445, |
| 918 | | - /* 1250 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, |
| 919 | | - /* 1260 */ 445, 445, 152, 547, 445, 152, 546, 445, 152, 115, |
| 920 | | - /* 1270 */ 445, 445, 120, 161, 119, 120, 161, 119, 120, 161, |
| 921 | | - /* 1280 */ 119, 116, 445, 445, 445, 445, 445, 445, 445, 445, |
| 922 | | - /* 1290 */ 120, 161, 119, 445, 152, 445, 445, 152, 445, 445, |
| 923 | | - /* 1300 */ 152, 445, 445, 445, 445, 445, 445, 445, 445, 445, |
| 924 | | - /* 1310 */ 445, 445, 152, |
| 846 | + /* 10 */ 575, 64, 63, 62, 61, 453, 113, 120, 161, 119, |
| 847 | + /* 20 */ 427, 428, 339, 357, 81, 121, 447, 454, 29, 575, |
| 848 | + /* 30 */ 530, 13, 50, 450, 322, 323, 9, 8, 33, 149, |
| 849 | + /* 40 */ 32, 7, 71, 127, 163, 335, 66, 28, 444, 27, |
| 850 | + /* 50 */ 339, 339, 339, 339, 425, 426, 340, 341, 342, 343, |
| 851 | + /* 60 */ 344, 345, 346, 347, 348, 474, 64, 63, 62, 61, |
| 852 | + /* 70 */ 54, 51, 73, 306, 148, 474, 492, 161, 119, 297, |
| 853 | + /* 80 */ 112, 113, 120, 161, 119, 427, 428, 339, 30, 81, |
| 854 | + /* 90 */ 109, 447, 454, 29, 474, 528, 161, 119, 450, 322, |
| 855 | + /* 100 */ 323, 9, 8, 33, 149, 32, 7, 71, 127, 163, |
| 856 | + /* 110 */ 335, 66, 535, 36, 27, 339, 339, 339, 339, 425, |
| 857 | + /* 120 */ 426, 340, 341, 342, 343, 344, 345, 346, 347, 348, |
| 858 | + /* 130 */ 394, 435, 310, 59, 60, 64, 63, 62, 61, 313, |
| 859 | + /* 140 */ 74, 376, 148, 69, 2, 533, 161, 119, 124, 113, |
| 860 | + /* 150 */ 120, 161, 119, 80, 535, 31, 308, 79, 83, 107, |
| 861 | + /* 160 */ 535, 441, 440, 535, 394, 435, 299, 59, 60, 120, |
| 862 | + /* 170 */ 161, 119, 149, 463, 376, 376, 330, 84, 2, 122, |
| 863 | + /* 180 */ 78, 78, 38, 156, 156, 156, 48, 37, 559, 328, |
| 864 | + /* 190 */ 128, 152, 560, 561, 434, 441, 440, 350, 350, 350, |
| 865 | + /* 200 */ 350, 350, 350, 350, 350, 350, 350, 350, 577, 77, |
| 866 | + /* 210 */ 577, 35, 106, 46, 436, 437, 438, 439, 579, 375, |
| 867 | + /* 220 */ 298, 117, 393, 155, 154, 153, 47, 4, 434, 69, |
| 868 | + /* 230 */ 394, 435, 3, 59, 60, 411, 412, 413, 414, 398, |
| 869 | + /* 240 */ 399, 376, 62, 61, 2, 108, 106, 5, 436, 437, |
| 870 | + /* 250 */ 438, 439, 375, 375, 117, 117, 393, 155, 154, 153, |
| 871 | + /* 260 */ 76, 441, 440, 67, 6, 142, 140, 64, 63, 62, |
| 872 | + /* 270 */ 61, 380, 157, 424, 427, 428, 339, 379, 159, 45, |
| 873 | + /* 280 */ 423, 72, 131, 148, 531, 161, 119, 1, 55, 125, |
| 874 | + /* 290 */ 113, 120, 161, 119, 434, 147, 146, 64, 63, 62, |
| 875 | + /* 300 */ 61, 397, 43, 11, 339, 339, 339, 339, 425, 426, |
| 876 | + /* 310 */ 355, 65, 106, 149, 436, 437, 438, 439, 74, 375, |
| 877 | + /* 320 */ 148, 117, 393, 155, 154, 153, 497, 113, 120, 161, |
| 878 | + /* 330 */ 119, 22, 21, 12, 142, 140, 64, 63, 62, 61, |
| 879 | + /* 340 */ 24, 356, 145, 141, 431, 64, 63, 62, 61, 391, |
| 880 | + /* 350 */ 149, 448, 454, 29, 378, 158, 85, 55, 450, 394, |
| 881 | + /* 360 */ 432, 138, 59, 60, 147, 146, 120, 161, 119, 163, |
| 882 | + /* 370 */ 102, 43, 139, 42, 27, 430, 14, 15, 301, 302, |
| 883 | + /* 380 */ 303, 446, 305, 16, 44, 74, 18, 148, 152, 19, |
| 884 | + /* 390 */ 20, 36, 68, 496, 113, 120, 161, 119, 114, 359, |
| 885 | + /* 400 */ 22, 21, 23, 142, 140, 64, 63, 62, 61, 24, |
| 886 | + /* 410 */ 107, 145, 141, 431, 26, 57, 377, 149, 58, 118, |
| 887 | + /* 420 */ 120, 161, 119, 392, 463, 384, 55, 64, 63, 62, |
| 888 | + /* 430 */ 61, 382, 569, 147, 146, 160, 383, 435, 39, 70, |
| 889 | + /* 440 */ 43, 106, 152, 445, 445, 88, 445, 445, 375, 445, |
| 890 | + /* 450 */ 117, 393, 155, 154, 153, 120, 161, 119, 445, 17, |
| 891 | + /* 460 */ 445, 10, 479, 479, 445, 445, 435, 441, 440, 22, |
| 892 | + /* 470 */ 21, 445, 403, 64, 63, 62, 61, 152, 24, 445, |
| 893 | + /* 480 */ 145, 141, 431, 133, 75, 126, 354, 445, 445, 123, |
| 894 | + /* 490 */ 445, 404, 405, 406, 408, 80, 441, 440, 308, 79, |
| 895 | + /* 500 */ 434, 411, 412, 413, 414, 394, 445, 445, 59, 60, |
| 896 | + /* 510 */ 64, 63, 62, 61, 445, 445, 376, 445, 445, 42, |
| 897 | + /* 520 */ 436, 437, 438, 439, 156, 156, 156, 394, 445, 434, |
| 898 | + /* 530 */ 59, 60, 64, 63, 62, 61, 445, 445, 376, 445, |
| 899 | + /* 540 */ 445, 42, 445, 394, 473, 391, 59, 60, 445, 436, |
| 900 | + /* 550 */ 437, 438, 439, 49, 376, 445, 74, 42, 148, 445, |
| 901 | + /* 560 */ 88, 445, 445, 445, 490, 113, 120, 161, 119, 445, |
| 902 | + /* 570 */ 120, 161, 119, 132, 130, 394, 143, 475, 59, 60, |
| 903 | + /* 580 */ 445, 473, 64, 63, 62, 61, 376, 106, 149, 42, |
| 904 | + /* 590 */ 445, 445, 152, 445, 375, 391, 117, 393, 155, 154, |
| 905 | + /* 600 */ 153, 394, 144, 52, 59, 60, 445, 445, 445, 106, |
| 906 | + /* 610 */ 445, 445, 376, 445, 445, 42, 375, 445, 117, 393, |
| 907 | + /* 620 */ 155, 154, 153, 445, 445, 106, 64, 63, 62, 61, |
| 908 | + /* 630 */ 445, 445, 375, 445, 117, 393, 155, 154, 153, 394, |
| 909 | + /* 640 */ 445, 445, 59, 60, 88, 445, 445, 53, 445, 445, |
| 910 | + /* 650 */ 376, 445, 445, 42, 120, 161, 119, 106, 445, 445, |
| 911 | + /* 660 */ 445, 110, 110, 445, 375, 445, 117, 393, 155, 154, |
| 912 | + /* 670 */ 153, 394, 445, 445, 59, 60, 152, 107, 445, 445, |
| 913 | + /* 680 */ 445, 445, 102, 106, 445, 42, 445, 120, 161, 119, |
| 914 | + /* 690 */ 375, 451, 117, 393, 155, 154, 153, 394, 445, 445, |
| 915 | + /* 700 */ 59, 60, 64, 63, 62, 61, 445, 445, 376, 152, |
| 916 | + /* 710 */ 445, 40, 445, 394, 445, 396, 59, 60, 445, 445, |
| 917 | + /* 720 */ 445, 106, 445, 445, 376, 88, 445, 41, 375, 445, |
| 918 | + /* 730 */ 117, 393, 155, 154, 153, 120, 161, 119, 74, 445, |
| 919 | + /* 740 */ 148, 445, 111, 111, 107, 445, 484, 113, 120, 161, |
| 920 | + /* 750 */ 119, 445, 445, 106, 120, 161, 119, 152, 478, 445, |
| 921 | + /* 760 */ 375, 86, 117, 393, 155, 154, 153, 445, 445, 445, |
| 922 | + /* 770 */ 149, 120, 161, 119, 445, 445, 152, 445, 445, 106, |
| 923 | + /* 780 */ 445, 64, 63, 62, 61, 445, 375, 445, 117, 393, |
| 924 | + /* 790 */ 155, 154, 153, 152, 395, 106, 64, 63, 62, 61, |
| 925 | + /* 800 */ 98, 445, 375, 445, 117, 393, 155, 154, 153, 445, |
| 926 | + /* 810 */ 120, 161, 119, 445, 74, 445, 148, 56, 445, 74, |
| 927 | + /* 820 */ 445, 148, 483, 113, 120, 161, 119, 480, 113, 120, |
| 928 | + /* 830 */ 161, 119, 152, 74, 445, 148, 445, 89, 445, 445, |
| 929 | + /* 840 */ 445, 134, 113, 120, 161, 119, 149, 120, 161, 119, |
| 930 | + /* 850 */ 445, 149, 74, 445, 148, 445, 445, 445, 378, 158, |
| 931 | + /* 860 */ 517, 113, 120, 161, 119, 149, 74, 445, 148, 152, |
| 932 | + /* 870 */ 445, 74, 445, 148, 137, 113, 120, 161, 119, 525, |
| 933 | + /* 880 */ 113, 120, 161, 119, 149, 74, 445, 148, 64, 63, |
| 934 | + /* 890 */ 62, 61, 445, 527, 113, 120, 161, 119, 149, 445, |
| 935 | + /* 900 */ 445, 391, 445, 149, 445, 445, 445, 445, 445, 445, |
| 936 | + /* 910 */ 74, 445, 148, 445, 445, 162, 445, 149, 524, 113, |
| 937 | + /* 920 */ 120, 161, 119, 118, 445, 74, 445, 148, 445, 445, |
| 938 | + /* 930 */ 445, 445, 445, 526, 113, 120, 161, 119, 445, 74, |
| 939 | + /* 940 */ 445, 148, 149, 445, 445, 445, 445, 523, 113, 120, |
| 940 | + /* 950 */ 161, 119, 74, 445, 148, 445, 445, 149, 445, 445, |
| 941 | + /* 960 */ 522, 113, 120, 161, 119, 445, 74, 445, 148, 445, |
| 942 | + /* 970 */ 445, 149, 445, 445, 521, 113, 120, 161, 119, 74, |
| 943 | + /* 980 */ 445, 148, 445, 445, 149, 445, 445, 520, 113, 120, |
| 944 | + /* 990 */ 161, 119, 445, 74, 445, 148, 445, 445, 149, 445, |
| 945 | + /* 1000 */ 445, 519, 113, 120, 161, 119, 445, 445, 445, 445, |
| 946 | + /* 1010 */ 445, 149, 445, 445, 445, 445, 445, 445, 74, 445, |
| 947 | + /* 1020 */ 148, 445, 445, 445, 445, 149, 150, 113, 120, 161, |
| 948 | + /* 1030 */ 119, 74, 445, 148, 445, 445, 445, 445, 445, 151, |
| 949 | + /* 1040 */ 113, 120, 161, 119, 445, 74, 445, 148, 445, 445, |
| 950 | + /* 1050 */ 149, 445, 445, 136, 113, 120, 161, 119, 74, 445, |
| 951 | + /* 1060 */ 148, 445, 445, 149, 445, 445, 135, 113, 120, 161, |
| 952 | + /* 1070 */ 119, 445, 88, 445, 445, 445, 445, 149, 445, 445, |
| 953 | + /* 1080 */ 445, 90, 120, 161, 119, 445, 445, 445, 445, 82, |
| 954 | + /* 1090 */ 149, 120, 161, 119, 445, 87, 466, 445, 34, 99, |
| 955 | + /* 1100 */ 445, 445, 445, 445, 152, 120, 161, 119, 100, 120, |
| 956 | + /* 1110 */ 161, 119, 445, 152, 445, 445, 445, 445, 120, 161, |
| 957 | + /* 1120 */ 119, 445, 445, 445, 101, 445, 445, 152, 445, 445, |
| 958 | + /* 1130 */ 445, 152, 91, 445, 120, 161, 119, 103, 445, 445, |
| 959 | + /* 1140 */ 152, 445, 120, 161, 119, 445, 445, 120, 161, 119, |
| 960 | + /* 1150 */ 445, 92, 445, 445, 445, 445, 152, 445, 445, 445, |
| 961 | + /* 1160 */ 93, 120, 161, 119, 152, 445, 104, 445, 445, 152, |
| 962 | + /* 1170 */ 120, 161, 119, 445, 94, 445, 120, 161, 119, 445, |
| 963 | + /* 1180 */ 445, 445, 445, 152, 120, 161, 119, 445, 445, 105, |
| 964 | + /* 1190 */ 445, 445, 152, 445, 445, 445, 445, 95, 152, 120, |
| 965 | + /* 1200 */ 161, 119, 96, 445, 445, 97, 152, 120, 161, 119, |
| 966 | + /* 1210 */ 445, 445, 120, 161, 119, 120, 161, 119, 445, 445, |
| 967 | + /* 1220 */ 445, 152, 445, 445, 445, 445, 445, 445, 445, 152, |
| 968 | + /* 1230 */ 549, 445, 445, 548, 152, 445, 445, 152, 547, 445, |
| 969 | + /* 1240 */ 120, 161, 119, 120, 161, 119, 546, 445, 120, 161, |
| 970 | + /* 1250 */ 119, 445, 445, 445, 445, 445, 120, 161, 119, 445, |
| 971 | + /* 1260 */ 445, 445, 152, 445, 445, 152, 445, 445, 445, 115, |
| 972 | + /* 1270 */ 152, 445, 116, 445, 445, 445, 445, 445, 152, 120, |
| 973 | + /* 1280 */ 161, 119, 120, 161, 119, 445, 445, 445, 445, 445, |
| 974 | + /* 1290 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, |
| 975 | + /* 1300 */ 445, 152, 445, 445, 152, |
| 925 | 976 | }; |
| 926 | 977 | static const YYCODETYPE yy_lookahead[] = { |
| 927 | | - /* 0 */ 0, 113, 114, 115, 134, 102, 103, 104, 106, 106, |
| 928 | | - /* 10 */ 10, 113, 114, 115, 111, 112, 113, 114, 115, 106, |
| 929 | | - /* 20 */ 20, 21, 22, 105, 24, 126, 108, 109, 28, 4, |
| 930 | | - /* 30 */ 5, 6, 7, 33, 34, 35, 36, 37, 135, 39, |
| 931 | | - /* 40 */ 40, 41, 42, 105, 44, 45, 108, 109, 107, 49, |
| 978 | + /* 0 */ 0, 115, 116, 117, 136, 103, 104, 105, 107, 107, |
| 979 | + /* 10 */ 10, 4, 5, 6, 7, 113, 114, 115, 116, 117, |
| 980 | + /* 20 */ 20, 21, 22, 17, 24, 101, 102, 103, 104, 29, |
| 981 | + /* 30 */ 107, 25, 25, 109, 34, 35, 36, 37, 38, 137, |
| 982 | + /* 40 */ 40, 41, 42, 43, 120, 45, 46, 109, 124, 125, |
| 932 | 983 | /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
| 933 | | - /* 60 */ 60, 61, 62, 63, 0, 113, 114, 115, 130, 131, |
| 934 | | - /* 70 */ 132, 104, 25, 106, 10, 113, 114, 115, 111, 112, |
| 935 | | - /* 80 */ 113, 114, 115, 106, 20, 21, 22, 128, 24, 113, |
| 936 | | - /* 90 */ 114, 115, 28, 129, 2, 26, 27, 33, 34, 35, |
| 937 | | - /* 100 */ 36, 37, 135, 39, 40, 41, 42, 2, 44, 45, |
| 938 | | - /* 110 */ 133, 26, 27, 49, 50, 51, 52, 53, 54, 55, |
| 939 | | - /* 120 */ 56, 57, 58, 59, 60, 61, 62, 63, 1, 2, |
| 940 | | - /* 130 */ 38, 4, 5, 4, 5, 6, 7, 17, 10, 12, |
| 941 | | - /* 140 */ 4, 5, 15, 38, 1, 25, 17, 29, 30, 31, |
| 942 | | - /* 150 */ 32, 24, 83, 26, 27, 12, 28, 14, 31, 32, |
| 943 | | - /* 160 */ 91, 18, 116, 20, 21, 22, 23, 24, 116, 26, |
| 944 | | - /* 170 */ 27, 19, 29, 30, 31, 32, 91, 3, 64, 65, |
| 945 | | - /* 180 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 6, |
| 946 | | - /* 190 */ 7, 64, 4, 5, 6, 7, 8, 97, 98, 20, |
| 947 | | - /* 200 */ 21, 22, 26, 27, 4, 5, 6, 7, 1, 82, |
| 948 | | - /* 210 */ 48, 84, 85, 86, 87, 17, 89, 17, 91, 92, |
| 949 | | - /* 220 */ 93, 94, 95, 1, 2, 25, 4, 5, 49, 50, |
| 950 | | - /* 230 */ 51, 52, 53, 54, 12, 16, 15, 15, 4, 5, |
| 951 | | - /* 240 */ 6, 7, 20, 21, 22, 1, 26, 27, 4, 5, |
| 952 | | - /* 250 */ 48, 43, 90, 31, 32, 40, 12, 40, 96, 15, |
| 953 | | - /* 260 */ 47, 99, 88, 104, 20, 21, 22, 1, 24, 35, |
| 954 | | - /* 270 */ 4, 5, 113, 114, 115, 0, 117, 41, 12, 41, |
| 955 | | - /* 280 */ 13, 15, 17, 124, 125, 10, 64, 25, 1, 2, |
| 956 | | - /* 290 */ 17, 4, 5, 75, 135, 81, 80, 3, 3, 12, |
| 957 | | - /* 300 */ 3, 99, 15, 79, 82, 80, 84, 85, 86, 87, |
| 958 | | - /* 310 */ 38, 89, 3, 91, 92, 93, 94, 95, 31, 32, |
| 959 | | - /* 320 */ 2, 3, 4, 5, 6, 7, 82, 3, 3, 12, |
| 960 | | - /* 330 */ 77, 104, 25, 89, 16, 91, 92, 93, 94, 95, |
| 961 | | - /* 340 */ 113, 114, 115, 25, 117, 96, 15, 15, 82, 31, |
| 962 | | - /* 350 */ 32, 64, 125, 15, 17, 89, 38, 91, 92, 93, |
| 963 | | - /* 360 */ 94, 95, 135, 28, 4, 5, 6, 7, 28, 82, |
| 964 | | - /* 370 */ 28, 84, 85, 86, 87, 12, 89, 3, 91, 92, |
| 965 | | - /* 380 */ 93, 94, 95, 90, 11, 67, 68, 136, 2, 3, |
| 966 | | - /* 390 */ 4, 5, 6, 7, 76, 35, 78, 79, 80, 82, |
| 967 | | - /* 400 */ 136, 136, 136, 17, 136, 136, 89, 136, 91, 136, |
| 968 | | - /* 410 */ 136, 25, 104, 136, 106, 136, 136, 31, 32, 111, |
| 969 | | - /* 420 */ 112, 113, 114, 115, 38, 136, 136, 2, 3, 4, |
| 970 | | - /* 430 */ 5, 6, 7, 136, 1, 136, 136, 4, 5, 4, |
| 971 | | - /* 440 */ 5, 6, 7, 135, 136, 12, 136, 136, 15, 136, |
| 972 | | - /* 450 */ 25, 136, 17, 67, 68, 136, 31, 32, 136, 136, |
| 973 | | - /* 460 */ 25, 136, 76, 38, 78, 79, 80, 1, 136, 136, |
| 974 | | - /* 470 */ 4, 5, 4, 5, 6, 7, 136, 136, 12, 46, |
| 975 | | - /* 480 */ 47, 15, 136, 136, 136, 17, 20, 21, 22, 136, |
| 976 | | - /* 490 */ 136, 136, 67, 68, 136, 1, 2, 136, 4, 5, |
| 977 | | - /* 500 */ 136, 76, 136, 78, 79, 80, 12, 136, 104, 15, |
| 978 | | - /* 510 */ 4, 5, 6, 7, 136, 82, 136, 113, 114, 115, |
| 979 | | - /* 520 */ 136, 117, 89, 17, 91, 92, 93, 94, 95, 136, |
| 980 | | - /* 530 */ 1, 2, 38, 4, 5, 4, 5, 6, 7, 135, |
| 981 | | - /* 540 */ 136, 12, 136, 136, 15, 136, 136, 136, 82, 4, |
| 982 | | - /* 550 */ 5, 6, 7, 136, 136, 89, 25, 91, 92, 93, |
| 983 | | - /* 560 */ 94, 95, 136, 1, 2, 136, 4, 5, 136, 136, |
| 984 | | - /* 570 */ 25, 104, 136, 106, 12, 136, 82, 15, 111, 112, |
| 985 | | - /* 580 */ 113, 114, 115, 89, 136, 91, 92, 93, 94, 95, |
| 986 | | - /* 590 */ 1, 136, 136, 4, 5, 136, 136, 136, 136, 136, |
| 987 | | - /* 600 */ 136, 12, 135, 136, 15, 136, 104, 136, 106, 136, |
| 988 | | - /* 610 */ 136, 82, 136, 111, 112, 113, 114, 115, 89, 136, |
| 989 | | - /* 620 */ 91, 92, 93, 94, 95, 1, 136, 136, 4, 5, |
| 990 | | - /* 630 */ 136, 136, 104, 136, 136, 136, 12, 135, 136, 15, |
| 991 | | - /* 640 */ 136, 113, 114, 115, 82, 136, 136, 2, 120, 121, |
| 992 | | - /* 650 */ 136, 89, 136, 91, 92, 93, 94, 95, 1, 136, |
| 993 | | - /* 660 */ 136, 4, 5, 135, 104, 136, 136, 136, 136, 12, |
| 994 | | - /* 670 */ 136, 82, 15, 113, 114, 115, 31, 32, 89, 136, |
| 995 | | - /* 680 */ 91, 92, 93, 94, 95, 101, 102, 103, 136, 136, |
| 996 | | - /* 690 */ 104, 107, 106, 48, 104, 135, 136, 111, 112, 113, |
| 997 | | - /* 700 */ 114, 115, 118, 113, 114, 115, 82, 123, 136, 64, |
| 998 | | - /* 710 */ 120, 121, 136, 89, 136, 91, 92, 93, 94, 95, |
| 999 | | - /* 720 */ 136, 135, 136, 136, 136, 135, 104, 136, 106, 84, |
| 1000 | | - /* 730 */ 85, 86, 87, 111, 112, 113, 114, 115, 136, 82, |
| 1001 | | - /* 740 */ 100, 101, 102, 103, 136, 136, 89, 107, 91, 92, |
| 1002 | | - /* 750 */ 93, 94, 95, 136, 136, 136, 136, 135, 118, 104, |
| 1003 | | - /* 760 */ 136, 106, 122, 123, 136, 136, 111, 112, 113, 114, |
| 1004 | | - /* 770 */ 115, 136, 136, 136, 104, 136, 106, 136, 136, 136, |
| 1005 | | - /* 780 */ 136, 111, 112, 113, 114, 115, 104, 136, 106, 104, |
| 1006 | | - /* 790 */ 135, 136, 136, 111, 112, 113, 114, 115, 113, 114, |
| 1007 | | - /* 800 */ 115, 136, 104, 136, 106, 135, 136, 136, 136, 111, |
| 1008 | | - /* 810 */ 112, 113, 114, 115, 104, 136, 106, 135, 136, 136, |
| 1009 | | - /* 820 */ 135, 111, 112, 113, 114, 115, 104, 4, 5, 6, |
| 1010 | | - /* 830 */ 7, 136, 136, 135, 136, 113, 114, 115, 136, 104, |
| 1011 | | - /* 840 */ 17, 106, 120, 136, 136, 135, 111, 112, 113, 114, |
| 1012 | | - /* 850 */ 115, 104, 136, 106, 136, 136, 136, 135, 111, 112, |
| 1013 | | - /* 860 */ 113, 114, 115, 136, 104, 136, 106, 136, 136, 136, |
| 1014 | | - /* 870 */ 135, 111, 112, 113, 114, 115, 136, 136, 136, 104, |
| 1015 | | - /* 880 */ 136, 106, 135, 136, 136, 136, 111, 112, 113, 114, |
| 1016 | | - /* 890 */ 115, 104, 136, 106, 104, 135, 136, 136, 111, 112, |
| 1017 | | - /* 900 */ 113, 114, 115, 113, 114, 115, 136, 104, 136, 106, |
| 1018 | | - /* 910 */ 135, 136, 136, 136, 111, 112, 113, 114, 115, 104, |
| 1019 | | - /* 920 */ 136, 106, 135, 136, 136, 135, 111, 112, 113, 114, |
| 1020 | | - /* 930 */ 115, 104, 4, 5, 6, 7, 136, 136, 135, 136, |
| 1021 | | - /* 940 */ 113, 114, 115, 136, 104, 17, 106, 136, 136, 136, |
| 1022 | | - /* 950 */ 135, 111, 112, 113, 114, 115, 104, 136, 106, 136, |
| 1023 | | - /* 960 */ 136, 136, 135, 111, 112, 113, 114, 115, 136, 104, |
| 1024 | | - /* 970 */ 136, 106, 136, 136, 136, 135, 111, 112, 113, 114, |
| 1025 | | - /* 980 */ 115, 136, 136, 136, 104, 136, 106, 135, 136, 136, |
| 1026 | | - /* 990 */ 136, 111, 112, 113, 114, 115, 104, 136, 106, 104, |
| 1027 | | - /* 1000 */ 135, 136, 136, 111, 112, 113, 114, 115, 113, 114, |
| 1028 | | - /* 1010 */ 115, 136, 104, 136, 106, 135, 136, 2, 136, 111, |
| 1029 | | - /* 1020 */ 112, 113, 114, 115, 104, 136, 106, 135, 136, 136, |
| 1030 | | - /* 1030 */ 135, 111, 112, 113, 114, 115, 4, 5, 6, 7, |
| 1031 | | - /* 1040 */ 136, 136, 136, 135, 136, 136, 31, 32, 136, 104, |
| 1032 | | - /* 1050 */ 136, 136, 136, 136, 136, 135, 136, 25, 113, 114, |
| 1033 | | - /* 1060 */ 115, 104, 136, 136, 119, 120, 121, 136, 136, 136, |
| 1034 | | - /* 1070 */ 113, 114, 115, 136, 136, 136, 136, 120, 136, 64, |
| 1035 | | - /* 1080 */ 135, 136, 136, 136, 127, 136, 129, 100, 101, 102, |
| 1036 | | - /* 1090 */ 103, 136, 135, 136, 107, 136, 136, 136, 104, 84, |
| 1037 | | - /* 1100 */ 85, 86, 87, 104, 136, 118, 136, 113, 114, 115, |
| 1038 | | - /* 1110 */ 123, 117, 113, 114, 115, 104, 136, 4, 5, 6, |
| 1039 | | - /* 1120 */ 7, 136, 104, 136, 113, 114, 115, 104, 136, 135, |
| 1040 | | - /* 1130 */ 17, 113, 114, 115, 135, 136, 113, 114, 115, 104, |
| 1041 | | - /* 1140 */ 136, 136, 136, 136, 136, 136, 135, 136, 113, 114, |
| 1042 | | - /* 1150 */ 115, 104, 136, 135, 104, 136, 136, 136, 135, 136, |
| 1043 | | - /* 1160 */ 113, 114, 115, 113, 114, 115, 104, 136, 136, 104, |
| 1044 | | - /* 1170 */ 135, 136, 136, 136, 136, 113, 114, 115, 113, 114, |
| 1045 | | - /* 1180 */ 115, 136, 135, 136, 104, 135, 136, 136, 136, 136, |
| 1046 | | - /* 1190 */ 136, 136, 104, 113, 114, 115, 136, 135, 136, 104, |
| 1047 | | - /* 1200 */ 135, 113, 114, 115, 136, 136, 136, 104, 113, 114, |
| 1048 | | - /* 1210 */ 115, 136, 136, 136, 136, 135, 113, 114, 115, 136, |
| 1049 | | - /* 1220 */ 136, 136, 136, 135, 136, 136, 136, 136, 136, 136, |
| 1050 | | - /* 1230 */ 135, 104, 136, 136, 104, 136, 136, 104, 135, 136, |
| 1051 | | - /* 1240 */ 113, 114, 115, 113, 114, 115, 113, 114, 115, 136, |
| 1052 | | - /* 1250 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, |
| 1053 | | - /* 1260 */ 136, 136, 135, 104, 136, 135, 104, 136, 135, 104, |
| 1054 | | - /* 1270 */ 136, 136, 113, 114, 115, 113, 114, 115, 113, 114, |
| 1055 | | - /* 1280 */ 115, 104, 136, 136, 136, 136, 136, 136, 136, 136, |
| 1056 | | - /* 1290 */ 113, 114, 115, 136, 135, 136, 136, 135, 136, 136, |
| 1057 | | - /* 1300 */ 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, |
| 1058 | | - /* 1310 */ 136, 136, 135, 100, 100, 100, 100, 100, 100, 100, |
| 1059 | | - /* 1320 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1060 | | - /* 1330 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1061 | | - /* 1340 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1062 | | - /* 1350 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1063 | | - /* 1360 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1064 | | - /* 1370 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1065 | | - /* 1380 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1066 | | - /* 1390 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1067 | | - /* 1400 */ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
| 1068 | | - /* 1410 */ 100, 100, 100, |
| 984 | + /* 60 */ 60, 61, 62, 63, 64, 0, 4, 5, 6, 7, |
| 985 | + /* 70 */ 4, 5, 105, 25, 107, 10, 115, 116, 117, 17, |
| 986 | + /* 80 */ 113, 114, 115, 116, 117, 20, 21, 22, 128, 24, |
| 987 | + /* 90 */ 101, 102, 103, 104, 29, 115, 116, 117, 109, 34, |
| 988 | + /* 100 */ 35, 36, 37, 38, 137, 40, 41, 42, 43, 120, |
| 989 | + /* 110 */ 45, 46, 49, 10, 125, 50, 51, 52, 53, 54, |
| 990 | + /* 120 */ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
| 991 | + /* 130 */ 1, 2, 29, 4, 5, 4, 5, 6, 7, 8, |
| 992 | + /* 140 */ 105, 12, 107, 3, 15, 115, 116, 117, 113, 114, |
| 993 | + /* 150 */ 115, 116, 117, 24, 91, 130, 27, 28, 118, 105, |
| 994 | + /* 160 */ 97, 32, 33, 100, 1, 2, 19, 4, 5, 115, |
| 995 | + /* 170 */ 116, 117, 137, 119, 12, 12, 2, 118, 15, 1, |
| 996 | + /* 180 */ 126, 127, 106, 20, 21, 22, 110, 111, 106, 2, |
| 997 | + /* 190 */ 107, 137, 110, 111, 65, 32, 33, 65, 66, 67, |
| 998 | + /* 200 */ 68, 69, 70, 71, 72, 73, 74, 75, 132, 133, |
| 999 | + /* 210 */ 134, 131, 83, 39, 85, 86, 87, 88, 135, 90, |
| 1000 | + /* 220 */ 17, 92, 93, 94, 95, 96, 39, 15, 65, 89, |
| 1001 | + /* 230 */ 1, 2, 16, 4, 5, 30, 31, 32, 33, 98, |
| 1002 | + /* 240 */ 99, 12, 6, 7, 15, 83, 83, 41, 85, 86, |
| 1003 | + /* 250 */ 87, 88, 90, 90, 92, 92, 93, 94, 95, 96, |
| 1004 | + /* 260 */ 49, 32, 33, 44, 41, 2, 3, 4, 5, 6, |
| 1005 | + /* 270 */ 7, 27, 28, 42, 20, 21, 22, 27, 28, 16, |
| 1006 | + /* 280 */ 42, 105, 48, 107, 115, 116, 117, 13, 25, 113, |
| 1007 | + /* 290 */ 114, 115, 116, 117, 65, 32, 33, 4, 5, 6, |
| 1008 | + /* 300 */ 7, 17, 39, 25, 50, 51, 52, 53, 54, 55, |
| 1009 | + /* 310 */ 17, 100, 83, 137, 85, 86, 87, 88, 105, 90, |
| 1010 | + /* 320 */ 107, 92, 93, 94, 95, 96, 113, 114, 115, 116, |
| 1011 | + /* 330 */ 117, 68, 69, 76, 2, 3, 4, 5, 6, 7, |
| 1012 | + /* 340 */ 77, 17, 79, 80, 81, 4, 5, 6, 7, 17, |
| 1013 | + /* 350 */ 137, 102, 103, 104, 27, 28, 105, 25, 109, 1, |
| 1014 | + /* 360 */ 81, 80, 4, 5, 32, 33, 115, 116, 117, 120, |
| 1015 | + /* 370 */ 12, 39, 82, 15, 125, 81, 3, 36, 20, 21, |
| 1016 | + /* 380 */ 22, 0, 24, 3, 39, 105, 3, 107, 137, 3, |
| 1017 | + /* 390 */ 3, 10, 3, 113, 114, 115, 116, 117, 97, 78, |
| 1018 | + /* 400 */ 68, 69, 25, 2, 3, 4, 5, 6, 7, 77, |
| 1019 | + /* 410 */ 105, 79, 80, 81, 15, 15, 12, 137, 15, 92, |
| 1020 | + /* 420 */ 115, 116, 117, 17, 119, 29, 25, 4, 5, 6, |
| 1021 | + /* 430 */ 7, 29, 127, 32, 33, 91, 29, 2, 11, 3, |
| 1022 | + /* 440 */ 39, 83, 137, 138, 138, 105, 138, 138, 90, 138, |
| 1023 | + /* 450 */ 92, 93, 94, 95, 96, 115, 116, 117, 138, 36, |
| 1024 | + /* 460 */ 138, 121, 122, 123, 138, 138, 2, 32, 33, 68, |
| 1025 | + /* 470 */ 69, 138, 1, 4, 5, 6, 7, 137, 77, 138, |
| 1026 | + /* 480 */ 79, 80, 81, 12, 49, 14, 17, 138, 138, 18, |
| 1027 | + /* 490 */ 138, 20, 21, 22, 23, 24, 32, 33, 27, 28, |
| 1028 | + /* 500 */ 65, 30, 31, 32, 33, 1, 138, 138, 4, 5, |
| 1029 | + /* 510 */ 4, 5, 6, 7, 138, 138, 12, 138, 138, 15, |
| 1030 | + /* 520 */ 85, 86, 87, 88, 20, 21, 22, 1, 138, 65, |
| 1031 | + /* 530 */ 4, 5, 4, 5, 6, 7, 138, 138, 12, 138, |
| 1032 | + /* 540 */ 138, 15, 138, 1, 2, 17, 4, 5, 138, 85, |
| 1033 | + /* 550 */ 86, 87, 88, 25, 12, 138, 105, 15, 107, 138, |
| 1034 | + /* 560 */ 105, 138, 138, 138, 113, 114, 115, 116, 117, 138, |
| 1035 | + /* 570 */ 115, 116, 117, 47, 48, 1, 2, 122, 4, 5, |
| 1036 | + /* 580 */ 138, 39, 4, 5, 6, 7, 12, 83, 137, 15, |
| 1037 | + /* 590 */ 138, 138, 137, 138, 90, 17, 92, 93, 94, 95, |
| 1038 | + /* 600 */ 96, 1, 2, 25, 4, 5, 138, 138, 138, 83, |
| 1039 | + /* 610 */ 138, 138, 12, 138, 138, 15, 90, 138, 92, 93, |
| 1040 | + /* 620 */ 94, 95, 96, 138, 138, 83, 4, 5, 6, 7, |
| 1041 | + /* 630 */ 138, 138, 90, 138, 92, 93, 94, 95, 96, 1, |
| 1042 | + /* 640 */ 138, 138, 4, 5, 105, 138, 138, 25, 138, 138, |
| 1043 | + /* 650 */ 12, 138, 138, 15, 115, 116, 117, 83, 138, 138, |
| 1044 | + /* 660 */ 138, 122, 123, 138, 90, 138, 92, 93, 94, 95, |
| 1045 | + /* 670 */ 96, 1, 138, 138, 4, 5, 137, 105, 138, 138, |
| 1046 | + /* 680 */ 138, 138, 12, 83, 138, 15, 138, 115, 116, 117, |
| 1047 | + /* 690 */ 90, 119, 92, 93, 94, 95, 96, 1, 138, 138, |
| 1048 | + /* 700 */ 4, 5, 4, 5, 6, 7, 138, 138, 12, 137, |
| 1049 | + /* 710 */ 138, 15, 138, 1, 138, 17, 4, 5, 138, 138, |
| 1050 | + /* 720 */ 138, 83, 138, 138, 12, 105, 138, 15, 90, 138, |
| 1051 | + /* 730 */ 92, 93, 94, 95, 96, 115, 116, 117, 105, 138, |
| 1052 | + /* 740 */ 107, 138, 122, 123, 105, 138, 113, 114, 115, 116, |
| 1053 | + /* 750 */ 117, 138, 138, 83, 115, 116, 117, 137, 119, 138, |
| 1054 | + /* 760 */ 90, 105, 92, 93, 94, 95, 96, 138, 138, 138, |
| 1055 | + /* 770 */ 137, 115, 116, 117, 138, 138, 137, 138, 138, 83, |
| 1056 | + /* 780 */ 138, 4, 5, 6, 7, 138, 90, 138, 92, 93, |
| 1057 | + /* 790 */ 94, 95, 96, 137, 17, 83, 4, 5, 6, 7, |
| 1058 | + /* 800 */ 105, 138, 90, 138, 92, 93, 94, 95, 96, 138, |
| 1059 | + /* 810 */ 115, 116, 117, 138, 105, 138, 107, 25, 138, 105, |
| 1060 | + /* 820 */ 138, 107, 113, 114, 115, 116, 117, 113, 114, 115, |
| 1061 | + /* 830 */ 116, 117, 137, 105, 138, 107, 138, 105, 138, 138, |
| 1062 | + /* 840 */ 138, 113, 114, 115, 116, 117, 137, 115, 116, 117, |
| 1063 | + /* 850 */ 138, 137, 105, 138, 107, 138, 138, 138, 27, 28, |
| 1064 | + /* 860 */ 113, 114, 115, 116, 117, 137, 105, 138, 107, 137, |
| 1065 | + /* 870 */ 138, 105, 138, 107, 113, 114, 115, 116, 117, 113, |
| 1066 | + /* 880 */ 114, 115, 116, 117, 137, 105, 138, 107, 4, 5, |
| 1067 | + /* 890 */ 6, 7, 138, 113, 114, 115, 116, 117, 137, 138, |
| 1068 | + /* 900 */ 138, 17, 138, 137, 138, 138, 138, 138, 138, 138, |
| 1069 | + /* 910 */ 105, 138, 107, 138, 138, 84, 138, 137, 113, 114, |
| 1070 | + /* 920 */ 115, 116, 117, 92, 138, 105, 138, 107, 138, 138, |
| 1071 | + /* 930 */ 138, 138, 138, 113, 114, 115, 116, 117, 138, 105, |
| 1072 | + /* 940 */ 138, 107, 137, 138, 138, 138, 138, 113, 114, 115, |
| 1073 | + /* 950 */ 116, 117, 105, 138, 107, 138, 138, 137, 138, 138, |
| 1074 | + /* 960 */ 113, 114, 115, 116, 117, 138, 105, 138, 107, 138, |
| 1075 | + /* 970 */ 138, 137, 138, 138, 113, 114, 115, 116, 117, 105, |
| 1076 | + /* 980 */ 138, 107, 138, 138, 137, 138, 138, 113, 114, 115, |
| 1077 | + /* 990 */ 116, 117, 138, 105, 138, 107, 138, 138, 137, 138, |
| 1078 | + /* 1000 */ 138, 113, 114, 115, 116, 117, 138, 138, 138, 138, |
| 1079 | + /* 1010 */ 138, 137, 138, 138, 138, 138, 138, 138, 105, 138, |
| 1080 | + /* 1020 */ 107, 138, 138, 138, 138, 137, 113, 114, 115, 116, |
| 1081 | + /* 1030 */ 117, 105, 138, 107, 138, 138, 138, 138, 138, 113, |
| 1082 | + /* 1040 */ 114, 115, 116, 117, 138, 105, 138, 107, 138, 138, |
| 1083 | + /* 1050 */ 137, 138, 138, 113, 114, 115, 116, 117, 105, 138, |
| 1084 | + /* 1060 */ 107, 138, 138, 137, 138, 138, 113, 114, 115, 116, |
| 1085 | + /* 1070 */ 117, 138, 105, 138, 138, 138, 138, 137, 138, 138, |
| 1086 | + /* 1080 */ 138, 105, 115, 116, 117, 138, 138, 138, 138, 122, |
| 1087 | + /* 1090 */ 137, 115, 116, 117, 138, 105, 129, 138, 131, 105, |
| 1088 | + /* 1100 */ 138, 138, 138, 138, 137, 115, 116, 117, 105, 115, |
| 1089 | + /* 1110 */ 116, 117, 138, 137, 138, 138, 138, 138, 115, 116, |
| 1090 | + /* 1120 */ 117, 138, 138, 138, 105, 138, 138, 137, 138, 138, |
| 1091 | + /* 1130 */ 138, 137, 105, 138, 115, 116, 117, 105, 138, 138, |
| 1092 | + /* 1140 */ 137, 138, 115, 116, 117, 138, 138, 115, 116, 117, |
| 1093 | + /* 1150 */ 138, 105, 138, 138, 138, 138, 137, 138, 138, 138, |
| 1094 | + /* 1160 */ 105, 115, 116, 117, 137, 138, 105, 138, 138, 137, |
| 1095 | + /* 1170 */ 115, 116, 117, 138, 105, 138, 115, 116, 117, 138, |
| 1096 | + /* 1180 */ 138, 138, 138, 137, 115, 116, 117, 138, 138, 105, |
| 1097 | + /* 1190 */ 138, 138, 137, 138, 138, 138, 138, 105, 137, 115, |
| 1098 | + /* 1200 */ 116, 117, 105, 138, 138, 105, 137, 115, 116, 117, |
| 1099 | + /* 1210 */ 138, 138, 115, 116, 117, 115, 116, 117, 138, 138, |
| 1100 | + /* 1220 */ 138, 137, 138, 138, 138, 138, 138, 138, 138, 137, |
| 1101 | + /* 1230 */ 105, 138, 138, 105, 137, 138, 138, 137, 105, 138, |
| 1102 | + /* 1240 */ 115, 116, 117, 115, 116, 117, 105, 138, 115, 116, |
| 1103 | + /* 1250 */ 117, 138, 138, 138, 138, 138, 115, 116, 117, 138, |
| 1104 | + /* 1260 */ 138, 138, 137, 138, 138, 137, 138, 138, 138, 105, |
| 1105 | + /* 1270 */ 137, 138, 105, 138, 138, 138, 138, 138, 137, 115, |
| 1106 | + /* 1280 */ 116, 117, 115, 116, 117, 138, 138, 138, 138, 138, |
| 1107 | + /* 1290 */ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, |
| 1108 | + /* 1300 */ 138, 137, 138, 138, 137, 101, 101, 101, 101, 101, |
| 1109 | + /* 1310 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1110 | + /* 1320 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1111 | + /* 1330 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1112 | + /* 1340 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1113 | + /* 1350 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1114 | + /* 1360 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1115 | + /* 1370 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1116 | + /* 1380 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1117 | + /* 1390 */ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, |
| 1118 | + /* 1400 */ 101, 101, 101, 101, 101, 101, |
| 1069 | 1119 | }; |
| 1070 | 1120 | #define YY_SHIFT_COUNT (163) |
| 1071 | 1121 | #define YY_SHIFT_MIN (0) |
| 1072 | | -#define YY_SHIFT_MAX (1113) |
| 1122 | +#define YY_SHIFT_MAX (884) |
| 1073 | 1123 | static const unsigned short int yy_shift_ofst[] = { |
| 1074 | | - /* 0 */ 143, 127, 222, 287, 287, 287, 287, 287, 287, 287, |
| 1075 | | - /* 10 */ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, |
| 1076 | | - /* 20 */ 287, 287, 287, 287, 287, 287, 287, 244, 433, 266, |
| 1077 | | - /* 30 */ 244, 143, 494, 494, 0, 64, 143, 589, 266, 589, |
| 1078 | | - /* 40 */ 466, 466, 466, 529, 562, 266, 266, 266, 266, 266, |
| 1079 | | - /* 50 */ 266, 624, 266, 266, 657, 266, 266, 266, 266, 266, |
| 1080 | | - /* 60 */ 266, 266, 266, 266, 266, 179, 317, 317, 317, 317, |
| 1081 | | - /* 70 */ 317, 645, 318, 386, 425, 1015, 1015, 118, 47, 1313, |
| 1082 | | - /* 80 */ 1313, 1313, 1313, 114, 114, 200, 435, 129, 188, 234, |
| 1083 | | - /* 90 */ 360, 468, 531, 506, 545, 823, 1032, 928, 1113, 25, |
| 1084 | | - /* 100 */ 25, 25, 162, 25, 25, 25, 69, 25, 85, 128, |
| 1085 | | - /* 110 */ 92, 105, 120, 136, 100, 183, 183, 176, 220, 174, |
| 1086 | | - /* 120 */ 202, 275, 152, 207, 198, 219, 221, 208, 215, 217, |
| 1087 | | - /* 130 */ 236, 238, 213, 267, 265, 262, 218, 273, 216, 224, |
| 1088 | | - /* 140 */ 214, 225, 294, 295, 297, 272, 309, 324, 325, 249, |
| 1089 | | - /* 150 */ 253, 307, 249, 331, 332, 338, 337, 335, 340, 342, |
| 1090 | | - /* 160 */ 363, 293, 374, 373, |
| 1124 | + /* 0 */ 471, 129, 163, 229, 229, 229, 229, 229, 229, 229, |
| 1125 | + /* 10 */ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, |
| 1126 | + /* 20 */ 229, 229, 229, 229, 229, 229, 229, 358, 526, 638, |
| 1127 | + /* 30 */ 358, 471, 542, 542, 0, 65, 471, 670, 638, 670, |
| 1128 | + /* 40 */ 504, 504, 504, 574, 600, 638, 638, 638, 638, 638, |
| 1129 | + /* 50 */ 638, 696, 638, 638, 712, 638, 638, 638, 638, 638, |
| 1130 | + /* 60 */ 638, 638, 638, 638, 638, 254, 162, 162, 162, 162, |
| 1131 | + /* 70 */ 162, 435, 263, 332, 401, 464, 464, 205, 48, 1305, |
| 1132 | + /* 80 */ 1305, 1305, 1305, 132, 132, 528, 578, 62, 131, 341, |
| 1133 | + /* 90 */ 423, 293, 7, 469, 622, 698, 792, 777, 884, 506, |
| 1134 | + /* 100 */ 506, 506, 63, 506, 506, 506, 831, 506, 327, 103, |
| 1135 | + /* 110 */ 174, 187, 6, 66, 141, 236, 236, 244, 250, 140, |
| 1136 | + /* 120 */ 211, 381, 147, 178, 203, 216, 212, 219, 206, 223, |
| 1137 | + /* 130 */ 231, 238, 234, 274, 284, 278, 257, 324, 279, 281, |
| 1138 | + /* 140 */ 290, 294, 373, 380, 383, 345, 386, 387, 389, 301, |
| 1139 | + /* 150 */ 321, 377, 301, 399, 400, 403, 406, 396, 402, 407, |
| 1140 | + /* 160 */ 404, 344, 436, 427, |
| 1091 | 1141 | }; |
| 1092 | 1142 | #define YY_REDUCE_COUNT (82) |
| 1093 | | -#define YY_REDUCE_MIN (-130) |
| 1094 | | -#define YY_REDUCE_MAX (1177) |
| 1143 | +#define YY_REDUCE_MIN (-132) |
| 1144 | +#define YY_REDUCE_MAX (1167) |
| 1095 | 1145 | static const short yy_reduce_ofst[] = { |
| 1096 | | - /* 0 */ 640, -97, -33, 308, 467, 502, 586, 622, 655, 670, |
| 1097 | | - /* 10 */ 682, 698, 710, 735, 747, 760, 775, 787, 803, 815, |
| 1098 | | - /* 20 */ 840, 852, 865, 880, 892, 908, 920, 159, 945, 957, |
| 1099 | | - /* 30 */ 227, 987, 528, 590, -62, -62, 584, 404, 722, 994, |
| 1100 | | - /* 40 */ 560, 685, 790, 827, 895, 999, 1011, 1018, 1023, 1035, |
| 1101 | | - /* 50 */ 1047, 1050, 1062, 1065, 1080, 1088, 1095, 1103, 1127, 1130, |
| 1102 | | - /* 60 */ 1133, 1159, 1162, 1165, 1177, -82, -112, -102, -48, -38, |
| 1103 | | - /* 70 */ -24, -23, -130, -130, -130, -98, -87, -59, -101, -41, |
| 1104 | | - /* 80 */ 46, 52, -36, |
| 1146 | + /* 0 */ -76, -98, -33, 35, 176, 213, 280, 451, 633, 709, |
| 1147 | + /* 10 */ 714, 728, 747, 761, 766, 780, 805, 820, 834, 847, |
| 1148 | + /* 20 */ 861, 874, 888, 913, 926, 940, 953, 54, 340, 967, |
| 1149 | + /* 30 */ 305, -11, 539, 620, 76, 76, 249, 639, 455, 572, |
| 1150 | + /* 40 */ 251, 656, 695, 732, 976, 990, 994, 1003, 1019, 1027, |
| 1151 | + /* 50 */ 1032, 1046, 1055, 1061, 1069, 1084, 1092, 1097, 1100, 1125, |
| 1152 | + /* 60 */ 1128, 1133, 1141, 1164, 1167, 82, -114, -39, -20, 30, |
| 1153 | + /* 70 */ 169, 83, -132, -132, -132, -99, -77, -62, -40, 25, |
| 1154 | + /* 80 */ 40, 59, 80, |
| 1105 | 1155 | }; |
| 1106 | 1156 | static const YYACTIONTYPE yy_default[] = { |
| 1107 | 1157 | /* 0 */ 449, 443, 443, 443, 443, 443, 443, 443, 443, 443, |
| 1108 | 1158 | /* 10 */ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, |
| 1109 | 1159 | /* 20 */ 443, 443, 443, 443, 443, 443, 443, 443, 473, 576, |
| | @@ -1164,10 +1214,11 @@ |
| 1164 | 1214 | 0, /* COLOR => nothing */ |
| 1165 | 1215 | 0, /* THICKNESS => nothing */ |
| 1166 | 1216 | 0, /* PRINT => nothing */ |
| 1167 | 1217 | 0, /* STRING => nothing */ |
| 1168 | 1218 | 0, /* COMMA => nothing */ |
| 1219 | + 0, /* ISODATE => nothing */ |
| 1169 | 1220 | 0, /* CLASSNAME => nothing */ |
| 1170 | 1221 | 0, /* LB => nothing */ |
| 1171 | 1222 | 0, /* RB => nothing */ |
| 1172 | 1223 | 0, /* UP => nothing */ |
| 1173 | 1224 | 0, /* DOWN => nothing */ |
| | @@ -1347,120 +1398,122 @@ |
| 1347 | 1398 | /* 21 */ "COLOR", |
| 1348 | 1399 | /* 22 */ "THICKNESS", |
| 1349 | 1400 | /* 23 */ "PRINT", |
| 1350 | 1401 | /* 24 */ "STRING", |
| 1351 | 1402 | /* 25 */ "COMMA", |
| 1352 | | - /* 26 */ "CLASSNAME", |
| 1353 | | - /* 27 */ "LB", |
| 1354 | | - /* 28 */ "RB", |
| 1355 | | - /* 29 */ "UP", |
| 1356 | | - /* 30 */ "DOWN", |
| 1357 | | - /* 31 */ "LEFT", |
| 1358 | | - /* 32 */ "RIGHT", |
| 1359 | | - /* 33 */ "CLOSE", |
| 1360 | | - /* 34 */ "CHOP", |
| 1361 | | - /* 35 */ "FROM", |
| 1362 | | - /* 36 */ "TO", |
| 1363 | | - /* 37 */ "THEN", |
| 1364 | | - /* 38 */ "HEADING", |
| 1365 | | - /* 39 */ "GO", |
| 1366 | | - /* 40 */ "AT", |
| 1367 | | - /* 41 */ "WITH", |
| 1368 | | - /* 42 */ "SAME", |
| 1369 | | - /* 43 */ "AS", |
| 1370 | | - /* 44 */ "FIT", |
| 1371 | | - /* 45 */ "BEHIND", |
| 1372 | | - /* 46 */ "UNTIL", |
| 1373 | | - /* 47 */ "EVEN", |
| 1374 | | - /* 48 */ "DOT_E", |
| 1375 | | - /* 49 */ "HEIGHT", |
| 1376 | | - /* 50 */ "WIDTH", |
| 1377 | | - /* 51 */ "RADIUS", |
| 1378 | | - /* 52 */ "DIAMETER", |
| 1379 | | - /* 53 */ "DOTTED", |
| 1380 | | - /* 54 */ "DASHED", |
| 1381 | | - /* 55 */ "CW", |
| 1382 | | - /* 56 */ "CCW", |
| 1383 | | - /* 57 */ "LARROW", |
| 1384 | | - /* 58 */ "RARROW", |
| 1385 | | - /* 59 */ "LRARROW", |
| 1386 | | - /* 60 */ "INVIS", |
| 1387 | | - /* 61 */ "THICK", |
| 1388 | | - /* 62 */ "THIN", |
| 1389 | | - /* 63 */ "SOLID", |
| 1390 | | - /* 64 */ "CENTER", |
| 1391 | | - /* 65 */ "LJUST", |
| 1392 | | - /* 66 */ "RJUST", |
| 1393 | | - /* 67 */ "ABOVE", |
| 1394 | | - /* 68 */ "BELOW", |
| 1395 | | - /* 69 */ "ITALIC", |
| 1396 | | - /* 70 */ "BOLD", |
| 1397 | | - /* 71 */ "MONO", |
| 1398 | | - /* 72 */ "ALIGNED", |
| 1399 | | - /* 73 */ "BIG", |
| 1400 | | - /* 74 */ "SMALL", |
| 1401 | | - /* 75 */ "AND", |
| 1402 | | - /* 76 */ "LT", |
| 1403 | | - /* 77 */ "GT", |
| 1404 | | - /* 78 */ "ON", |
| 1405 | | - /* 79 */ "WAY", |
| 1406 | | - /* 80 */ "BETWEEN", |
| 1407 | | - /* 81 */ "THE", |
| 1408 | | - /* 82 */ "NTH", |
| 1409 | | - /* 83 */ "VERTEX", |
| 1410 | | - /* 84 */ "TOP", |
| 1411 | | - /* 85 */ "BOTTOM", |
| 1412 | | - /* 86 */ "START", |
| 1413 | | - /* 87 */ "END", |
| 1414 | | - /* 88 */ "IN", |
| 1415 | | - /* 89 */ "THIS", |
| 1416 | | - /* 90 */ "DOT_U", |
| 1417 | | - /* 91 */ "LAST", |
| 1418 | | - /* 92 */ "NUMBER", |
| 1419 | | - /* 93 */ "FUNC1", |
| 1420 | | - /* 94 */ "FUNC2", |
| 1421 | | - /* 95 */ "DIST", |
| 1422 | | - /* 96 */ "DOT_XY", |
| 1423 | | - /* 97 */ "X", |
| 1424 | | - /* 98 */ "Y", |
| 1425 | | - /* 99 */ "DOT_L", |
| 1426 | | - /* 100 */ "statement_list", |
| 1427 | | - /* 101 */ "statement", |
| 1428 | | - /* 102 */ "unnamed_statement", |
| 1429 | | - /* 103 */ "basetype", |
| 1430 | | - /* 104 */ "expr", |
| 1431 | | - /* 105 */ "numproperty", |
| 1432 | | - /* 106 */ "edge", |
| 1433 | | - /* 107 */ "direction", |
| 1434 | | - /* 108 */ "dashproperty", |
| 1435 | | - /* 109 */ "colorproperty", |
| 1436 | | - /* 110 */ "locproperty", |
| 1437 | | - /* 111 */ "position", |
| 1438 | | - /* 112 */ "place", |
| 1439 | | - /* 113 */ "object", |
| 1440 | | - /* 114 */ "objectname", |
| 1441 | | - /* 115 */ "nth", |
| 1442 | | - /* 116 */ "textposition", |
| 1443 | | - /* 117 */ "rvalue", |
| 1444 | | - /* 118 */ "lvalue", |
| 1445 | | - /* 119 */ "even", |
| 1446 | | - /* 120 */ "relexpr", |
| 1447 | | - /* 121 */ "optrelexpr", |
| 1448 | | - /* 122 */ "document", |
| 1449 | | - /* 123 */ "print", |
| 1450 | | - /* 124 */ "prlist", |
| 1451 | | - /* 125 */ "pritem", |
| 1452 | | - /* 126 */ "prsep", |
| 1453 | | - /* 127 */ "attribute_list", |
| 1454 | | - /* 128 */ "savelist", |
| 1455 | | - /* 129 */ "alist", |
| 1456 | | - /* 130 */ "attribute", |
| 1457 | | - /* 131 */ "go", |
| 1458 | | - /* 132 */ "boolproperty", |
| 1459 | | - /* 133 */ "withclause", |
| 1460 | | - /* 134 */ "between", |
| 1461 | | - /* 135 */ "place2", |
| 1403 | + /* 26 */ "ISODATE", |
| 1404 | + /* 27 */ "CLASSNAME", |
| 1405 | + /* 28 */ "LB", |
| 1406 | + /* 29 */ "RB", |
| 1407 | + /* 30 */ "UP", |
| 1408 | + /* 31 */ "DOWN", |
| 1409 | + /* 32 */ "LEFT", |
| 1410 | + /* 33 */ "RIGHT", |
| 1411 | + /* 34 */ "CLOSE", |
| 1412 | + /* 35 */ "CHOP", |
| 1413 | + /* 36 */ "FROM", |
| 1414 | + /* 37 */ "TO", |
| 1415 | + /* 38 */ "THEN", |
| 1416 | + /* 39 */ "HEADING", |
| 1417 | + /* 40 */ "GO", |
| 1418 | + /* 41 */ "AT", |
| 1419 | + /* 42 */ "WITH", |
| 1420 | + /* 43 */ "SAME", |
| 1421 | + /* 44 */ "AS", |
| 1422 | + /* 45 */ "FIT", |
| 1423 | + /* 46 */ "BEHIND", |
| 1424 | + /* 47 */ "UNTIL", |
| 1425 | + /* 48 */ "EVEN", |
| 1426 | + /* 49 */ "DOT_E", |
| 1427 | + /* 50 */ "HEIGHT", |
| 1428 | + /* 51 */ "WIDTH", |
| 1429 | + /* 52 */ "RADIUS", |
| 1430 | + /* 53 */ "DIAMETER", |
| 1431 | + /* 54 */ "DOTTED", |
| 1432 | + /* 55 */ "DASHED", |
| 1433 | + /* 56 */ "CW", |
| 1434 | + /* 57 */ "CCW", |
| 1435 | + /* 58 */ "LARROW", |
| 1436 | + /* 59 */ "RARROW", |
| 1437 | + /* 60 */ "LRARROW", |
| 1438 | + /* 61 */ "INVIS", |
| 1439 | + /* 62 */ "THICK", |
| 1440 | + /* 63 */ "THIN", |
| 1441 | + /* 64 */ "SOLID", |
| 1442 | + /* 65 */ "CENTER", |
| 1443 | + /* 66 */ "LJUST", |
| 1444 | + /* 67 */ "RJUST", |
| 1445 | + /* 68 */ "ABOVE", |
| 1446 | + /* 69 */ "BELOW", |
| 1447 | + /* 70 */ "ITALIC", |
| 1448 | + /* 71 */ "BOLD", |
| 1449 | + /* 72 */ "MONO", |
| 1450 | + /* 73 */ "ALIGNED", |
| 1451 | + /* 74 */ "BIG", |
| 1452 | + /* 75 */ "SMALL", |
| 1453 | + /* 76 */ "AND", |
| 1454 | + /* 77 */ "LT", |
| 1455 | + /* 78 */ "GT", |
| 1456 | + /* 79 */ "ON", |
| 1457 | + /* 80 */ "WAY", |
| 1458 | + /* 81 */ "BETWEEN", |
| 1459 | + /* 82 */ "THE", |
| 1460 | + /* 83 */ "NTH", |
| 1461 | + /* 84 */ "VERTEX", |
| 1462 | + /* 85 */ "TOP", |
| 1463 | + /* 86 */ "BOTTOM", |
| 1464 | + /* 87 */ "START", |
| 1465 | + /* 88 */ "END", |
| 1466 | + /* 89 */ "IN", |
| 1467 | + /* 90 */ "THIS", |
| 1468 | + /* 91 */ "DOT_U", |
| 1469 | + /* 92 */ "LAST", |
| 1470 | + /* 93 */ "NUMBER", |
| 1471 | + /* 94 */ "FUNC1", |
| 1472 | + /* 95 */ "FUNC2", |
| 1473 | + /* 96 */ "DIST", |
| 1474 | + /* 97 */ "DOT_XY", |
| 1475 | + /* 98 */ "X", |
| 1476 | + /* 99 */ "Y", |
| 1477 | + /* 100 */ "DOT_L", |
| 1478 | + /* 101 */ "statement_list", |
| 1479 | + /* 102 */ "statement", |
| 1480 | + /* 103 */ "unnamed_statement", |
| 1481 | + /* 104 */ "basetype", |
| 1482 | + /* 105 */ "expr", |
| 1483 | + /* 106 */ "numproperty", |
| 1484 | + /* 107 */ "edge", |
| 1485 | + /* 108 */ "isodate", |
| 1486 | + /* 109 */ "direction", |
| 1487 | + /* 110 */ "dashproperty", |
| 1488 | + /* 111 */ "colorproperty", |
| 1489 | + /* 112 */ "locproperty", |
| 1490 | + /* 113 */ "position", |
| 1491 | + /* 114 */ "place", |
| 1492 | + /* 115 */ "object", |
| 1493 | + /* 116 */ "objectname", |
| 1494 | + /* 117 */ "nth", |
| 1495 | + /* 118 */ "textposition", |
| 1496 | + /* 119 */ "rvalue", |
| 1497 | + /* 120 */ "lvalue", |
| 1498 | + /* 121 */ "even", |
| 1499 | + /* 122 */ "relexpr", |
| 1500 | + /* 123 */ "optrelexpr", |
| 1501 | + /* 124 */ "document", |
| 1502 | + /* 125 */ "print", |
| 1503 | + /* 126 */ "prlist", |
| 1504 | + /* 127 */ "pritem", |
| 1505 | + /* 128 */ "prsep", |
| 1506 | + /* 129 */ "attribute_list", |
| 1507 | + /* 130 */ "savelist", |
| 1508 | + /* 131 */ "alist", |
| 1509 | + /* 132 */ "attribute", |
| 1510 | + /* 133 */ "go", |
| 1511 | + /* 134 */ "boolproperty", |
| 1512 | + /* 135 */ "withclause", |
| 1513 | + /* 136 */ "between", |
| 1514 | + /* 137 */ "place2", |
| 1462 | 1515 | }; |
| 1463 | 1516 | #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ |
| 1464 | 1517 | |
| 1465 | 1518 | #ifndef NDEBUG |
| 1466 | 1519 | /* For tracing reduce actions, the names of all rules are required. |
| | @@ -1743,24 +1796,24 @@ |
| 1743 | 1796 | ** Note: during a reduce, the only symbols destroyed are those |
| 1744 | 1797 | ** which appear on the RHS of the rule, but which are *not* used |
| 1745 | 1798 | ** inside the C code. |
| 1746 | 1799 | */ |
| 1747 | 1800 | /********* Begin destructor definitions ***************************************/ |
| 1748 | | - case 100: /* statement_list */ |
| 1749 | | -{ |
| 1750 | | -#line 511 "pikchr.y" |
| 1751 | | -pik_elist_free(p,(yypminor->yy235)); |
| 1752 | | -#line 1777 "pikchr.c" |
| 1753 | | -} |
| 1754 | | - break; |
| 1755 | | - case 101: /* statement */ |
| 1756 | | - case 102: /* unnamed_statement */ |
| 1757 | | - case 103: /* basetype */ |
| 1758 | | -{ |
| 1759 | | -#line 513 "pikchr.y" |
| 1760 | | -pik_elem_free(p,(yypminor->yy162)); |
| 1761 | | -#line 1786 "pikchr.c" |
| 1801 | + case 101: /* statement_list */ |
| 1802 | +{ |
| 1803 | +#line 524 "pikchr.y" |
| 1804 | +pik_elist_free(p,(yypminor->yy23)); |
| 1805 | +#line 1805 "pikchr.c" |
| 1806 | +} |
| 1807 | + break; |
| 1808 | + case 102: /* statement */ |
| 1809 | + case 103: /* unnamed_statement */ |
| 1810 | + case 104: /* basetype */ |
| 1811 | +{ |
| 1812 | +#line 526 "pikchr.y" |
| 1813 | +pik_elem_free(p,(yypminor->yy54)); |
| 1814 | +#line 1814 "pikchr.c" |
| 1762 | 1815 | } |
| 1763 | 1816 | break; |
| 1764 | 1817 | /********* End destructor definitions *****************************************/ |
| 1765 | 1818 | default: break; /* If no destructor action specified: do nothing */ |
| 1766 | 1819 | } |
| | @@ -1991,14 +2044,14 @@ |
| 1991 | 2044 | #endif |
| 1992 | 2045 | while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser); |
| 1993 | 2046 | /* Here code is inserted which will execute if the parser |
| 1994 | 2047 | ** stack every overflows */ |
| 1995 | 2048 | /******** Begin %stack_overflow code ******************************************/ |
| 1996 | | -#line 545 "pikchr.y" |
| 2049 | +#line 559 "pikchr.y" |
| 1997 | 2050 | |
| 1998 | 2051 | pik_error(p, 0, "parser stack overflow"); |
| 1999 | | -#line 2024 "pikchr.c" |
| 2052 | +#line 2052 "pikchr.c" |
| 2000 | 2053 | /******** End %stack_overflow code ********************************************/ |
| 2001 | 2054 | pik_parserARG_STORE /* Suppress warning about unused %extra_argument var */ |
| 2002 | 2055 | pik_parserCTX_STORE |
| 2003 | 2056 | } |
| 2004 | 2057 | |
| | @@ -2060,166 +2113,166 @@ |
| 2060 | 2113 | } |
| 2061 | 2114 | |
| 2062 | 2115 | /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side |
| 2063 | 2116 | ** of that rule */ |
| 2064 | 2117 | static const YYCODETYPE yyRuleInfoLhs[] = { |
| 2065 | | - 122, /* (0) document ::= statement_list */ |
| 2066 | | - 100, /* (1) statement_list ::= statement */ |
| 2067 | | - 100, /* (2) statement_list ::= statement_list EOL statement */ |
| 2068 | | - 101, /* (3) statement ::= */ |
| 2069 | | - 101, /* (4) statement ::= direction */ |
| 2070 | | - 101, /* (5) statement ::= lvalue ASSIGN rvalue */ |
| 2071 | | - 101, /* (6) statement ::= PLACENAME COLON unnamed_statement */ |
| 2072 | | - 101, /* (7) statement ::= PLACENAME COLON position */ |
| 2073 | | - 101, /* (8) statement ::= unnamed_statement */ |
| 2074 | | - 101, /* (9) statement ::= print prlist */ |
| 2075 | | - 101, /* (10) statement ::= ASSERT LP expr EQ expr RP */ |
| 2076 | | - 101, /* (11) statement ::= ASSERT LP position EQ position RP */ |
| 2077 | | - 101, /* (12) statement ::= DEFINE ID CODEBLOCK */ |
| 2078 | | - 117, /* (13) rvalue ::= PLACENAME */ |
| 2079 | | - 125, /* (14) pritem ::= FILL */ |
| 2080 | | - 125, /* (15) pritem ::= COLOR */ |
| 2081 | | - 125, /* (16) pritem ::= THICKNESS */ |
| 2082 | | - 125, /* (17) pritem ::= rvalue */ |
| 2083 | | - 125, /* (18) pritem ::= STRING */ |
| 2084 | | - 126, /* (19) prsep ::= COMMA */ |
| 2085 | | - 102, /* (20) unnamed_statement ::= basetype attribute_list */ |
| 2086 | | - 103, /* (21) basetype ::= CLASSNAME */ |
| 2087 | | - 103, /* (22) basetype ::= STRING textposition */ |
| 2088 | | - 103, /* (23) basetype ::= LB savelist statement_list RB */ |
| 2089 | | - 128, /* (24) savelist ::= */ |
| 2090 | | - 120, /* (25) relexpr ::= expr */ |
| 2091 | | - 120, /* (26) relexpr ::= expr PERCENT */ |
| 2092 | | - 121, /* (27) optrelexpr ::= */ |
| 2093 | | - 127, /* (28) attribute_list ::= relexpr alist */ |
| 2094 | | - 130, /* (29) attribute ::= numproperty relexpr */ |
| 2095 | | - 130, /* (30) attribute ::= dashproperty expr */ |
| 2096 | | - 130, /* (31) attribute ::= dashproperty */ |
| 2097 | | - 130, /* (32) attribute ::= colorproperty rvalue */ |
| 2098 | | - 130, /* (33) attribute ::= go direction optrelexpr */ |
| 2099 | | - 130, /* (34) attribute ::= go direction even position */ |
| 2100 | | - 130, /* (35) attribute ::= CLOSE */ |
| 2101 | | - 130, /* (36) attribute ::= CHOP */ |
| 2102 | | - 130, /* (37) attribute ::= FROM position */ |
| 2103 | | - 130, /* (38) attribute ::= TO position */ |
| 2104 | | - 130, /* (39) attribute ::= THEN */ |
| 2105 | | - 130, /* (40) attribute ::= THEN optrelexpr HEADING expr */ |
| 2106 | | - 130, /* (41) attribute ::= THEN optrelexpr EDGEPT */ |
| 2107 | | - 130, /* (42) attribute ::= GO optrelexpr HEADING expr */ |
| 2108 | | - 130, /* (43) attribute ::= GO optrelexpr EDGEPT */ |
| 2109 | | - 130, /* (44) attribute ::= AT position */ |
| 2110 | | - 130, /* (45) attribute ::= SAME */ |
| 2111 | | - 130, /* (46) attribute ::= SAME AS object */ |
| 2112 | | - 130, /* (47) attribute ::= STRING textposition */ |
| 2113 | | - 130, /* (48) attribute ::= FIT */ |
| 2114 | | - 130, /* (49) attribute ::= BEHIND object */ |
| 2115 | | - 133, /* (50) withclause ::= DOT_E edge AT position */ |
| 2116 | | - 133, /* (51) withclause ::= edge AT position */ |
| 2117 | | - 105, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */ |
| 2118 | | - 132, /* (53) boolproperty ::= CW */ |
| 2119 | | - 132, /* (54) boolproperty ::= CCW */ |
| 2120 | | - 132, /* (55) boolproperty ::= LARROW */ |
| 2121 | | - 132, /* (56) boolproperty ::= RARROW */ |
| 2122 | | - 132, /* (57) boolproperty ::= LRARROW */ |
| 2123 | | - 132, /* (58) boolproperty ::= INVIS */ |
| 2124 | | - 132, /* (59) boolproperty ::= THICK */ |
| 2125 | | - 132, /* (60) boolproperty ::= THIN */ |
| 2126 | | - 132, /* (61) boolproperty ::= SOLID */ |
| 2127 | | - 116, /* (62) textposition ::= */ |
| 2128 | | - 116, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|MONO|ALIGNED|BIG|SMALL */ |
| 2129 | | - 111, /* (64) position ::= expr COMMA expr */ |
| 2130 | | - 111, /* (65) position ::= place PLUS expr COMMA expr */ |
| 2131 | | - 111, /* (66) position ::= place MINUS expr COMMA expr */ |
| 2132 | | - 111, /* (67) position ::= place PLUS LP expr COMMA expr RP */ |
| 2133 | | - 111, /* (68) position ::= place MINUS LP expr COMMA expr RP */ |
| 2134 | | - 111, /* (69) position ::= LP position COMMA position RP */ |
| 2135 | | - 111, /* (70) position ::= LP position RP */ |
| 2136 | | - 111, /* (71) position ::= expr between position AND position */ |
| 2137 | | - 111, /* (72) position ::= expr LT position COMMA position GT */ |
| 2138 | | - 111, /* (73) position ::= expr ABOVE position */ |
| 2139 | | - 111, /* (74) position ::= expr BELOW position */ |
| 2140 | | - 111, /* (75) position ::= expr LEFT OF position */ |
| 2141 | | - 111, /* (76) position ::= expr RIGHT OF position */ |
| 2142 | | - 111, /* (77) position ::= expr ON HEADING EDGEPT OF position */ |
| 2143 | | - 111, /* (78) position ::= expr HEADING EDGEPT OF position */ |
| 2144 | | - 111, /* (79) position ::= expr EDGEPT OF position */ |
| 2145 | | - 111, /* (80) position ::= expr ON HEADING expr FROM position */ |
| 2146 | | - 111, /* (81) position ::= expr HEADING expr FROM position */ |
| 2147 | | - 112, /* (82) place ::= edge OF object */ |
| 2148 | | - 135, /* (83) place2 ::= object */ |
| 2149 | | - 135, /* (84) place2 ::= object DOT_E edge */ |
| 2150 | | - 135, /* (85) place2 ::= NTH VERTEX OF object */ |
| 2151 | | - 113, /* (86) object ::= nth */ |
| 2152 | | - 113, /* (87) object ::= nth OF|IN object */ |
| 2153 | | - 114, /* (88) objectname ::= THIS */ |
| 2154 | | - 114, /* (89) objectname ::= PLACENAME */ |
| 2155 | | - 114, /* (90) objectname ::= objectname DOT_U PLACENAME */ |
| 2156 | | - 115, /* (91) nth ::= NTH CLASSNAME */ |
| 2157 | | - 115, /* (92) nth ::= NTH LAST CLASSNAME */ |
| 2158 | | - 115, /* (93) nth ::= LAST CLASSNAME */ |
| 2159 | | - 115, /* (94) nth ::= LAST */ |
| 2160 | | - 115, /* (95) nth ::= NTH LB RB */ |
| 2161 | | - 115, /* (96) nth ::= NTH LAST LB RB */ |
| 2162 | | - 115, /* (97) nth ::= LAST LB RB */ |
| 2163 | | - 104, /* (98) expr ::= expr PLUS expr */ |
| 2164 | | - 104, /* (99) expr ::= expr MINUS expr */ |
| 2165 | | - 104, /* (100) expr ::= expr STAR expr */ |
| 2166 | | - 104, /* (101) expr ::= expr SLASH expr */ |
| 2167 | | - 104, /* (102) expr ::= MINUS expr */ |
| 2168 | | - 104, /* (103) expr ::= PLUS expr */ |
| 2169 | | - 104, /* (104) expr ::= LP expr RP */ |
| 2170 | | - 104, /* (105) expr ::= LP FILL|COLOR|THICKNESS RP */ |
| 2171 | | - 104, /* (106) expr ::= NUMBER */ |
| 2172 | | - 104, /* (107) expr ::= ID */ |
| 2173 | | - 104, /* (108) expr ::= FUNC1 LP expr RP */ |
| 2174 | | - 104, /* (109) expr ::= FUNC2 LP expr COMMA expr RP */ |
| 2175 | | - 104, /* (110) expr ::= DIST LP position COMMA position RP */ |
| 2176 | | - 104, /* (111) expr ::= place2 DOT_XY X */ |
| 2177 | | - 104, /* (112) expr ::= place2 DOT_XY Y */ |
| 2178 | | - 104, /* (113) expr ::= object DOT_L numproperty */ |
| 2179 | | - 104, /* (114) expr ::= object DOT_L dashproperty */ |
| 2180 | | - 104, /* (115) expr ::= object DOT_L colorproperty */ |
| 2181 | | - 118, /* (116) lvalue ::= ID */ |
| 2182 | | - 118, /* (117) lvalue ::= FILL */ |
| 2183 | | - 118, /* (118) lvalue ::= COLOR */ |
| 2184 | | - 118, /* (119) lvalue ::= THICKNESS */ |
| 2185 | | - 117, /* (120) rvalue ::= expr */ |
| 2186 | | - 123, /* (121) print ::= PRINT */ |
| 2187 | | - 124, /* (122) prlist ::= pritem */ |
| 2188 | | - 124, /* (123) prlist ::= prlist prsep pritem */ |
| 2189 | | - 107, /* (124) direction ::= UP */ |
| 2190 | | - 107, /* (125) direction ::= DOWN */ |
| 2191 | | - 107, /* (126) direction ::= LEFT */ |
| 2192 | | - 107, /* (127) direction ::= RIGHT */ |
| 2193 | | - 121, /* (128) optrelexpr ::= relexpr */ |
| 2194 | | - 127, /* (129) attribute_list ::= alist */ |
| 2195 | | - 129, /* (130) alist ::= */ |
| 2196 | | - 129, /* (131) alist ::= alist attribute */ |
| 2197 | | - 130, /* (132) attribute ::= boolproperty */ |
| 2198 | | - 130, /* (133) attribute ::= WITH withclause */ |
| 2199 | | - 131, /* (134) go ::= GO */ |
| 2200 | | - 131, /* (135) go ::= */ |
| 2201 | | - 119, /* (136) even ::= UNTIL EVEN WITH */ |
| 2202 | | - 119, /* (137) even ::= EVEN WITH */ |
| 2203 | | - 108, /* (138) dashproperty ::= DOTTED */ |
| 2204 | | - 108, /* (139) dashproperty ::= DASHED */ |
| 2205 | | - 109, /* (140) colorproperty ::= FILL */ |
| 2206 | | - 109, /* (141) colorproperty ::= COLOR */ |
| 2207 | | - 111, /* (142) position ::= place */ |
| 2208 | | - 134, /* (143) between ::= WAY BETWEEN */ |
| 2209 | | - 134, /* (144) between ::= BETWEEN */ |
| 2210 | | - 134, /* (145) between ::= OF THE WAY BETWEEN */ |
| 2211 | | - 112, /* (146) place ::= place2 */ |
| 2212 | | - 106, /* (147) edge ::= CENTER */ |
| 2213 | | - 106, /* (148) edge ::= EDGEPT */ |
| 2214 | | - 106, /* (149) edge ::= TOP */ |
| 2215 | | - 106, /* (150) edge ::= BOTTOM */ |
| 2216 | | - 106, /* (151) edge ::= START */ |
| 2217 | | - 106, /* (152) edge ::= END */ |
| 2218 | | - 106, /* (153) edge ::= RIGHT */ |
| 2219 | | - 106, /* (154) edge ::= LEFT */ |
| 2220 | | - 113, /* (155) object ::= objectname */ |
| 2118 | + 124, /* (0) document ::= statement_list */ |
| 2119 | + 101, /* (1) statement_list ::= statement */ |
| 2120 | + 101, /* (2) statement_list ::= statement_list EOL statement */ |
| 2121 | + 102, /* (3) statement ::= */ |
| 2122 | + 102, /* (4) statement ::= direction */ |
| 2123 | + 102, /* (5) statement ::= lvalue ASSIGN rvalue */ |
| 2124 | + 102, /* (6) statement ::= PLACENAME COLON unnamed_statement */ |
| 2125 | + 102, /* (7) statement ::= PLACENAME COLON position */ |
| 2126 | + 102, /* (8) statement ::= unnamed_statement */ |
| 2127 | + 102, /* (9) statement ::= print prlist */ |
| 2128 | + 102, /* (10) statement ::= ASSERT LP expr EQ expr RP */ |
| 2129 | + 102, /* (11) statement ::= ASSERT LP position EQ position RP */ |
| 2130 | + 102, /* (12) statement ::= DEFINE ID CODEBLOCK */ |
| 2131 | + 119, /* (13) rvalue ::= PLACENAME */ |
| 2132 | + 127, /* (14) pritem ::= FILL */ |
| 2133 | + 127, /* (15) pritem ::= COLOR */ |
| 2134 | + 127, /* (16) pritem ::= THICKNESS */ |
| 2135 | + 127, /* (17) pritem ::= rvalue */ |
| 2136 | + 127, /* (18) pritem ::= STRING */ |
| 2137 | + 128, /* (19) prsep ::= COMMA */ |
| 2138 | + 103, /* (20) unnamed_statement ::= basetype attribute_list */ |
| 2139 | + 104, /* (21) basetype ::= CLASSNAME */ |
| 2140 | + 104, /* (22) basetype ::= STRING textposition */ |
| 2141 | + 104, /* (23) basetype ::= LB savelist statement_list RB */ |
| 2142 | + 130, /* (24) savelist ::= */ |
| 2143 | + 122, /* (25) relexpr ::= expr */ |
| 2144 | + 122, /* (26) relexpr ::= expr PERCENT */ |
| 2145 | + 123, /* (27) optrelexpr ::= */ |
| 2146 | + 129, /* (28) attribute_list ::= relexpr alist */ |
| 2147 | + 132, /* (29) attribute ::= numproperty relexpr */ |
| 2148 | + 132, /* (30) attribute ::= dashproperty expr */ |
| 2149 | + 132, /* (31) attribute ::= dashproperty */ |
| 2150 | + 132, /* (32) attribute ::= colorproperty rvalue */ |
| 2151 | + 132, /* (33) attribute ::= go direction optrelexpr */ |
| 2152 | + 132, /* (34) attribute ::= go direction even position */ |
| 2153 | + 132, /* (35) attribute ::= CLOSE */ |
| 2154 | + 132, /* (36) attribute ::= CHOP */ |
| 2155 | + 132, /* (37) attribute ::= FROM position */ |
| 2156 | + 132, /* (38) attribute ::= TO position */ |
| 2157 | + 132, /* (39) attribute ::= THEN */ |
| 2158 | + 132, /* (40) attribute ::= THEN optrelexpr HEADING expr */ |
| 2159 | + 132, /* (41) attribute ::= THEN optrelexpr EDGEPT */ |
| 2160 | + 132, /* (42) attribute ::= GO optrelexpr HEADING expr */ |
| 2161 | + 132, /* (43) attribute ::= GO optrelexpr EDGEPT */ |
| 2162 | + 132, /* (44) attribute ::= AT position */ |
| 2163 | + 132, /* (45) attribute ::= SAME */ |
| 2164 | + 132, /* (46) attribute ::= SAME AS object */ |
| 2165 | + 132, /* (47) attribute ::= STRING textposition */ |
| 2166 | + 132, /* (48) attribute ::= FIT */ |
| 2167 | + 132, /* (49) attribute ::= BEHIND object */ |
| 2168 | + 135, /* (50) withclause ::= DOT_E edge AT position */ |
| 2169 | + 135, /* (51) withclause ::= edge AT position */ |
| 2170 | + 106, /* (52) numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */ |
| 2171 | + 134, /* (53) boolproperty ::= CW */ |
| 2172 | + 134, /* (54) boolproperty ::= CCW */ |
| 2173 | + 134, /* (55) boolproperty ::= LARROW */ |
| 2174 | + 134, /* (56) boolproperty ::= RARROW */ |
| 2175 | + 134, /* (57) boolproperty ::= LRARROW */ |
| 2176 | + 134, /* (58) boolproperty ::= INVIS */ |
| 2177 | + 134, /* (59) boolproperty ::= THICK */ |
| 2178 | + 134, /* (60) boolproperty ::= THIN */ |
| 2179 | + 134, /* (61) boolproperty ::= SOLID */ |
| 2180 | + 118, /* (62) textposition ::= */ |
| 2181 | + 118, /* (63) textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|MONO|ALIGNED|BIG|SMALL */ |
| 2182 | + 113, /* (64) position ::= expr COMMA expr */ |
| 2183 | + 113, /* (65) position ::= place PLUS expr COMMA expr */ |
| 2184 | + 113, /* (66) position ::= place MINUS expr COMMA expr */ |
| 2185 | + 113, /* (67) position ::= place PLUS LP expr COMMA expr RP */ |
| 2186 | + 113, /* (68) position ::= place MINUS LP expr COMMA expr RP */ |
| 2187 | + 113, /* (69) position ::= LP position COMMA position RP */ |
| 2188 | + 113, /* (70) position ::= LP position RP */ |
| 2189 | + 113, /* (71) position ::= expr between position AND position */ |
| 2190 | + 113, /* (72) position ::= expr LT position COMMA position GT */ |
| 2191 | + 113, /* (73) position ::= expr ABOVE position */ |
| 2192 | + 113, /* (74) position ::= expr BELOW position */ |
| 2193 | + 113, /* (75) position ::= expr LEFT OF position */ |
| 2194 | + 113, /* (76) position ::= expr RIGHT OF position */ |
| 2195 | + 113, /* (77) position ::= expr ON HEADING EDGEPT OF position */ |
| 2196 | + 113, /* (78) position ::= expr HEADING EDGEPT OF position */ |
| 2197 | + 113, /* (79) position ::= expr EDGEPT OF position */ |
| 2198 | + 113, /* (80) position ::= expr ON HEADING expr FROM position */ |
| 2199 | + 113, /* (81) position ::= expr HEADING expr FROM position */ |
| 2200 | + 114, /* (82) place ::= edge OF object */ |
| 2201 | + 137, /* (83) place2 ::= object */ |
| 2202 | + 137, /* (84) place2 ::= object DOT_E edge */ |
| 2203 | + 137, /* (85) place2 ::= NTH VERTEX OF object */ |
| 2204 | + 115, /* (86) object ::= nth */ |
| 2205 | + 115, /* (87) object ::= nth OF|IN object */ |
| 2206 | + 116, /* (88) objectname ::= THIS */ |
| 2207 | + 116, /* (89) objectname ::= PLACENAME */ |
| 2208 | + 116, /* (90) objectname ::= objectname DOT_U PLACENAME */ |
| 2209 | + 117, /* (91) nth ::= NTH CLASSNAME */ |
| 2210 | + 117, /* (92) nth ::= NTH LAST CLASSNAME */ |
| 2211 | + 117, /* (93) nth ::= LAST CLASSNAME */ |
| 2212 | + 117, /* (94) nth ::= LAST */ |
| 2213 | + 117, /* (95) nth ::= NTH LB RB */ |
| 2214 | + 117, /* (96) nth ::= NTH LAST LB RB */ |
| 2215 | + 117, /* (97) nth ::= LAST LB RB */ |
| 2216 | + 105, /* (98) expr ::= expr PLUS expr */ |
| 2217 | + 105, /* (99) expr ::= expr MINUS expr */ |
| 2218 | + 105, /* (100) expr ::= expr STAR expr */ |
| 2219 | + 105, /* (101) expr ::= expr SLASH expr */ |
| 2220 | + 105, /* (102) expr ::= MINUS expr */ |
| 2221 | + 105, /* (103) expr ::= PLUS expr */ |
| 2222 | + 105, /* (104) expr ::= LP expr RP */ |
| 2223 | + 105, /* (105) expr ::= LP FILL|COLOR|THICKNESS RP */ |
| 2224 | + 105, /* (106) expr ::= NUMBER */ |
| 2225 | + 105, /* (107) expr ::= ID */ |
| 2226 | + 105, /* (108) expr ::= FUNC1 LP expr RP */ |
| 2227 | + 105, /* (109) expr ::= FUNC2 LP expr COMMA expr RP */ |
| 2228 | + 105, /* (110) expr ::= DIST LP position COMMA position RP */ |
| 2229 | + 105, /* (111) expr ::= place2 DOT_XY X */ |
| 2230 | + 105, /* (112) expr ::= place2 DOT_XY Y */ |
| 2231 | + 105, /* (113) expr ::= object DOT_L numproperty */ |
| 2232 | + 105, /* (114) expr ::= object DOT_L dashproperty */ |
| 2233 | + 105, /* (115) expr ::= object DOT_L colorproperty */ |
| 2234 | + 120, /* (116) lvalue ::= ID */ |
| 2235 | + 120, /* (117) lvalue ::= FILL */ |
| 2236 | + 120, /* (118) lvalue ::= COLOR */ |
| 2237 | + 120, /* (119) lvalue ::= THICKNESS */ |
| 2238 | + 119, /* (120) rvalue ::= expr */ |
| 2239 | + 125, /* (121) print ::= PRINT */ |
| 2240 | + 126, /* (122) prlist ::= pritem */ |
| 2241 | + 126, /* (123) prlist ::= prlist prsep pritem */ |
| 2242 | + 109, /* (124) direction ::= UP */ |
| 2243 | + 109, /* (125) direction ::= DOWN */ |
| 2244 | + 109, /* (126) direction ::= LEFT */ |
| 2245 | + 109, /* (127) direction ::= RIGHT */ |
| 2246 | + 123, /* (128) optrelexpr ::= relexpr */ |
| 2247 | + 129, /* (129) attribute_list ::= alist */ |
| 2248 | + 131, /* (130) alist ::= */ |
| 2249 | + 131, /* (131) alist ::= alist attribute */ |
| 2250 | + 132, /* (132) attribute ::= boolproperty */ |
| 2251 | + 132, /* (133) attribute ::= WITH withclause */ |
| 2252 | + 133, /* (134) go ::= GO */ |
| 2253 | + 133, /* (135) go ::= */ |
| 2254 | + 121, /* (136) even ::= UNTIL EVEN WITH */ |
| 2255 | + 121, /* (137) even ::= EVEN WITH */ |
| 2256 | + 110, /* (138) dashproperty ::= DOTTED */ |
| 2257 | + 110, /* (139) dashproperty ::= DASHED */ |
| 2258 | + 111, /* (140) colorproperty ::= FILL */ |
| 2259 | + 111, /* (141) colorproperty ::= COLOR */ |
| 2260 | + 113, /* (142) position ::= place */ |
| 2261 | + 136, /* (143) between ::= WAY BETWEEN */ |
| 2262 | + 136, /* (144) between ::= BETWEEN */ |
| 2263 | + 136, /* (145) between ::= OF THE WAY BETWEEN */ |
| 2264 | + 114, /* (146) place ::= place2 */ |
| 2265 | + 107, /* (147) edge ::= CENTER */ |
| 2266 | + 107, /* (148) edge ::= EDGEPT */ |
| 2267 | + 107, /* (149) edge ::= TOP */ |
| 2268 | + 107, /* (150) edge ::= BOTTOM */ |
| 2269 | + 107, /* (151) edge ::= START */ |
| 2270 | + 107, /* (152) edge ::= END */ |
| 2271 | + 107, /* (153) edge ::= RIGHT */ |
| 2272 | + 107, /* (154) edge ::= LEFT */ |
| 2273 | + 115, /* (155) object ::= objectname */ |
| 2221 | 2274 | }; |
| 2222 | 2275 | |
| 2223 | 2276 | /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number |
| 2224 | 2277 | ** of symbols on the right-hand side of that rule. */ |
| 2225 | 2278 | static const signed char yyRuleInfoNRhs[] = { |
| | @@ -2419,620 +2472,620 @@ |
| 2419 | 2472 | ** break; |
| 2420 | 2473 | */ |
| 2421 | 2474 | /********** Begin reduce actions **********************************************/ |
| 2422 | 2475 | YYMINORTYPE yylhsminor; |
| 2423 | 2476 | case 0: /* document ::= statement_list */ |
| 2424 | | -#line 549 "pikchr.y" |
| 2425 | | -{pik_render(p,yymsp[0].minor.yy235);} |
| 2426 | | -#line 2451 "pikchr.c" |
| 2477 | +#line 563 "pikchr.y" |
| 2478 | +{pik_render(p,yymsp[0].minor.yy23);} |
| 2479 | +#line 2479 "pikchr.c" |
| 2427 | 2480 | break; |
| 2428 | 2481 | case 1: /* statement_list ::= statement */ |
| 2429 | | -#line 552 "pikchr.y" |
| 2430 | | -{ yylhsminor.yy235 = pik_elist_append(p,0,yymsp[0].minor.yy162); } |
| 2431 | | -#line 2456 "pikchr.c" |
| 2432 | | - yymsp[0].minor.yy235 = yylhsminor.yy235; |
| 2482 | +#line 566 "pikchr.y" |
| 2483 | +{ yylhsminor.yy23 = pik_elist_append(p,0,yymsp[0].minor.yy54); } |
| 2484 | +#line 2484 "pikchr.c" |
| 2485 | + yymsp[0].minor.yy23 = yylhsminor.yy23; |
| 2433 | 2486 | break; |
| 2434 | 2487 | case 2: /* statement_list ::= statement_list EOL statement */ |
| 2435 | | -#line 554 "pikchr.y" |
| 2436 | | -{ yylhsminor.yy235 = pik_elist_append(p,yymsp[-2].minor.yy235,yymsp[0].minor.yy162); } |
| 2437 | | -#line 2462 "pikchr.c" |
| 2438 | | - yymsp[-2].minor.yy235 = yylhsminor.yy235; |
| 2488 | +#line 568 "pikchr.y" |
| 2489 | +{ yylhsminor.yy23 = pik_elist_append(p,yymsp[-2].minor.yy23,yymsp[0].minor.yy54); } |
| 2490 | +#line 2490 "pikchr.c" |
| 2491 | + yymsp[-2].minor.yy23 = yylhsminor.yy23; |
| 2439 | 2492 | break; |
| 2440 | 2493 | case 3: /* statement ::= */ |
| 2441 | | -#line 557 "pikchr.y" |
| 2442 | | -{ yymsp[1].minor.yy162 = 0; } |
| 2443 | | -#line 2468 "pikchr.c" |
| 2494 | +#line 571 "pikchr.y" |
| 2495 | +{ yymsp[1].minor.yy54 = 0; } |
| 2496 | +#line 2496 "pikchr.c" |
| 2444 | 2497 | break; |
| 2445 | 2498 | case 4: /* statement ::= direction */ |
| 2446 | | -#line 558 "pikchr.y" |
| 2447 | | -{ pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy162=0; } |
| 2448 | | -#line 2473 "pikchr.c" |
| 2449 | | - yymsp[0].minor.yy162 = yylhsminor.yy162; |
| 2499 | +#line 572 "pikchr.y" |
| 2500 | +{ pik_set_direction(p,yymsp[0].minor.yy0.eCode); yylhsminor.yy54=0; } |
| 2501 | +#line 2501 "pikchr.c" |
| 2502 | + yymsp[0].minor.yy54 = yylhsminor.yy54; |
| 2450 | 2503 | break; |
| 2451 | 2504 | case 5: /* statement ::= lvalue ASSIGN rvalue */ |
| 2452 | | -#line 559 "pikchr.y" |
| 2453 | | -{pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy21,&yymsp[-1].minor.yy0); yylhsminor.yy162=0;} |
| 2454 | | -#line 2479 "pikchr.c" |
| 2455 | | - yymsp[-2].minor.yy162 = yylhsminor.yy162; |
| 2505 | +#line 573 "pikchr.y" |
| 2506 | +{pik_set_var(p,&yymsp[-2].minor.yy0,yymsp[0].minor.yy129,&yymsp[-1].minor.yy0); yylhsminor.yy54=0;} |
| 2507 | +#line 2507 "pikchr.c" |
| 2508 | + yymsp[-2].minor.yy54 = yylhsminor.yy54; |
| 2456 | 2509 | break; |
| 2457 | 2510 | case 6: /* statement ::= PLACENAME COLON unnamed_statement */ |
| 2458 | | -#line 561 "pikchr.y" |
| 2459 | | -{ yylhsminor.yy162 = yymsp[0].minor.yy162; pik_elem_setname(p,yymsp[0].minor.yy162,&yymsp[-2].minor.yy0); } |
| 2460 | | -#line 2485 "pikchr.c" |
| 2461 | | - yymsp[-2].minor.yy162 = yylhsminor.yy162; |
| 2511 | +#line 575 "pikchr.y" |
| 2512 | +{ yylhsminor.yy54 = yymsp[0].minor.yy54; pik_elem_setname(p,yymsp[0].minor.yy54,&yymsp[-2].minor.yy0); } |
| 2513 | +#line 2513 "pikchr.c" |
| 2514 | + yymsp[-2].minor.yy54 = yylhsminor.yy54; |
| 2462 | 2515 | break; |
| 2463 | 2516 | case 7: /* statement ::= PLACENAME COLON position */ |
| 2464 | | -#line 563 "pikchr.y" |
| 2465 | | -{ yylhsminor.yy162 = pik_elem_new(p,0,0,0); |
| 2466 | | - if(yylhsminor.yy162){ yylhsminor.yy162->ptAt = yymsp[0].minor.yy63; pik_elem_setname(p,yylhsminor.yy162,&yymsp[-2].minor.yy0); }} |
| 2467 | | -#line 2492 "pikchr.c" |
| 2468 | | - yymsp[-2].minor.yy162 = yylhsminor.yy162; |
| 2517 | +#line 577 "pikchr.y" |
| 2518 | +{ yylhsminor.yy54 = pik_elem_new(p,0,0,0); |
| 2519 | + if(yylhsminor.yy54){ yylhsminor.yy54->ptAt = yymsp[0].minor.yy187; pik_elem_setname(p,yylhsminor.yy54,&yymsp[-2].minor.yy0); }} |
| 2520 | +#line 2520 "pikchr.c" |
| 2521 | + yymsp[-2].minor.yy54 = yylhsminor.yy54; |
| 2469 | 2522 | break; |
| 2470 | 2523 | case 8: /* statement ::= unnamed_statement */ |
| 2471 | | -#line 565 "pikchr.y" |
| 2472 | | -{yylhsminor.yy162 = yymsp[0].minor.yy162;} |
| 2473 | | -#line 2498 "pikchr.c" |
| 2474 | | - yymsp[0].minor.yy162 = yylhsminor.yy162; |
| 2524 | +#line 579 "pikchr.y" |
| 2525 | +{yylhsminor.yy54 = yymsp[0].minor.yy54;} |
| 2526 | +#line 2526 "pikchr.c" |
| 2527 | + yymsp[0].minor.yy54 = yylhsminor.yy54; |
| 2475 | 2528 | break; |
| 2476 | 2529 | case 9: /* statement ::= print prlist */ |
| 2477 | | -#line 566 "pikchr.y" |
| 2478 | | -{pik_append(p,"<br>\n",5); yymsp[-1].minor.yy162=0;} |
| 2479 | | -#line 2504 "pikchr.c" |
| 2530 | +#line 580 "pikchr.y" |
| 2531 | +{pik_append(p,"<br>\n",5); yymsp[-1].minor.yy54=0;} |
| 2532 | +#line 2532 "pikchr.c" |
| 2480 | 2533 | break; |
| 2481 | 2534 | case 10: /* statement ::= ASSERT LP expr EQ expr RP */ |
| 2482 | | -#line 571 "pikchr.y" |
| 2483 | | -{yymsp[-5].minor.yy162=pik_assert(p,yymsp[-3].minor.yy21,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy21);} |
| 2484 | | -#line 2509 "pikchr.c" |
| 2535 | +#line 585 "pikchr.y" |
| 2536 | +{yymsp[-5].minor.yy54=pik_assert(p,yymsp[-3].minor.yy129,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy129);} |
| 2537 | +#line 2537 "pikchr.c" |
| 2485 | 2538 | break; |
| 2486 | 2539 | case 11: /* statement ::= ASSERT LP position EQ position RP */ |
| 2487 | | -#line 573 "pikchr.y" |
| 2488 | | -{yymsp[-5].minor.yy162=pik_position_assert(p,&yymsp[-3].minor.yy63,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy63);} |
| 2489 | | -#line 2514 "pikchr.c" |
| 2540 | +#line 587 "pikchr.y" |
| 2541 | +{yymsp[-5].minor.yy54=pik_position_assert(p,&yymsp[-3].minor.yy187,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy187);} |
| 2542 | +#line 2542 "pikchr.c" |
| 2490 | 2543 | break; |
| 2491 | 2544 | case 12: /* statement ::= DEFINE ID CODEBLOCK */ |
| 2492 | | -#line 574 "pikchr.y" |
| 2493 | | -{yymsp[-2].minor.yy162=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} |
| 2494 | | -#line 2519 "pikchr.c" |
| 2545 | +#line 588 "pikchr.y" |
| 2546 | +{yymsp[-2].minor.yy54=0; pik_add_macro(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} |
| 2547 | +#line 2547 "pikchr.c" |
| 2495 | 2548 | break; |
| 2496 | 2549 | case 13: /* rvalue ::= PLACENAME */ |
| 2497 | | -#line 585 "pikchr.y" |
| 2498 | | -{yylhsminor.yy21 = pik_lookup_color(p,&yymsp[0].minor.yy0);} |
| 2499 | | -#line 2524 "pikchr.c" |
| 2500 | | - yymsp[0].minor.yy21 = yylhsminor.yy21; |
| 2550 | +#line 599 "pikchr.y" |
| 2551 | +{yylhsminor.yy129 = pik_lookup_color(p,&yymsp[0].minor.yy0);} |
| 2552 | +#line 2552 "pikchr.c" |
| 2553 | + yymsp[0].minor.yy129 = yylhsminor.yy129; |
| 2501 | 2554 | break; |
| 2502 | 2555 | case 14: /* pritem ::= FILL */ |
| 2503 | 2556 | case 15: /* pritem ::= COLOR */ yytestcase(yyruleno==15); |
| 2504 | 2557 | case 16: /* pritem ::= THICKNESS */ yytestcase(yyruleno==16); |
| 2505 | | -#line 590 "pikchr.y" |
| 2558 | +#line 604 "pikchr.y" |
| 2506 | 2559 | {pik_append_num(p,"",pik_value(p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.n,0));} |
| 2507 | | -#line 2532 "pikchr.c" |
| 2560 | +#line 2560 "pikchr.c" |
| 2508 | 2561 | break; |
| 2509 | 2562 | case 17: /* pritem ::= rvalue */ |
| 2510 | | -#line 593 "pikchr.y" |
| 2511 | | -{pik_append_num(p,"",yymsp[0].minor.yy21);} |
| 2512 | | -#line 2537 "pikchr.c" |
| 2563 | +#line 607 "pikchr.y" |
| 2564 | +{pik_append_num(p,"",yymsp[0].minor.yy129);} |
| 2565 | +#line 2565 "pikchr.c" |
| 2513 | 2566 | break; |
| 2514 | 2567 | case 18: /* pritem ::= STRING */ |
| 2515 | | -#line 594 "pikchr.y" |
| 2568 | +#line 608 "pikchr.y" |
| 2516 | 2569 | {pik_append_text(p,yymsp[0].minor.yy0.z+1,yymsp[0].minor.yy0.n-2,0);} |
| 2517 | | -#line 2542 "pikchr.c" |
| 2570 | +#line 2570 "pikchr.c" |
| 2518 | 2571 | break; |
| 2519 | 2572 | case 19: /* prsep ::= COMMA */ |
| 2520 | | -#line 595 "pikchr.y" |
| 2573 | +#line 609 "pikchr.y" |
| 2521 | 2574 | {pik_append(p, " ", 1);} |
| 2522 | | -#line 2547 "pikchr.c" |
| 2575 | +#line 2575 "pikchr.c" |
| 2523 | 2576 | break; |
| 2524 | 2577 | case 20: /* unnamed_statement ::= basetype attribute_list */ |
| 2525 | | -#line 598 "pikchr.y" |
| 2526 | | -{yylhsminor.yy162 = yymsp[-1].minor.yy162; pik_after_adding_attributes(p,yylhsminor.yy162);} |
| 2527 | | -#line 2552 "pikchr.c" |
| 2528 | | - yymsp[-1].minor.yy162 = yylhsminor.yy162; |
| 2578 | +#line 614 "pikchr.y" |
| 2579 | +{yylhsminor.yy54 = yymsp[-1].minor.yy54; pik_after_adding_attributes(p,yylhsminor.yy54);} |
| 2580 | +#line 2580 "pikchr.c" |
| 2581 | + yymsp[-1].minor.yy54 = yylhsminor.yy54; |
| 2529 | 2582 | break; |
| 2530 | 2583 | case 21: /* basetype ::= CLASSNAME */ |
| 2531 | | -#line 600 "pikchr.y" |
| 2532 | | -{yylhsminor.yy162 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); } |
| 2533 | | -#line 2558 "pikchr.c" |
| 2534 | | - yymsp[0].minor.yy162 = yylhsminor.yy162; |
| 2584 | +#line 616 "pikchr.y" |
| 2585 | +{yylhsminor.yy54 = pik_elem_new(p,&yymsp[0].minor.yy0,0,0); } |
| 2586 | +#line 2586 "pikchr.c" |
| 2587 | + yymsp[0].minor.yy54 = yylhsminor.yy54; |
| 2535 | 2588 | break; |
| 2536 | 2589 | case 22: /* basetype ::= STRING textposition */ |
| 2537 | | -#line 602 "pikchr.y" |
| 2538 | | -{yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy188; yylhsminor.yy162 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); } |
| 2539 | | -#line 2564 "pikchr.c" |
| 2540 | | - yymsp[-1].minor.yy162 = yylhsminor.yy162; |
| 2590 | +#line 618 "pikchr.y" |
| 2591 | +{yymsp[-1].minor.yy0.eCode = yymsp[0].minor.yy272; yylhsminor.yy54 = pik_elem_new(p,0,&yymsp[-1].minor.yy0,0); } |
| 2592 | +#line 2592 "pikchr.c" |
| 2593 | + yymsp[-1].minor.yy54 = yylhsminor.yy54; |
| 2541 | 2594 | break; |
| 2542 | 2595 | case 23: /* basetype ::= LB savelist statement_list RB */ |
| 2543 | | -#line 604 "pikchr.y" |
| 2544 | | -{ p->list = yymsp[-2].minor.yy235; yymsp[-3].minor.yy162 = pik_elem_new(p,0,0,yymsp[-1].minor.yy235); if(yymsp[-3].minor.yy162) yymsp[-3].minor.yy162->errTok = yymsp[0].minor.yy0; } |
| 2545 | | -#line 2570 "pikchr.c" |
| 2596 | +#line 620 "pikchr.y" |
| 2597 | +{ p->list = yymsp[-2].minor.yy23; yymsp[-3].minor.yy54 = pik_elem_new(p,0,0,yymsp[-1].minor.yy23); if(yymsp[-3].minor.yy54) yymsp[-3].minor.yy54->errTok = yymsp[0].minor.yy0; } |
| 2598 | +#line 2598 "pikchr.c" |
| 2546 | 2599 | break; |
| 2547 | 2600 | case 24: /* savelist ::= */ |
| 2548 | | -#line 609 "pikchr.y" |
| 2549 | | -{yymsp[1].minor.yy235 = p->list; p->list = 0;} |
| 2550 | | -#line 2575 "pikchr.c" |
| 2601 | +#line 625 "pikchr.y" |
| 2602 | +{yymsp[1].minor.yy23 = p->list; p->list = 0;} |
| 2603 | +#line 2603 "pikchr.c" |
| 2551 | 2604 | break; |
| 2552 | 2605 | case 25: /* relexpr ::= expr */ |
| 2553 | | -#line 616 "pikchr.y" |
| 2554 | | -{yylhsminor.yy72.rAbs = yymsp[0].minor.yy21; yylhsminor.yy72.rRel = 0;} |
| 2555 | | -#line 2580 "pikchr.c" |
| 2556 | | - yymsp[0].minor.yy72 = yylhsminor.yy72; |
| 2606 | +#line 632 "pikchr.y" |
| 2607 | +{yylhsminor.yy28.rAbs = yymsp[0].minor.yy129; yylhsminor.yy28.rRel = 0;} |
| 2608 | +#line 2608 "pikchr.c" |
| 2609 | + yymsp[0].minor.yy28 = yylhsminor.yy28; |
| 2557 | 2610 | break; |
| 2558 | 2611 | case 26: /* relexpr ::= expr PERCENT */ |
| 2559 | | -#line 617 "pikchr.y" |
| 2560 | | -{yylhsminor.yy72.rAbs = 0; yylhsminor.yy72.rRel = yymsp[-1].minor.yy21/100;} |
| 2561 | | -#line 2586 "pikchr.c" |
| 2562 | | - yymsp[-1].minor.yy72 = yylhsminor.yy72; |
| 2612 | +#line 633 "pikchr.y" |
| 2613 | +{yylhsminor.yy28.rAbs = 0; yylhsminor.yy28.rRel = yymsp[-1].minor.yy129/100;} |
| 2614 | +#line 2614 "pikchr.c" |
| 2615 | + yymsp[-1].minor.yy28 = yylhsminor.yy28; |
| 2563 | 2616 | break; |
| 2564 | 2617 | case 27: /* optrelexpr ::= */ |
| 2565 | | -#line 619 "pikchr.y" |
| 2566 | | -{yymsp[1].minor.yy72.rAbs = 0; yymsp[1].minor.yy72.rRel = 1.0;} |
| 2567 | | -#line 2592 "pikchr.c" |
| 2618 | +#line 635 "pikchr.y" |
| 2619 | +{yymsp[1].minor.yy28.rAbs = 0; yymsp[1].minor.yy28.rRel = 1.0;} |
| 2620 | +#line 2620 "pikchr.c" |
| 2568 | 2621 | break; |
| 2569 | 2622 | case 28: /* attribute_list ::= relexpr alist */ |
| 2570 | | -#line 621 "pikchr.y" |
| 2571 | | -{pik_add_direction(p,0,&yymsp[-1].minor.yy72);} |
| 2572 | | -#line 2597 "pikchr.c" |
| 2623 | +#line 637 "pikchr.y" |
| 2624 | +{pik_add_direction(p,0,&yymsp[-1].minor.yy28);} |
| 2625 | +#line 2625 "pikchr.c" |
| 2573 | 2626 | break; |
| 2574 | 2627 | case 29: /* attribute ::= numproperty relexpr */ |
| 2575 | | -#line 625 "pikchr.y" |
| 2576 | | -{ pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy72); } |
| 2577 | | -#line 2602 "pikchr.c" |
| 2628 | +#line 641 "pikchr.y" |
| 2629 | +{ pik_set_numprop(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy28); } |
| 2630 | +#line 2630 "pikchr.c" |
| 2578 | 2631 | break; |
| 2579 | 2632 | case 30: /* attribute ::= dashproperty expr */ |
| 2580 | | -#line 626 "pikchr.y" |
| 2581 | | -{ pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy21); } |
| 2582 | | -#line 2607 "pikchr.c" |
| 2633 | +#line 642 "pikchr.y" |
| 2634 | +{ pik_set_dashed(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy129); } |
| 2635 | +#line 2635 "pikchr.c" |
| 2583 | 2636 | break; |
| 2584 | 2637 | case 31: /* attribute ::= dashproperty */ |
| 2585 | | -#line 627 "pikchr.y" |
| 2638 | +#line 643 "pikchr.y" |
| 2586 | 2639 | { pik_set_dashed(p,&yymsp[0].minor.yy0,0); } |
| 2587 | | -#line 2612 "pikchr.c" |
| 2640 | +#line 2640 "pikchr.c" |
| 2588 | 2641 | break; |
| 2589 | 2642 | case 32: /* attribute ::= colorproperty rvalue */ |
| 2590 | | -#line 628 "pikchr.y" |
| 2591 | | -{ pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy21); } |
| 2592 | | -#line 2617 "pikchr.c" |
| 2643 | +#line 644 "pikchr.y" |
| 2644 | +{ pik_set_clrprop(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy129); } |
| 2645 | +#line 2645 "pikchr.c" |
| 2593 | 2646 | break; |
| 2594 | 2647 | case 33: /* attribute ::= go direction optrelexpr */ |
| 2595 | | -#line 629 "pikchr.y" |
| 2596 | | -{ pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy72);} |
| 2597 | | -#line 2622 "pikchr.c" |
| 2648 | +#line 645 "pikchr.y" |
| 2649 | +{ pik_add_direction(p,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy28);} |
| 2650 | +#line 2650 "pikchr.c" |
| 2598 | 2651 | break; |
| 2599 | 2652 | case 34: /* attribute ::= go direction even position */ |
| 2600 | | -#line 630 "pikchr.y" |
| 2601 | | -{pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy63);} |
| 2602 | | -#line 2627 "pikchr.c" |
| 2653 | +#line 646 "pikchr.y" |
| 2654 | +{pik_evenwith(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy187);} |
| 2655 | +#line 2655 "pikchr.c" |
| 2603 | 2656 | break; |
| 2604 | 2657 | case 35: /* attribute ::= CLOSE */ |
| 2605 | | -#line 631 "pikchr.y" |
| 2658 | +#line 647 "pikchr.y" |
| 2606 | 2659 | { pik_close_path(p,&yymsp[0].minor.yy0); } |
| 2607 | | -#line 2632 "pikchr.c" |
| 2660 | +#line 2660 "pikchr.c" |
| 2608 | 2661 | break; |
| 2609 | 2662 | case 36: /* attribute ::= CHOP */ |
| 2610 | | -#line 632 "pikchr.y" |
| 2663 | +#line 648 "pikchr.y" |
| 2611 | 2664 | { p->cur->bChop = 1; } |
| 2612 | | -#line 2637 "pikchr.c" |
| 2665 | +#line 2665 "pikchr.c" |
| 2613 | 2666 | break; |
| 2614 | 2667 | case 37: /* attribute ::= FROM position */ |
| 2615 | | -#line 633 "pikchr.y" |
| 2616 | | -{ pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy63); } |
| 2617 | | -#line 2642 "pikchr.c" |
| 2668 | +#line 649 "pikchr.y" |
| 2669 | +{ pik_set_from(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy187); } |
| 2670 | +#line 2670 "pikchr.c" |
| 2618 | 2671 | break; |
| 2619 | 2672 | case 38: /* attribute ::= TO position */ |
| 2620 | | -#line 634 "pikchr.y" |
| 2621 | | -{ pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy63); } |
| 2622 | | -#line 2647 "pikchr.c" |
| 2673 | +#line 650 "pikchr.y" |
| 2674 | +{ pik_add_to(p,p->cur,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy187); } |
| 2675 | +#line 2675 "pikchr.c" |
| 2623 | 2676 | break; |
| 2624 | 2677 | case 39: /* attribute ::= THEN */ |
| 2625 | | -#line 635 "pikchr.y" |
| 2678 | +#line 651 "pikchr.y" |
| 2626 | 2679 | { pik_then(p, &yymsp[0].minor.yy0, p->cur); } |
| 2627 | | -#line 2652 "pikchr.c" |
| 2680 | +#line 2680 "pikchr.c" |
| 2628 | 2681 | break; |
| 2629 | 2682 | case 40: /* attribute ::= THEN optrelexpr HEADING expr */ |
| 2630 | 2683 | case 42: /* attribute ::= GO optrelexpr HEADING expr */ yytestcase(yyruleno==42); |
| 2631 | | -#line 637 "pikchr.y" |
| 2632 | | -{pik_move_hdg(p,&yymsp[-2].minor.yy72,&yymsp[-1].minor.yy0,yymsp[0].minor.yy21,0,&yymsp[-3].minor.yy0);} |
| 2633 | | -#line 2658 "pikchr.c" |
| 2684 | +#line 653 "pikchr.y" |
| 2685 | +{pik_move_hdg(p,&yymsp[-2].minor.yy28,&yymsp[-1].minor.yy0,yymsp[0].minor.yy129,0,&yymsp[-3].minor.yy0);} |
| 2686 | +#line 2686 "pikchr.c" |
| 2634 | 2687 | break; |
| 2635 | 2688 | case 41: /* attribute ::= THEN optrelexpr EDGEPT */ |
| 2636 | 2689 | case 43: /* attribute ::= GO optrelexpr EDGEPT */ yytestcase(yyruleno==43); |
| 2637 | | -#line 638 "pikchr.y" |
| 2638 | | -{pik_move_hdg(p,&yymsp[-1].minor.yy72,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);} |
| 2639 | | -#line 2664 "pikchr.c" |
| 2690 | +#line 654 "pikchr.y" |
| 2691 | +{pik_move_hdg(p,&yymsp[-1].minor.yy28,0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0);} |
| 2692 | +#line 2692 "pikchr.c" |
| 2640 | 2693 | break; |
| 2641 | 2694 | case 44: /* attribute ::= AT position */ |
| 2642 | | -#line 643 "pikchr.y" |
| 2643 | | -{ pik_set_at(p,0,&yymsp[0].minor.yy63,&yymsp[-1].minor.yy0); } |
| 2644 | | -#line 2669 "pikchr.c" |
| 2695 | +#line 659 "pikchr.y" |
| 2696 | +{ pik_set_at(p,0,&yymsp[0].minor.yy187,&yymsp[-1].minor.yy0); } |
| 2697 | +#line 2697 "pikchr.c" |
| 2645 | 2698 | break; |
| 2646 | 2699 | case 45: /* attribute ::= SAME */ |
| 2647 | | -#line 645 "pikchr.y" |
| 2700 | +#line 661 "pikchr.y" |
| 2648 | 2701 | {pik_same(p,0,&yymsp[0].minor.yy0);} |
| 2649 | | -#line 2674 "pikchr.c" |
| 2702 | +#line 2702 "pikchr.c" |
| 2650 | 2703 | break; |
| 2651 | 2704 | case 46: /* attribute ::= SAME AS object */ |
| 2652 | | -#line 646 "pikchr.y" |
| 2653 | | -{pik_same(p,yymsp[0].minor.yy162,&yymsp[-2].minor.yy0);} |
| 2654 | | -#line 2679 "pikchr.c" |
| 2705 | +#line 662 "pikchr.y" |
| 2706 | +{pik_same(p,yymsp[0].minor.yy54,&yymsp[-2].minor.yy0);} |
| 2707 | +#line 2707 "pikchr.c" |
| 2655 | 2708 | break; |
| 2656 | 2709 | case 47: /* attribute ::= STRING textposition */ |
| 2657 | | -#line 647 "pikchr.y" |
| 2658 | | -{pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy188);} |
| 2659 | | -#line 2684 "pikchr.c" |
| 2710 | +#line 663 "pikchr.y" |
| 2711 | +{pik_add_txt(p,&yymsp[-1].minor.yy0,yymsp[0].minor.yy272);} |
| 2712 | +#line 2712 "pikchr.c" |
| 2660 | 2713 | break; |
| 2661 | 2714 | case 48: /* attribute ::= FIT */ |
| 2662 | | -#line 648 "pikchr.y" |
| 2663 | | -{pik_size_to_fit(p,&yymsp[0].minor.yy0,3); } |
| 2664 | | -#line 2689 "pikchr.c" |
| 2715 | +#line 664 "pikchr.y" |
| 2716 | +{pik_size_to_fit(p,0,&yymsp[0].minor.yy0,3); } |
| 2717 | +#line 2717 "pikchr.c" |
| 2665 | 2718 | break; |
| 2666 | 2719 | case 49: /* attribute ::= BEHIND object */ |
| 2667 | | -#line 649 "pikchr.y" |
| 2668 | | -{pik_behind(p,yymsp[0].minor.yy162);} |
| 2669 | | -#line 2694 "pikchr.c" |
| 2720 | +#line 665 "pikchr.y" |
| 2721 | +{pik_behind(p,yymsp[0].minor.yy54);} |
| 2722 | +#line 2722 "pikchr.c" |
| 2670 | 2723 | break; |
| 2671 | 2724 | case 50: /* withclause ::= DOT_E edge AT position */ |
| 2672 | 2725 | case 51: /* withclause ::= edge AT position */ yytestcase(yyruleno==51); |
| 2673 | | -#line 657 "pikchr.y" |
| 2674 | | -{ pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy63,&yymsp[-1].minor.yy0); } |
| 2675 | | -#line 2700 "pikchr.c" |
| 2726 | +#line 673 "pikchr.y" |
| 2727 | +{ pik_set_at(p,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy187,&yymsp[-1].minor.yy0); } |
| 2728 | +#line 2728 "pikchr.c" |
| 2676 | 2729 | break; |
| 2677 | 2730 | case 52: /* numproperty ::= HEIGHT|WIDTH|RADIUS|DIAMETER|THICKNESS */ |
| 2678 | | -#line 661 "pikchr.y" |
| 2731 | +#line 677 "pikchr.y" |
| 2679 | 2732 | {yylhsminor.yy0 = yymsp[0].minor.yy0;} |
| 2680 | | -#line 2705 "pikchr.c" |
| 2733 | +#line 2733 "pikchr.c" |
| 2681 | 2734 | yymsp[0].minor.yy0 = yylhsminor.yy0; |
| 2682 | 2735 | break; |
| 2683 | 2736 | case 53: /* boolproperty ::= CW */ |
| 2684 | | -#line 672 "pikchr.y" |
| 2737 | +#line 688 "pikchr.y" |
| 2685 | 2738 | {p->cur->cw = 1;} |
| 2686 | | -#line 2711 "pikchr.c" |
| 2739 | +#line 2739 "pikchr.c" |
| 2687 | 2740 | break; |
| 2688 | 2741 | case 54: /* boolproperty ::= CCW */ |
| 2689 | | -#line 673 "pikchr.y" |
| 2742 | +#line 689 "pikchr.y" |
| 2690 | 2743 | {p->cur->cw = 0;} |
| 2691 | | -#line 2716 "pikchr.c" |
| 2744 | +#line 2744 "pikchr.c" |
| 2692 | 2745 | break; |
| 2693 | 2746 | case 55: /* boolproperty ::= LARROW */ |
| 2694 | | -#line 674 "pikchr.y" |
| 2747 | +#line 690 "pikchr.y" |
| 2695 | 2748 | {p->cur->larrow=1; p->cur->rarrow=0; } |
| 2696 | | -#line 2721 "pikchr.c" |
| 2749 | +#line 2749 "pikchr.c" |
| 2697 | 2750 | break; |
| 2698 | 2751 | case 56: /* boolproperty ::= RARROW */ |
| 2699 | | -#line 675 "pikchr.y" |
| 2752 | +#line 691 "pikchr.y" |
| 2700 | 2753 | {p->cur->larrow=0; p->cur->rarrow=1; } |
| 2701 | | -#line 2726 "pikchr.c" |
| 2754 | +#line 2754 "pikchr.c" |
| 2702 | 2755 | break; |
| 2703 | 2756 | case 57: /* boolproperty ::= LRARROW */ |
| 2704 | | -#line 676 "pikchr.y" |
| 2757 | +#line 692 "pikchr.y" |
| 2705 | 2758 | {p->cur->larrow=1; p->cur->rarrow=1; } |
| 2706 | | -#line 2731 "pikchr.c" |
| 2759 | +#line 2759 "pikchr.c" |
| 2707 | 2760 | break; |
| 2708 | 2761 | case 58: /* boolproperty ::= INVIS */ |
| 2709 | | -#line 677 "pikchr.y" |
| 2762 | +#line 693 "pikchr.y" |
| 2710 | 2763 | {p->cur->sw = -0.00001;} |
| 2711 | | -#line 2736 "pikchr.c" |
| 2764 | +#line 2764 "pikchr.c" |
| 2712 | 2765 | break; |
| 2713 | 2766 | case 59: /* boolproperty ::= THICK */ |
| 2714 | | -#line 678 "pikchr.y" |
| 2767 | +#line 694 "pikchr.y" |
| 2715 | 2768 | {p->cur->sw *= 1.5;} |
| 2716 | | -#line 2741 "pikchr.c" |
| 2769 | +#line 2769 "pikchr.c" |
| 2717 | 2770 | break; |
| 2718 | 2771 | case 60: /* boolproperty ::= THIN */ |
| 2719 | | -#line 679 "pikchr.y" |
| 2772 | +#line 695 "pikchr.y" |
| 2720 | 2773 | {p->cur->sw *= 0.67;} |
| 2721 | | -#line 2746 "pikchr.c" |
| 2774 | +#line 2774 "pikchr.c" |
| 2722 | 2775 | break; |
| 2723 | 2776 | case 61: /* boolproperty ::= SOLID */ |
| 2724 | | -#line 680 "pikchr.y" |
| 2777 | +#line 696 "pikchr.y" |
| 2725 | 2778 | {p->cur->sw = pik_value(p,"thickness",9,0); |
| 2726 | 2779 | p->cur->dotted = p->cur->dashed = 0.0;} |
| 2727 | | -#line 2752 "pikchr.c" |
| 2780 | +#line 2780 "pikchr.c" |
| 2728 | 2781 | break; |
| 2729 | 2782 | case 62: /* textposition ::= */ |
| 2730 | | -#line 683 "pikchr.y" |
| 2731 | | -{yymsp[1].minor.yy188 = 0;} |
| 2732 | | -#line 2757 "pikchr.c" |
| 2783 | +#line 699 "pikchr.y" |
| 2784 | +{yymsp[1].minor.yy272 = 0;} |
| 2785 | +#line 2785 "pikchr.c" |
| 2733 | 2786 | break; |
| 2734 | 2787 | case 63: /* textposition ::= textposition CENTER|LJUST|RJUST|ABOVE|BELOW|ITALIC|BOLD|MONO|ALIGNED|BIG|SMALL */ |
| 2735 | | -#line 686 "pikchr.y" |
| 2736 | | -{yylhsminor.yy188 = (short int)pik_text_position(yymsp[-1].minor.yy188,&yymsp[0].minor.yy0);} |
| 2737 | | -#line 2762 "pikchr.c" |
| 2738 | | - yymsp[-1].minor.yy188 = yylhsminor.yy188; |
| 2788 | +#line 702 "pikchr.y" |
| 2789 | +{yylhsminor.yy272 = (short int)pik_text_position(yymsp[-1].minor.yy272,&yymsp[0].minor.yy0);} |
| 2790 | +#line 2790 "pikchr.c" |
| 2791 | + yymsp[-1].minor.yy272 = yylhsminor.yy272; |
| 2739 | 2792 | break; |
| 2740 | 2793 | case 64: /* position ::= expr COMMA expr */ |
| 2741 | | -#line 689 "pikchr.y" |
| 2742 | | -{yylhsminor.yy63.x=yymsp[-2].minor.yy21; yylhsminor.yy63.y=yymsp[0].minor.yy21;} |
| 2743 | | -#line 2768 "pikchr.c" |
| 2744 | | - yymsp[-2].minor.yy63 = yylhsminor.yy63; |
| 2794 | +#line 705 "pikchr.y" |
| 2795 | +{yylhsminor.yy187.x=yymsp[-2].minor.yy129; yylhsminor.yy187.y=yymsp[0].minor.yy129;} |
| 2796 | +#line 2796 "pikchr.c" |
| 2797 | + yymsp[-2].minor.yy187 = yylhsminor.yy187; |
| 2745 | 2798 | break; |
| 2746 | 2799 | case 65: /* position ::= place PLUS expr COMMA expr */ |
| 2747 | | -#line 691 "pikchr.y" |
| 2748 | | -{yylhsminor.yy63.x=yymsp[-4].minor.yy63.x+yymsp[-2].minor.yy21; yylhsminor.yy63.y=yymsp[-4].minor.yy63.y+yymsp[0].minor.yy21;} |
| 2749 | | -#line 2774 "pikchr.c" |
| 2750 | | - yymsp[-4].minor.yy63 = yylhsminor.yy63; |
| 2800 | +#line 707 "pikchr.y" |
| 2801 | +{yylhsminor.yy187.x=yymsp[-4].minor.yy187.x+yymsp[-2].minor.yy129; yylhsminor.yy187.y=yymsp[-4].minor.yy187.y+yymsp[0].minor.yy129;} |
| 2802 | +#line 2802 "pikchr.c" |
| 2803 | + yymsp[-4].minor.yy187 = yylhsminor.yy187; |
| 2751 | 2804 | break; |
| 2752 | 2805 | case 66: /* position ::= place MINUS expr COMMA expr */ |
| 2753 | | -#line 692 "pikchr.y" |
| 2754 | | -{yylhsminor.yy63.x=yymsp[-4].minor.yy63.x-yymsp[-2].minor.yy21; yylhsminor.yy63.y=yymsp[-4].minor.yy63.y-yymsp[0].minor.yy21;} |
| 2755 | | -#line 2780 "pikchr.c" |
| 2756 | | - yymsp[-4].minor.yy63 = yylhsminor.yy63; |
| 2806 | +#line 708 "pikchr.y" |
| 2807 | +{yylhsminor.yy187.x=yymsp[-4].minor.yy187.x-yymsp[-2].minor.yy129; yylhsminor.yy187.y=yymsp[-4].minor.yy187.y-yymsp[0].minor.yy129;} |
| 2808 | +#line 2808 "pikchr.c" |
| 2809 | + yymsp[-4].minor.yy187 = yylhsminor.yy187; |
| 2757 | 2810 | break; |
| 2758 | 2811 | case 67: /* position ::= place PLUS LP expr COMMA expr RP */ |
| 2759 | | -#line 694 "pikchr.y" |
| 2760 | | -{yylhsminor.yy63.x=yymsp[-6].minor.yy63.x+yymsp[-3].minor.yy21; yylhsminor.yy63.y=yymsp[-6].minor.yy63.y+yymsp[-1].minor.yy21;} |
| 2761 | | -#line 2786 "pikchr.c" |
| 2762 | | - yymsp[-6].minor.yy63 = yylhsminor.yy63; |
| 2812 | +#line 710 "pikchr.y" |
| 2813 | +{yylhsminor.yy187.x=yymsp[-6].minor.yy187.x+yymsp[-3].minor.yy129; yylhsminor.yy187.y=yymsp[-6].minor.yy187.y+yymsp[-1].minor.yy129;} |
| 2814 | +#line 2814 "pikchr.c" |
| 2815 | + yymsp[-6].minor.yy187 = yylhsminor.yy187; |
| 2763 | 2816 | break; |
| 2764 | 2817 | case 68: /* position ::= place MINUS LP expr COMMA expr RP */ |
| 2765 | | -#line 696 "pikchr.y" |
| 2766 | | -{yylhsminor.yy63.x=yymsp[-6].minor.yy63.x-yymsp[-3].minor.yy21; yylhsminor.yy63.y=yymsp[-6].minor.yy63.y-yymsp[-1].minor.yy21;} |
| 2767 | | -#line 2792 "pikchr.c" |
| 2768 | | - yymsp[-6].minor.yy63 = yylhsminor.yy63; |
| 2818 | +#line 712 "pikchr.y" |
| 2819 | +{yylhsminor.yy187.x=yymsp[-6].minor.yy187.x-yymsp[-3].minor.yy129; yylhsminor.yy187.y=yymsp[-6].minor.yy187.y-yymsp[-1].minor.yy129;} |
| 2820 | +#line 2820 "pikchr.c" |
| 2821 | + yymsp[-6].minor.yy187 = yylhsminor.yy187; |
| 2769 | 2822 | break; |
| 2770 | 2823 | case 69: /* position ::= LP position COMMA position RP */ |
| 2771 | | -#line 697 "pikchr.y" |
| 2772 | | -{yymsp[-4].minor.yy63.x=yymsp[-3].minor.yy63.x; yymsp[-4].minor.yy63.y=yymsp[-1].minor.yy63.y;} |
| 2773 | | -#line 2798 "pikchr.c" |
| 2824 | +#line 713 "pikchr.y" |
| 2825 | +{yymsp[-4].minor.yy187.x=yymsp[-3].minor.yy187.x; yymsp[-4].minor.yy187.y=yymsp[-1].minor.yy187.y;} |
| 2826 | +#line 2826 "pikchr.c" |
| 2774 | 2827 | break; |
| 2775 | 2828 | case 70: /* position ::= LP position RP */ |
| 2776 | | -#line 698 "pikchr.y" |
| 2777 | | -{yymsp[-2].minor.yy63=yymsp[-1].minor.yy63;} |
| 2778 | | -#line 2803 "pikchr.c" |
| 2829 | +#line 714 "pikchr.y" |
| 2830 | +{yymsp[-2].minor.yy187=yymsp[-1].minor.yy187;} |
| 2831 | +#line 2831 "pikchr.c" |
| 2779 | 2832 | break; |
| 2780 | 2833 | case 71: /* position ::= expr between position AND position */ |
| 2781 | | -#line 700 "pikchr.y" |
| 2782 | | -{yylhsminor.yy63 = pik_position_between(yymsp[-4].minor.yy21,yymsp[-2].minor.yy63,yymsp[0].minor.yy63);} |
| 2783 | | -#line 2808 "pikchr.c" |
| 2784 | | - yymsp[-4].minor.yy63 = yylhsminor.yy63; |
| 2834 | +#line 716 "pikchr.y" |
| 2835 | +{yylhsminor.yy187 = pik_position_between(yymsp[-4].minor.yy129,yymsp[-2].minor.yy187,yymsp[0].minor.yy187);} |
| 2836 | +#line 2836 "pikchr.c" |
| 2837 | + yymsp[-4].minor.yy187 = yylhsminor.yy187; |
| 2785 | 2838 | break; |
| 2786 | 2839 | case 72: /* position ::= expr LT position COMMA position GT */ |
| 2787 | | -#line 702 "pikchr.y" |
| 2788 | | -{yylhsminor.yy63 = pik_position_between(yymsp[-5].minor.yy21,yymsp[-3].minor.yy63,yymsp[-1].minor.yy63);} |
| 2789 | | -#line 2814 "pikchr.c" |
| 2790 | | - yymsp[-5].minor.yy63 = yylhsminor.yy63; |
| 2840 | +#line 718 "pikchr.y" |
| 2841 | +{yylhsminor.yy187 = pik_position_between(yymsp[-5].minor.yy129,yymsp[-3].minor.yy187,yymsp[-1].minor.yy187);} |
| 2842 | +#line 2842 "pikchr.c" |
| 2843 | + yymsp[-5].minor.yy187 = yylhsminor.yy187; |
| 2791 | 2844 | break; |
| 2792 | 2845 | case 73: /* position ::= expr ABOVE position */ |
| 2793 | | -#line 703 "pikchr.y" |
| 2794 | | -{yylhsminor.yy63=yymsp[0].minor.yy63; yylhsminor.yy63.y += yymsp[-2].minor.yy21;} |
| 2795 | | -#line 2820 "pikchr.c" |
| 2796 | | - yymsp[-2].minor.yy63 = yylhsminor.yy63; |
| 2846 | +#line 719 "pikchr.y" |
| 2847 | +{yylhsminor.yy187=yymsp[0].minor.yy187; yylhsminor.yy187.y += yymsp[-2].minor.yy129;} |
| 2848 | +#line 2848 "pikchr.c" |
| 2849 | + yymsp[-2].minor.yy187 = yylhsminor.yy187; |
| 2797 | 2850 | break; |
| 2798 | 2851 | case 74: /* position ::= expr BELOW position */ |
| 2799 | | -#line 704 "pikchr.y" |
| 2800 | | -{yylhsminor.yy63=yymsp[0].minor.yy63; yylhsminor.yy63.y -= yymsp[-2].minor.yy21;} |
| 2801 | | -#line 2826 "pikchr.c" |
| 2802 | | - yymsp[-2].minor.yy63 = yylhsminor.yy63; |
| 2852 | +#line 720 "pikchr.y" |
| 2853 | +{yylhsminor.yy187=yymsp[0].minor.yy187; yylhsminor.yy187.y -= yymsp[-2].minor.yy129;} |
| 2854 | +#line 2854 "pikchr.c" |
| 2855 | + yymsp[-2].minor.yy187 = yylhsminor.yy187; |
| 2803 | 2856 | break; |
| 2804 | 2857 | case 75: /* position ::= expr LEFT OF position */ |
| 2805 | | -#line 705 "pikchr.y" |
| 2806 | | -{yylhsminor.yy63=yymsp[0].minor.yy63; yylhsminor.yy63.x -= yymsp[-3].minor.yy21;} |
| 2807 | | -#line 2832 "pikchr.c" |
| 2808 | | - yymsp[-3].minor.yy63 = yylhsminor.yy63; |
| 2858 | +#line 721 "pikchr.y" |
| 2859 | +{yylhsminor.yy187=yymsp[0].minor.yy187; yylhsminor.yy187.x -= yymsp[-3].minor.yy129;} |
| 2860 | +#line 2860 "pikchr.c" |
| 2861 | + yymsp[-3].minor.yy187 = yylhsminor.yy187; |
| 2809 | 2862 | break; |
| 2810 | 2863 | case 76: /* position ::= expr RIGHT OF position */ |
| 2811 | | -#line 706 "pikchr.y" |
| 2812 | | -{yylhsminor.yy63=yymsp[0].minor.yy63; yylhsminor.yy63.x += yymsp[-3].minor.yy21;} |
| 2813 | | -#line 2838 "pikchr.c" |
| 2814 | | - yymsp[-3].minor.yy63 = yylhsminor.yy63; |
| 2864 | +#line 722 "pikchr.y" |
| 2865 | +{yylhsminor.yy187=yymsp[0].minor.yy187; yylhsminor.yy187.x += yymsp[-3].minor.yy129;} |
| 2866 | +#line 2866 "pikchr.c" |
| 2867 | + yymsp[-3].minor.yy187 = yylhsminor.yy187; |
| 2815 | 2868 | break; |
| 2816 | 2869 | case 77: /* position ::= expr ON HEADING EDGEPT OF position */ |
| 2817 | | -#line 708 "pikchr.y" |
| 2818 | | -{yylhsminor.yy63 = pik_position_at_hdg(yymsp[-5].minor.yy21,&yymsp[-2].minor.yy0,yymsp[0].minor.yy63);} |
| 2819 | | -#line 2844 "pikchr.c" |
| 2820 | | - yymsp[-5].minor.yy63 = yylhsminor.yy63; |
| 2870 | +#line 724 "pikchr.y" |
| 2871 | +{yylhsminor.yy187 = pik_position_at_hdg(yymsp[-5].minor.yy129,&yymsp[-2].minor.yy0,yymsp[0].minor.yy187);} |
| 2872 | +#line 2872 "pikchr.c" |
| 2873 | + yymsp[-5].minor.yy187 = yylhsminor.yy187; |
| 2821 | 2874 | break; |
| 2822 | 2875 | case 78: /* position ::= expr HEADING EDGEPT OF position */ |
| 2823 | | -#line 710 "pikchr.y" |
| 2824 | | -{yylhsminor.yy63 = pik_position_at_hdg(yymsp[-4].minor.yy21,&yymsp[-2].minor.yy0,yymsp[0].minor.yy63);} |
| 2825 | | -#line 2850 "pikchr.c" |
| 2826 | | - yymsp[-4].minor.yy63 = yylhsminor.yy63; |
| 2876 | +#line 726 "pikchr.y" |
| 2877 | +{yylhsminor.yy187 = pik_position_at_hdg(yymsp[-4].minor.yy129,&yymsp[-2].minor.yy0,yymsp[0].minor.yy187);} |
| 2878 | +#line 2878 "pikchr.c" |
| 2879 | + yymsp[-4].minor.yy187 = yylhsminor.yy187; |
| 2827 | 2880 | break; |
| 2828 | 2881 | case 79: /* position ::= expr EDGEPT OF position */ |
| 2829 | | -#line 712 "pikchr.y" |
| 2830 | | -{yylhsminor.yy63 = pik_position_at_hdg(yymsp[-3].minor.yy21,&yymsp[-2].minor.yy0,yymsp[0].minor.yy63);} |
| 2831 | | -#line 2856 "pikchr.c" |
| 2832 | | - yymsp[-3].minor.yy63 = yylhsminor.yy63; |
| 2882 | +#line 728 "pikchr.y" |
| 2883 | +{yylhsminor.yy187 = pik_position_at_hdg(yymsp[-3].minor.yy129,&yymsp[-2].minor.yy0,yymsp[0].minor.yy187);} |
| 2884 | +#line 2884 "pikchr.c" |
| 2885 | + yymsp[-3].minor.yy187 = yylhsminor.yy187; |
| 2833 | 2886 | break; |
| 2834 | 2887 | case 80: /* position ::= expr ON HEADING expr FROM position */ |
| 2835 | | -#line 714 "pikchr.y" |
| 2836 | | -{yylhsminor.yy63 = pik_position_at_angle(yymsp[-5].minor.yy21,yymsp[-2].minor.yy21,yymsp[0].minor.yy63);} |
| 2837 | | -#line 2862 "pikchr.c" |
| 2838 | | - yymsp[-5].minor.yy63 = yylhsminor.yy63; |
| 2888 | +#line 730 "pikchr.y" |
| 2889 | +{yylhsminor.yy187 = pik_position_at_angle(yymsp[-5].minor.yy129,yymsp[-2].minor.yy129,yymsp[0].minor.yy187);} |
| 2890 | +#line 2890 "pikchr.c" |
| 2891 | + yymsp[-5].minor.yy187 = yylhsminor.yy187; |
| 2839 | 2892 | break; |
| 2840 | 2893 | case 81: /* position ::= expr HEADING expr FROM position */ |
| 2841 | | -#line 716 "pikchr.y" |
| 2842 | | -{yylhsminor.yy63 = pik_position_at_angle(yymsp[-4].minor.yy21,yymsp[-2].minor.yy21,yymsp[0].minor.yy63);} |
| 2843 | | -#line 2868 "pikchr.c" |
| 2844 | | - yymsp[-4].minor.yy63 = yylhsminor.yy63; |
| 2894 | +#line 732 "pikchr.y" |
| 2895 | +{yylhsminor.yy187 = pik_position_at_angle(yymsp[-4].minor.yy129,yymsp[-2].minor.yy129,yymsp[0].minor.yy187);} |
| 2896 | +#line 2896 "pikchr.c" |
| 2897 | + yymsp[-4].minor.yy187 = yylhsminor.yy187; |
| 2845 | 2898 | break; |
| 2846 | 2899 | case 82: /* place ::= edge OF object */ |
| 2847 | | -#line 728 "pikchr.y" |
| 2848 | | -{yylhsminor.yy63 = pik_place_of_elem(p,yymsp[0].minor.yy162,&yymsp[-2].minor.yy0);} |
| 2849 | | -#line 2874 "pikchr.c" |
| 2850 | | - yymsp[-2].minor.yy63 = yylhsminor.yy63; |
| 2900 | +#line 744 "pikchr.y" |
| 2901 | +{yylhsminor.yy187 = pik_place_of_elem(p,yymsp[0].minor.yy54,&yymsp[-2].minor.yy0);} |
| 2902 | +#line 2902 "pikchr.c" |
| 2903 | + yymsp[-2].minor.yy187 = yylhsminor.yy187; |
| 2851 | 2904 | break; |
| 2852 | 2905 | case 83: /* place2 ::= object */ |
| 2853 | | -#line 729 "pikchr.y" |
| 2854 | | -{yylhsminor.yy63 = pik_place_of_elem(p,yymsp[0].minor.yy162,0);} |
| 2855 | | -#line 2880 "pikchr.c" |
| 2856 | | - yymsp[0].minor.yy63 = yylhsminor.yy63; |
| 2906 | +#line 745 "pikchr.y" |
| 2907 | +{yylhsminor.yy187 = pik_place_of_elem(p,yymsp[0].minor.yy54,0);} |
| 2908 | +#line 2908 "pikchr.c" |
| 2909 | + yymsp[0].minor.yy187 = yylhsminor.yy187; |
| 2857 | 2910 | break; |
| 2858 | 2911 | case 84: /* place2 ::= object DOT_E edge */ |
| 2859 | | -#line 730 "pikchr.y" |
| 2860 | | -{yylhsminor.yy63 = pik_place_of_elem(p,yymsp[-2].minor.yy162,&yymsp[0].minor.yy0);} |
| 2861 | | -#line 2886 "pikchr.c" |
| 2862 | | - yymsp[-2].minor.yy63 = yylhsminor.yy63; |
| 2912 | +#line 746 "pikchr.y" |
| 2913 | +{yylhsminor.yy187 = pik_place_of_elem(p,yymsp[-2].minor.yy54,&yymsp[0].minor.yy0);} |
| 2914 | +#line 2914 "pikchr.c" |
| 2915 | + yymsp[-2].minor.yy187 = yylhsminor.yy187; |
| 2863 | 2916 | break; |
| 2864 | 2917 | case 85: /* place2 ::= NTH VERTEX OF object */ |
| 2865 | | -#line 731 "pikchr.y" |
| 2866 | | -{yylhsminor.yy63 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy162);} |
| 2867 | | -#line 2892 "pikchr.c" |
| 2868 | | - yymsp[-3].minor.yy63 = yylhsminor.yy63; |
| 2918 | +#line 747 "pikchr.y" |
| 2919 | +{yylhsminor.yy187 = pik_nth_vertex(p,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,yymsp[0].minor.yy54);} |
| 2920 | +#line 2920 "pikchr.c" |
| 2921 | + yymsp[-3].minor.yy187 = yylhsminor.yy187; |
| 2869 | 2922 | break; |
| 2870 | 2923 | case 86: /* object ::= nth */ |
| 2871 | | -#line 743 "pikchr.y" |
| 2872 | | -{yylhsminor.yy162 = pik_find_nth(p,0,&yymsp[0].minor.yy0);} |
| 2873 | | -#line 2898 "pikchr.c" |
| 2874 | | - yymsp[0].minor.yy162 = yylhsminor.yy162; |
| 2924 | +#line 759 "pikchr.y" |
| 2925 | +{yylhsminor.yy54 = pik_find_nth(p,0,&yymsp[0].minor.yy0);} |
| 2926 | +#line 2926 "pikchr.c" |
| 2927 | + yymsp[0].minor.yy54 = yylhsminor.yy54; |
| 2875 | 2928 | break; |
| 2876 | 2929 | case 87: /* object ::= nth OF|IN object */ |
| 2877 | | -#line 744 "pikchr.y" |
| 2878 | | -{yylhsminor.yy162 = pik_find_nth(p,yymsp[0].minor.yy162,&yymsp[-2].minor.yy0);} |
| 2879 | | -#line 2904 "pikchr.c" |
| 2880 | | - yymsp[-2].minor.yy162 = yylhsminor.yy162; |
| 2930 | +#line 760 "pikchr.y" |
| 2931 | +{yylhsminor.yy54 = pik_find_nth(p,yymsp[0].minor.yy54,&yymsp[-2].minor.yy0);} |
| 2932 | +#line 2932 "pikchr.c" |
| 2933 | + yymsp[-2].minor.yy54 = yylhsminor.yy54; |
| 2881 | 2934 | break; |
| 2882 | 2935 | case 88: /* objectname ::= THIS */ |
| 2883 | | -#line 746 "pikchr.y" |
| 2884 | | -{yymsp[0].minor.yy162 = p->cur;} |
| 2885 | | -#line 2910 "pikchr.c" |
| 2936 | +#line 762 "pikchr.y" |
| 2937 | +{yymsp[0].minor.yy54 = p->cur;} |
| 2938 | +#line 2938 "pikchr.c" |
| 2886 | 2939 | break; |
| 2887 | 2940 | case 89: /* objectname ::= PLACENAME */ |
| 2888 | | -#line 747 "pikchr.y" |
| 2889 | | -{yylhsminor.yy162 = pik_find_byname(p,0,&yymsp[0].minor.yy0);} |
| 2890 | | -#line 2915 "pikchr.c" |
| 2891 | | - yymsp[0].minor.yy162 = yylhsminor.yy162; |
| 2941 | +#line 763 "pikchr.y" |
| 2942 | +{yylhsminor.yy54 = pik_find_byname(p,0,&yymsp[0].minor.yy0);} |
| 2943 | +#line 2943 "pikchr.c" |
| 2944 | + yymsp[0].minor.yy54 = yylhsminor.yy54; |
| 2892 | 2945 | break; |
| 2893 | 2946 | case 90: /* objectname ::= objectname DOT_U PLACENAME */ |
| 2894 | | -#line 749 "pikchr.y" |
| 2895 | | -{yylhsminor.yy162 = pik_find_byname(p,yymsp[-2].minor.yy162,&yymsp[0].minor.yy0);} |
| 2896 | | -#line 2921 "pikchr.c" |
| 2897 | | - yymsp[-2].minor.yy162 = yylhsminor.yy162; |
| 2947 | +#line 765 "pikchr.y" |
| 2948 | +{yylhsminor.yy54 = pik_find_byname(p,yymsp[-2].minor.yy54,&yymsp[0].minor.yy0);} |
| 2949 | +#line 2949 "pikchr.c" |
| 2950 | + yymsp[-2].minor.yy54 = yylhsminor.yy54; |
| 2898 | 2951 | break; |
| 2899 | 2952 | case 91: /* nth ::= NTH CLASSNAME */ |
| 2900 | | -#line 751 "pikchr.y" |
| 2953 | +#line 767 "pikchr.y" |
| 2901 | 2954 | {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-1].minor.yy0); } |
| 2902 | | -#line 2927 "pikchr.c" |
| 2955 | +#line 2955 "pikchr.c" |
| 2903 | 2956 | yymsp[-1].minor.yy0 = yylhsminor.yy0; |
| 2904 | 2957 | break; |
| 2905 | 2958 | case 92: /* nth ::= NTH LAST CLASSNAME */ |
| 2906 | | -#line 752 "pikchr.y" |
| 2959 | +#line 768 "pikchr.y" |
| 2907 | 2960 | {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-2].minor.yy0); } |
| 2908 | | -#line 2933 "pikchr.c" |
| 2961 | +#line 2961 "pikchr.c" |
| 2909 | 2962 | yymsp[-2].minor.yy0 = yylhsminor.yy0; |
| 2910 | 2963 | break; |
| 2911 | 2964 | case 93: /* nth ::= LAST CLASSNAME */ |
| 2912 | | -#line 753 "pikchr.y" |
| 2965 | +#line 769 "pikchr.y" |
| 2913 | 2966 | {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.eCode = -1;} |
| 2914 | | -#line 2939 "pikchr.c" |
| 2967 | +#line 2967 "pikchr.c" |
| 2915 | 2968 | break; |
| 2916 | 2969 | case 94: /* nth ::= LAST */ |
| 2917 | | -#line 754 "pikchr.y" |
| 2970 | +#line 770 "pikchr.y" |
| 2918 | 2971 | {yylhsminor.yy0=yymsp[0].minor.yy0; yylhsminor.yy0.eCode = -1;} |
| 2919 | | -#line 2944 "pikchr.c" |
| 2972 | +#line 2972 "pikchr.c" |
| 2920 | 2973 | yymsp[0].minor.yy0 = yylhsminor.yy0; |
| 2921 | 2974 | break; |
| 2922 | 2975 | case 95: /* nth ::= NTH LB RB */ |
| 2923 | | -#line 755 "pikchr.y" |
| 2976 | +#line 771 "pikchr.y" |
| 2924 | 2977 | {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = pik_nth_value(p,&yymsp[-2].minor.yy0);} |
| 2925 | | -#line 2950 "pikchr.c" |
| 2978 | +#line 2978 "pikchr.c" |
| 2926 | 2979 | yymsp[-2].minor.yy0 = yylhsminor.yy0; |
| 2927 | 2980 | break; |
| 2928 | 2981 | case 96: /* nth ::= NTH LAST LB RB */ |
| 2929 | | -#line 756 "pikchr.y" |
| 2982 | +#line 772 "pikchr.y" |
| 2930 | 2983 | {yylhsminor.yy0=yymsp[-1].minor.yy0; yylhsminor.yy0.eCode = -pik_nth_value(p,&yymsp[-3].minor.yy0);} |
| 2931 | | -#line 2956 "pikchr.c" |
| 2984 | +#line 2984 "pikchr.c" |
| 2932 | 2985 | yymsp[-3].minor.yy0 = yylhsminor.yy0; |
| 2933 | 2986 | break; |
| 2934 | 2987 | case 97: /* nth ::= LAST LB RB */ |
| 2935 | | -#line 757 "pikchr.y" |
| 2988 | +#line 773 "pikchr.y" |
| 2936 | 2989 | {yymsp[-2].minor.yy0=yymsp[-1].minor.yy0; yymsp[-2].minor.yy0.eCode = -1; } |
| 2937 | | -#line 2962 "pikchr.c" |
| 2990 | +#line 2990 "pikchr.c" |
| 2938 | 2991 | break; |
| 2939 | 2992 | case 98: /* expr ::= expr PLUS expr */ |
| 2940 | | -#line 759 "pikchr.y" |
| 2941 | | -{yylhsminor.yy21=yymsp[-2].minor.yy21+yymsp[0].minor.yy21;} |
| 2942 | | -#line 2967 "pikchr.c" |
| 2943 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 2993 | +#line 775 "pikchr.y" |
| 2994 | +{yylhsminor.yy129=yymsp[-2].minor.yy129+yymsp[0].minor.yy129;} |
| 2995 | +#line 2995 "pikchr.c" |
| 2996 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 2944 | 2997 | break; |
| 2945 | 2998 | case 99: /* expr ::= expr MINUS expr */ |
| 2946 | | -#line 760 "pikchr.y" |
| 2947 | | -{yylhsminor.yy21=yymsp[-2].minor.yy21-yymsp[0].minor.yy21;} |
| 2948 | | -#line 2973 "pikchr.c" |
| 2949 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 2999 | +#line 776 "pikchr.y" |
| 3000 | +{yylhsminor.yy129=yymsp[-2].minor.yy129-yymsp[0].minor.yy129;} |
| 3001 | +#line 3001 "pikchr.c" |
| 3002 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 2950 | 3003 | break; |
| 2951 | 3004 | case 100: /* expr ::= expr STAR expr */ |
| 2952 | | -#line 761 "pikchr.y" |
| 2953 | | -{yylhsminor.yy21=yymsp[-2].minor.yy21*yymsp[0].minor.yy21;} |
| 2954 | | -#line 2979 "pikchr.c" |
| 2955 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 3005 | +#line 777 "pikchr.y" |
| 3006 | +{yylhsminor.yy129=yymsp[-2].minor.yy129*yymsp[0].minor.yy129;} |
| 3007 | +#line 3007 "pikchr.c" |
| 3008 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 2956 | 3009 | break; |
| 2957 | 3010 | case 101: /* expr ::= expr SLASH expr */ |
| 2958 | | -#line 762 "pikchr.y" |
| 3011 | +#line 778 "pikchr.y" |
| 2959 | 3012 | { |
| 2960 | | - if( yymsp[0].minor.yy21==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy21 = 0.0; } |
| 2961 | | - else{ yylhsminor.yy21 = yymsp[-2].minor.yy21/yymsp[0].minor.yy21; } |
| 3013 | + if( yymsp[0].minor.yy129==0.0 ){ pik_error(p, &yymsp[-1].minor.yy0, "division by zero"); yylhsminor.yy129 = 0.0; } |
| 3014 | + else{ yylhsminor.yy129 = yymsp[-2].minor.yy129/yymsp[0].minor.yy129; } |
| 2962 | 3015 | } |
| 2963 | | -#line 2988 "pikchr.c" |
| 2964 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 3016 | +#line 3016 "pikchr.c" |
| 3017 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 2965 | 3018 | break; |
| 2966 | 3019 | case 102: /* expr ::= MINUS expr */ |
| 2967 | | -#line 766 "pikchr.y" |
| 2968 | | -{yymsp[-1].minor.yy21=-yymsp[0].minor.yy21;} |
| 2969 | | -#line 2994 "pikchr.c" |
| 3020 | +#line 782 "pikchr.y" |
| 3021 | +{yymsp[-1].minor.yy129=-yymsp[0].minor.yy129;} |
| 3022 | +#line 3022 "pikchr.c" |
| 2970 | 3023 | break; |
| 2971 | 3024 | case 103: /* expr ::= PLUS expr */ |
| 2972 | | -#line 767 "pikchr.y" |
| 2973 | | -{yymsp[-1].minor.yy21=yymsp[0].minor.yy21;} |
| 2974 | | -#line 2999 "pikchr.c" |
| 3025 | +#line 783 "pikchr.y" |
| 3026 | +{yymsp[-1].minor.yy129=yymsp[0].minor.yy129;} |
| 3027 | +#line 3027 "pikchr.c" |
| 2975 | 3028 | break; |
| 2976 | 3029 | case 104: /* expr ::= LP expr RP */ |
| 2977 | | -#line 768 "pikchr.y" |
| 2978 | | -{yymsp[-2].minor.yy21=yymsp[-1].minor.yy21;} |
| 2979 | | -#line 3004 "pikchr.c" |
| 3030 | +#line 784 "pikchr.y" |
| 3031 | +{yymsp[-2].minor.yy129=yymsp[-1].minor.yy129;} |
| 3032 | +#line 3032 "pikchr.c" |
| 2980 | 3033 | break; |
| 2981 | 3034 | case 105: /* expr ::= LP FILL|COLOR|THICKNESS RP */ |
| 2982 | | -#line 769 "pikchr.y" |
| 2983 | | -{yymsp[-2].minor.yy21=pik_get_var(p,&yymsp[-1].minor.yy0);} |
| 2984 | | -#line 3009 "pikchr.c" |
| 3035 | +#line 785 "pikchr.y" |
| 3036 | +{yymsp[-2].minor.yy129=pik_get_var(p,&yymsp[-1].minor.yy0);} |
| 3037 | +#line 3037 "pikchr.c" |
| 2985 | 3038 | break; |
| 2986 | 3039 | case 106: /* expr ::= NUMBER */ |
| 2987 | | -#line 770 "pikchr.y" |
| 2988 | | -{yylhsminor.yy21=pik_atof(&yymsp[0].minor.yy0);} |
| 2989 | | -#line 3014 "pikchr.c" |
| 2990 | | - yymsp[0].minor.yy21 = yylhsminor.yy21; |
| 3040 | +#line 786 "pikchr.y" |
| 3041 | +{yylhsminor.yy129=pik_atof(&yymsp[0].minor.yy0);} |
| 3042 | +#line 3042 "pikchr.c" |
| 3043 | + yymsp[0].minor.yy129 = yylhsminor.yy129; |
| 2991 | 3044 | break; |
| 2992 | 3045 | case 107: /* expr ::= ID */ |
| 2993 | | -#line 771 "pikchr.y" |
| 2994 | | -{yylhsminor.yy21=pik_get_var(p,&yymsp[0].minor.yy0);} |
| 2995 | | -#line 3020 "pikchr.c" |
| 2996 | | - yymsp[0].minor.yy21 = yylhsminor.yy21; |
| 3046 | +#line 787 "pikchr.y" |
| 3047 | +{yylhsminor.yy129=pik_get_var(p,&yymsp[0].minor.yy0);} |
| 3048 | +#line 3048 "pikchr.c" |
| 3049 | + yymsp[0].minor.yy129 = yylhsminor.yy129; |
| 2997 | 3050 | break; |
| 2998 | 3051 | case 108: /* expr ::= FUNC1 LP expr RP */ |
| 2999 | | -#line 772 "pikchr.y" |
| 3000 | | -{yylhsminor.yy21 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy21,0.0);} |
| 3001 | | -#line 3026 "pikchr.c" |
| 3002 | | - yymsp[-3].minor.yy21 = yylhsminor.yy21; |
| 3052 | +#line 788 "pikchr.y" |
| 3053 | +{yylhsminor.yy129 = pik_func(p,&yymsp[-3].minor.yy0,yymsp[-1].minor.yy129,0.0);} |
| 3054 | +#line 3054 "pikchr.c" |
| 3055 | + yymsp[-3].minor.yy129 = yylhsminor.yy129; |
| 3003 | 3056 | break; |
| 3004 | 3057 | case 109: /* expr ::= FUNC2 LP expr COMMA expr RP */ |
| 3005 | | -#line 773 "pikchr.y" |
| 3006 | | -{yylhsminor.yy21 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy21,yymsp[-1].minor.yy21);} |
| 3007 | | -#line 3032 "pikchr.c" |
| 3008 | | - yymsp[-5].minor.yy21 = yylhsminor.yy21; |
| 3058 | +#line 789 "pikchr.y" |
| 3059 | +{yylhsminor.yy129 = pik_func(p,&yymsp[-5].minor.yy0,yymsp[-3].minor.yy129,yymsp[-1].minor.yy129);} |
| 3060 | +#line 3060 "pikchr.c" |
| 3061 | + yymsp[-5].minor.yy129 = yylhsminor.yy129; |
| 3009 | 3062 | break; |
| 3010 | 3063 | case 110: /* expr ::= DIST LP position COMMA position RP */ |
| 3011 | | -#line 774 "pikchr.y" |
| 3012 | | -{yymsp[-5].minor.yy21 = pik_dist(&yymsp[-3].minor.yy63,&yymsp[-1].minor.yy63);} |
| 3013 | | -#line 3038 "pikchr.c" |
| 3064 | +#line 790 "pikchr.y" |
| 3065 | +{yymsp[-5].minor.yy129 = pik_dist(&yymsp[-3].minor.yy187,&yymsp[-1].minor.yy187);} |
| 3066 | +#line 3066 "pikchr.c" |
| 3014 | 3067 | break; |
| 3015 | 3068 | case 111: /* expr ::= place2 DOT_XY X */ |
| 3016 | | -#line 775 "pikchr.y" |
| 3017 | | -{yylhsminor.yy21 = yymsp[-2].minor.yy63.x;} |
| 3018 | | -#line 3043 "pikchr.c" |
| 3019 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 3069 | +#line 791 "pikchr.y" |
| 3070 | +{yylhsminor.yy129 = yymsp[-2].minor.yy187.x;} |
| 3071 | +#line 3071 "pikchr.c" |
| 3072 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 3020 | 3073 | break; |
| 3021 | 3074 | case 112: /* expr ::= place2 DOT_XY Y */ |
| 3022 | | -#line 776 "pikchr.y" |
| 3023 | | -{yylhsminor.yy21 = yymsp[-2].minor.yy63.y;} |
| 3024 | | -#line 3049 "pikchr.c" |
| 3025 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 3075 | +#line 792 "pikchr.y" |
| 3076 | +{yylhsminor.yy129 = yymsp[-2].minor.yy187.y;} |
| 3077 | +#line 3077 "pikchr.c" |
| 3078 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 3026 | 3079 | break; |
| 3027 | 3080 | case 113: /* expr ::= object DOT_L numproperty */ |
| 3028 | 3081 | case 114: /* expr ::= object DOT_L dashproperty */ yytestcase(yyruleno==114); |
| 3029 | 3082 | case 115: /* expr ::= object DOT_L colorproperty */ yytestcase(yyruleno==115); |
| 3030 | | -#line 777 "pikchr.y" |
| 3031 | | -{yylhsminor.yy21=pik_property_of(yymsp[-2].minor.yy162,&yymsp[0].minor.yy0);} |
| 3032 | | -#line 3057 "pikchr.c" |
| 3033 | | - yymsp[-2].minor.yy21 = yylhsminor.yy21; |
| 3083 | +#line 793 "pikchr.y" |
| 3084 | +{yylhsminor.yy129=pik_property_of(yymsp[-2].minor.yy54,&yymsp[0].minor.yy0);} |
| 3085 | +#line 3085 "pikchr.c" |
| 3086 | + yymsp[-2].minor.yy129 = yylhsminor.yy129; |
| 3034 | 3087 | break; |
| 3035 | 3088 | default: |
| 3036 | 3089 | /* (116) lvalue ::= ID */ yytestcase(yyruleno==116); |
| 3037 | 3090 | /* (117) lvalue ::= FILL */ yytestcase(yyruleno==117); |
| 3038 | 3091 | /* (118) lvalue ::= COLOR */ yytestcase(yyruleno==118); |
| | @@ -3130,19 +3183,19 @@ |
| 3130 | 3183 | ){ |
| 3131 | 3184 | pik_parserARG_FETCH |
| 3132 | 3185 | pik_parserCTX_FETCH |
| 3133 | 3186 | #define TOKEN yyminor |
| 3134 | 3187 | /************ Begin %syntax_error code ****************************************/ |
| 3135 | | -#line 537 "pikchr.y" |
| 3188 | +#line 551 "pikchr.y" |
| 3136 | 3189 | |
| 3137 | 3190 | if( TOKEN.z && TOKEN.z[0] ){ |
| 3138 | 3191 | pik_error(p, &TOKEN, "syntax error"); |
| 3139 | 3192 | }else{ |
| 3140 | 3193 | pik_error(p, 0, "syntax error"); |
| 3141 | 3194 | } |
| 3142 | 3195 | UNUSED_PARAMETER(yymajor); |
| 3143 | | -#line 3168 "pikchr.c" |
| 3196 | +#line 3196 "pikchr.c" |
| 3144 | 3197 | /************ End %syntax_error code ******************************************/ |
| 3145 | 3198 | pik_parserARG_STORE /* Suppress warning about unused %extra_argument variable */ |
| 3146 | 3199 | pik_parserCTX_STORE |
| 3147 | 3200 | } |
| 3148 | 3201 | |
| | @@ -3407,11 +3460,11 @@ |
| 3407 | 3460 | #else |
| 3408 | 3461 | (void)iToken; |
| 3409 | 3462 | return 0; |
| 3410 | 3463 | #endif |
| 3411 | 3464 | } |
| 3412 | | -#line 782 "pikchr.y" |
| 3465 | +#line 798 "pikchr.y" |
| 3413 | 3466 | |
| 3414 | 3467 | |
| 3415 | 3468 | |
| 3416 | 3469 | /* Chart of the 148 official CSS color names with their |
| 3417 | 3470 | ** corresponding RGB values thru Color Module Level 4: |
| | @@ -3634,42 +3687,57 @@ |
| 3634 | 3687 | ** than true arcs. Multiple reasons: (1) the legacy-PIC parameters |
| 3635 | 3688 | ** that control arcs are obscure and I could not figure out what they |
| 3636 | 3689 | ** mean based on available documentation. (2) Arcs are rarely used, |
| 3637 | 3690 | ** and so do not seem that important. |
| 3638 | 3691 | */ |
| 3639 | | -static PPoint arcControlPoint(int cw, PPoint f, PPoint t, PNum rScale){ |
| 3692 | +static PPoint arcControlPoint(int cw, PPoint f, PPoint t){ |
| 3640 | 3693 | PPoint m; |
| 3641 | 3694 | PNum dx, dy; |
| 3642 | 3695 | m.x = 0.5*(f.x+t.x); |
| 3643 | 3696 | m.y = 0.5*(f.y+t.y); |
| 3644 | 3697 | dx = t.x - f.x; |
| 3645 | 3698 | dy = t.y - f.y; |
| 3646 | 3699 | if( cw ){ |
| 3647 | | - m.x -= 0.5*rScale*dy; |
| 3648 | | - m.y += 0.5*rScale*dx; |
| 3700 | + m.x -= 0.5*dy; |
| 3701 | + m.y += 0.5*dx; |
| 3649 | 3702 | }else{ |
| 3650 | | - m.x += 0.5*rScale*dy; |
| 3651 | | - m.y -= 0.5*rScale*dx; |
| 3703 | + m.x += 0.5*dy; |
| 3704 | + m.y -= 0.5*dx; |
| 3652 | 3705 | } |
| 3653 | 3706 | return m; |
| 3654 | 3707 | } |
| 3655 | 3708 | static void arcCheck(Pik *p, PObj *pObj){ |
| 3656 | | - PPoint m; |
| 3709 | + PPoint f, m, t; |
| 3710 | + PNum sw; |
| 3711 | + int i; |
| 3657 | 3712 | if( p->nTPath>2 ){ |
| 3658 | 3713 | pik_error(p, &pObj->errTok, "arc geometry error"); |
| 3659 | 3714 | return; |
| 3660 | 3715 | } |
| 3661 | | - m = arcControlPoint(pObj->cw, p->aTPath[0], p->aTPath[1], 0.5); |
| 3662 | | - pik_bbox_add_xy(&pObj->bbox, m.x, m.y); |
| 3716 | + f = p->aTPath[0]; |
| 3717 | + t = p->aTPath[1]; |
| 3718 | + m = arcControlPoint(pObj->cw, f, t); |
| 3719 | + sw = pObj->sw; |
| 3720 | + for(i=1; i<16; i++){ |
| 3721 | + PNum t1, t2, a, b, c, x, y; |
| 3722 | + t1 = 0.0625*i; |
| 3723 | + t2 = 1.0 - t1; |
| 3724 | + a = t2*t2; |
| 3725 | + b = 2*t1*t2; |
| 3726 | + c = t1*t1; |
| 3727 | + x = a*f.x + b*m.x + c*t.x; |
| 3728 | + y = a*f.y + b*m.y + c*t.y; |
| 3729 | + pik_bbox_addellipse(&pObj->bbox, x, y, sw, sw); |
| 3730 | + } |
| 3663 | 3731 | } |
| 3664 | 3732 | static void arcRender(Pik *p, PObj *pObj){ |
| 3665 | 3733 | PPoint f, m, t; |
| 3666 | 3734 | if( pObj->nPath<2 ) return; |
| 3667 | 3735 | if( pObj->sw<0.0 ) return; |
| 3668 | 3736 | f = pObj->aPath[0]; |
| 3669 | 3737 | t = pObj->aPath[1]; |
| 3670 | | - m = arcControlPoint(pObj->cw,f,t,1.0); |
| 3738 | + m = arcControlPoint(pObj->cw,f,t); |
| 3671 | 3739 | if( pObj->larrow ){ |
| 3672 | 3740 | pik_draw_arrowhead(p,&m,&f,pObj); |
| 3673 | 3741 | } |
| 3674 | 3742 | if( pObj->rarrow ){ |
| 3675 | 3743 | pik_draw_arrowhead(p,&m,&t,pObj); |
| | @@ -4338,11 +4406,11 @@ |
| 4338 | 4406 | static PPoint textOffset(Pik *p, PObj *pObj, int cp){ |
| 4339 | 4407 | /* Automatically slim-down the width and height of text |
| 4340 | 4408 | ** statements so that the bounding box tightly encloses the text, |
| 4341 | 4409 | ** then get boxOffset() to do the offset computation. |
| 4342 | 4410 | */ |
| 4343 | | - pik_size_to_fit(p, &pObj->errTok,3); |
| 4411 | + pik_size_to_fit(p, pObj, &pObj->errTok,3); |
| 4344 | 4412 | return boxOffset(p, pObj, cp); |
| 4345 | 4413 | } |
| 4346 | 4414 | static void textRender(Pik *p, PObj *pObj){ |
| 4347 | 4415 | pik_append_txt(p, pObj, 0); |
| 4348 | 4416 | } |
| | @@ -6347,16 +6415,15 @@ |
| 6347 | 6415 | ** |
| 6348 | 6416 | ** 1: Fit horizontally only |
| 6349 | 6417 | ** 2: Fit vertically only |
| 6350 | 6418 | ** 3: Fit both ways |
| 6351 | 6419 | */ |
| 6352 | | -static void pik_size_to_fit(Pik *p, PToken *pFit, int eWhich){ |
| 6353 | | - PObj *pObj; |
| 6420 | +static void pik_size_to_fit(Pik *p, PObj *pObj, PToken *pFit, int eWhich){ |
| 6354 | 6421 | PNum w, h; |
| 6355 | 6422 | PBox bbox; |
| 6356 | 6423 | if( p->nErr ) return; |
| 6357 | | - pObj = p->cur; |
| 6424 | + if( pObj==0 ) pObj = p->cur; |
| 6358 | 6425 | |
| 6359 | 6426 | if( pObj->nTxt==0 ){ |
| 6360 | 6427 | pik_error(0, pFit, "no text to fit to"); |
| 6361 | 6428 | return; |
| 6362 | 6429 | } |
| | @@ -6495,13 +6562,13 @@ |
| 6495 | 6562 | unsigned int i; |
| 6496 | 6563 | mid = (first+last)/2; |
| 6497 | 6564 | zClr = aColor[mid].zName; |
| 6498 | 6565 | for(i=0; i<pId->n; i++){ |
| 6499 | 6566 | c1 = zClr[i]&0x7f; |
| 6500 | | - if( isupper(c1) ) c1 = tolower(c1); |
| 6567 | + if( IsUpper(c1) ) c1 = ToLower(c1); |
| 6501 | 6568 | c2 = pId->z[i]&0x7f; |
| 6502 | | - if( isupper(c2) ) c2 = tolower(c2); |
| 6569 | + if( IsUpper(c2) ) c2 = ToLower(c2); |
| 6503 | 6570 | c = c2 - c1; |
| 6504 | 6571 | if( c ) break; |
| 6505 | 6572 | } |
| 6506 | 6573 | if( c==0 && aColor[mid].zName[pId->n] ) c = -1; |
| 6507 | 6574 | if( c==0 ) return (double)aColor[mid].val; |
| | @@ -6896,20 +6963,20 @@ |
| 6896 | 6963 | */ |
| 6897 | 6964 | if( pObj->h<=0.0 ){ |
| 6898 | 6965 | if( pObj->nTxt==0 ){ |
| 6899 | 6966 | pObj->h = 0.0; |
| 6900 | 6967 | }else if( pObj->w<=0.0 ){ |
| 6901 | | - pik_size_to_fit(p, &pObj->errTok, 3); |
| 6968 | + pik_size_to_fit(p, pObj, &pObj->errTok, 3); |
| 6902 | 6969 | }else{ |
| 6903 | | - pik_size_to_fit(p, &pObj->errTok, 2); |
| 6970 | + pik_size_to_fit(p, pObj, &pObj->errTok, 2); |
| 6904 | 6971 | } |
| 6905 | 6972 | } |
| 6906 | 6973 | if( pObj->w<=0.0 ){ |
| 6907 | 6974 | if( pObj->nTxt==0 ){ |
| 6908 | 6975 | pObj->w = 0.0; |
| 6909 | 6976 | }else{ |
| 6910 | | - pik_size_to_fit(p, &pObj->errTok, 1); |
| 6977 | + pik_size_to_fit(p, pObj, &pObj->errTok, 1); |
| 6911 | 6978 | } |
| 6912 | 6979 | } |
| 6913 | 6980 | ofst = pik_elem_offset(p, pObj, pObj->eWith); |
| 6914 | 6981 | dx = (pObj->with.x - ofst.x) - pObj->ptAt.x; |
| 6915 | 6982 | dy = (pObj->with.y - ofst.y) - pObj->ptAt.y; |
| | @@ -7235,11 +7302,12 @@ |
| 7235 | 7302 | pik_append_num(p, " width=\"", p->wSVG); |
| 7236 | 7303 | pik_append_num(p, "\" height=\"", p->hSVG); |
| 7237 | 7304 | pik_append(p, "\"", 1); |
| 7238 | 7305 | } |
| 7239 | 7306 | pik_append_dis(p, " viewBox=\"0 0 ",w,""); |
| 7240 | | - pik_append_dis(p, " ",h,"\">\n"); |
| 7307 | + pik_append_dis(p, " ",h,"\""); |
| 7308 | + pik_append(p, " data-pikchr-date=\"" MANIFEST_ISODATE "\">\n", -1); |
| 7241 | 7309 | pik_elist_render(p, pList); |
| 7242 | 7310 | pik_append(p,"</svg>\n", -1); |
| 7243 | 7311 | }else{ |
| 7244 | 7312 | p->wSVG = -1; |
| 7245 | 7313 | p->hSVG = -1; |
| | @@ -7319,10 +7387,11 @@ |
| 7319 | 7387 | { "n", 1, T_EDGEPT, 0, CP_N }, |
| 7320 | 7388 | { "ne", 2, T_EDGEPT, 0, CP_NE }, |
| 7321 | 7389 | { "north", 5, T_EDGEPT, 0, CP_N }, |
| 7322 | 7390 | { "nw", 2, T_EDGEPT, 0, CP_NW }, |
| 7323 | 7391 | { "of", 2, T_OF, 0, 0 }, |
| 7392 | + { "pikchr_date",11, T_ISODATE, 0, 0, }, |
| 7324 | 7393 | { "previous", 8, T_LAST, 0, 0, }, |
| 7325 | 7394 | { "print", 5, T_PRINT, 0, 0 }, |
| 7326 | 7395 | { "rad", 3, T_RADIUS, 0, 0 }, |
| 7327 | 7396 | { "radius", 6, T_RADIUS, 0, 0 }, |
| 7328 | 7397 | { "right", 5, T_RIGHT, DIR_RIGHT, CP_E }, |
| | @@ -7605,11 +7674,11 @@ |
| 7605 | 7674 | } |
| 7606 | 7675 | default: { |
| 7607 | 7676 | c = z[0]; |
| 7608 | 7677 | if( c=='.' ){ |
| 7609 | 7678 | unsigned char c1 = z[1]; |
| 7610 | | - if( islower(c1) ){ |
| 7679 | + if( IsLower(c1) ){ |
| 7611 | 7680 | const PikWord *pFound; |
| 7612 | 7681 | for(i=2; (c = z[i])>='a' && c<='z'; i++){} |
| 7613 | 7682 | pFound = pik_find_word((const char*)z+1, i-1, |
| 7614 | 7683 | pik_keywords, count(pik_keywords)); |
| 7615 | 7684 | if( pFound && (pFound->eEdge>0 || |
| | @@ -7625,15 +7694,15 @@ |
| 7625 | 7694 | }else{ |
| 7626 | 7695 | /* Any other "dot" */ |
| 7627 | 7696 | pToken->eType = T_DOT_L; |
| 7628 | 7697 | } |
| 7629 | 7698 | return 1; |
| 7630 | | - }else if( isdigit(c1) ){ |
| 7699 | + }else if( IsDigit(c1) ){ |
| 7631 | 7700 | i = 0; |
| 7632 | 7701 | /* no-op. Fall through to number handling */ |
| 7633 | | - }else if( isupper(c1) ){ |
| 7634 | | - for(i=2; (c = z[i])!=0 && (isalnum(c) || c=='_'); i++){} |
| 7702 | + }else if( IsUpper(c1) ){ |
| 7703 | + for(i=2; (c = z[i])!=0 && (IsAlnum(c) || c=='_'); i++){} |
| 7635 | 7704 | pToken->eType = T_DOT_U; |
| 7636 | 7705 | return 1; |
| 7637 | 7706 | }else{ |
| 7638 | 7707 | pToken->eType = T_ERROR; |
| 7639 | 7708 | return 1; |
| | @@ -7644,11 +7713,11 @@ |
| 7644 | 7713 | int isInt = 1; |
| 7645 | 7714 | if( c!='.' ){ |
| 7646 | 7715 | nDigit = 1; |
| 7647 | 7716 | for(i=1; (c = z[i])>='0' && c<='9'; i++){ nDigit++; } |
| 7648 | 7717 | if( i==1 && (c=='x' || c=='X') ){ |
| 7649 | | - for(i=2; (c = z[i])!=0 && isxdigit(c); i++){} |
| 7718 | + for(i=2; (c = z[i])!=0 && IsXDigit(c); i++){} |
| 7650 | 7719 | pToken->eType = T_NUMBER; |
| 7651 | 7720 | return i; |
| 7652 | 7721 | } |
| 7653 | 7722 | }else{ |
| 7654 | 7723 | isInt = 0; |
| | @@ -7700,13 +7769,13 @@ |
| 7700 | 7769 | ){ |
| 7701 | 7770 | i += 2; |
| 7702 | 7771 | } |
| 7703 | 7772 | pToken->eType = T_NUMBER; |
| 7704 | 7773 | return i; |
| 7705 | | - }else if( islower(c) ){ |
| 7774 | + }else if( IsLower(c) ){ |
| 7706 | 7775 | const PikWord *pFound; |
| 7707 | | - for(i=1; (c = z[i])!=0 && (isalnum(c) || c=='_'); i++){} |
| 7776 | + for(i=1; (c = z[i])!=0 && (IsAlnum(c) || c=='_'); i++){} |
| 7708 | 7777 | pFound = pik_find_word((const char*)z, i, |
| 7709 | 7778 | pik_keywords, count(pik_keywords)); |
| 7710 | 7779 | if( pFound ){ |
| 7711 | 7780 | pToken->eType = pFound->eType; |
| 7712 | 7781 | pToken->eCode = pFound->eCode; |
| | @@ -7719,19 +7788,19 @@ |
| 7719 | 7788 | }else{ |
| 7720 | 7789 | pToken->eType = T_ID; |
| 7721 | 7790 | } |
| 7722 | 7791 | return i; |
| 7723 | 7792 | }else if( c>='A' && c<='Z' ){ |
| 7724 | | - for(i=1; (c = z[i])!=0 && (isalnum(c) || c=='_'); i++){} |
| 7793 | + for(i=1; (c = z[i])!=0 && (IsAlnum(c) || c=='_'); i++){} |
| 7725 | 7794 | pToken->eType = T_PLACENAME; |
| 7726 | 7795 | return i; |
| 7727 | | - }else if( c=='$' && z[1]>='1' && z[1]<='9' && !isdigit(z[2]) ){ |
| 7796 | + }else if( c=='$' && z[1]>='1' && z[1]<='9' && !IsDigit(z[2]) ){ |
| 7728 | 7797 | pToken->eType = T_PARAMETER; |
| 7729 | 7798 | pToken->eCode = z[1] - '1'; |
| 7730 | 7799 | return 2; |
| 7731 | 7800 | }else if( c=='_' || c=='$' || c=='@' ){ |
| 7732 | | - for(i=1; (c = z[i])!=0 && (isalnum(c) || c=='_'); i++){} |
| 7801 | + for(i=1; (c = z[i])!=0 && (IsAlnum(c) || c=='_'); i++){} |
| 7733 | 7802 | pToken->eType = T_ID; |
| 7734 | 7803 | return i; |
| 7735 | 7804 | }else{ |
| 7736 | 7805 | pToken->eType = T_ERROR; |
| 7737 | 7806 | return 1; |
| | @@ -7814,12 +7883,12 @@ |
| 7814 | 7883 | /* Remove leading and trailing whitespace from each argument. |
| 7815 | 7884 | ** If what remains is one of $1, $2, ... $9 then transfer the |
| 7816 | 7885 | ** corresponding argument from the outer context */ |
| 7817 | 7886 | for(j=0; j<=nArg; j++){ |
| 7818 | 7887 | PToken *t = &args[j]; |
| 7819 | | - while( t->n>0 && isspace(t->z[0]) ){ t->n--; t->z++; } |
| 7820 | | - while( t->n>0 && isspace(t->z[t->n-1]) ){ t->n--; } |
| 7888 | + while( t->n>0 && IsSpace(t->z[0]) ){ t->n--; t->z++; } |
| 7889 | + while( t->n>0 && IsSpace(t->z[t->n-1]) ){ t->n--; } |
| 7821 | 7890 | if( t->n==2 && t->z[0]=='$' && t->z[1]>='1' && t->z[1]<='9' ){ |
| 7822 | 7891 | if( pOuter ) *t = pOuter[t->z[1]-'1']; |
| 7823 | 7892 | else t->n = 0; |
| 7824 | 7893 | } |
| 7825 | 7894 | } |
| | @@ -7896,21 +7965,36 @@ |
| 7896 | 7965 | pMac->inUse = 0; |
| 7897 | 7966 | }else{ |
| 7898 | 7967 | #if 0 |
| 7899 | 7968 | printf("******** Token %s (%d): \"%.*s\" **************\n", |
| 7900 | 7969 | yyTokenName[token.eType], token.eType, |
| 7901 | | - (int)(isspace(token.z[0]) ? 0 : sz), token.z); |
| 7970 | + (int)(IsSpace(token.z[0]) ? 0 : sz), token.z); |
| 7902 | 7971 | #endif |
| 7903 | 7972 | token.n = (unsigned short)(sz & 0xffff); |
| 7904 | 7973 | if( p->nToken++ > PIKCHR_TOKEN_LIMIT ){ |
| 7905 | 7974 | pik_error(p, &token, "script is too complex"); |
| 7906 | 7975 | break; |
| 7976 | + } |
| 7977 | + if( token.eType==T_ISODATE ){ |
| 7978 | + token.z = "\"" MANIFEST_ISODATE "\""; |
| 7979 | + token.n = sizeof(MANIFEST_ISODATE)+1; |
| 7980 | + token.eType = T_STRING; |
| 7907 | 7981 | } |
| 7908 | 7982 | pik_parser(pParser, token.eType, token); |
| 7909 | 7983 | } |
| 7910 | 7984 | } |
| 7911 | 7985 | } |
| 7986 | + |
| 7987 | +/* |
| 7988 | +** Return the version name. |
| 7989 | +*/ |
| 7990 | +const char *pikchr_version(void) |
| 7991 | + /* Emscripten workaround, else it chokes on the inlined version */; |
| 7992 | + |
| 7993 | +const char *pikchr_version(void){ |
| 7994 | + return RELEASE_VERSION " " MANIFEST_ISODATE; |
| 7995 | +} |
| 7912 | 7996 | |
| 7913 | 7997 | /* |
| 7914 | 7998 | ** Parse the PIKCHR script contained in zText[]. Return a rendering. Or |
| 7915 | 7999 | ** if an error is encountered, return the error text. The error message |
| 7916 | 8000 | ** is HTML formatted. So regardless of what happens, the return text |
| | @@ -8130,10 +8214,14 @@ |
| 8130 | 8214 | exit(1); |
| 8131 | 8215 | } |
| 8132 | 8216 | bSvgOnly = 1; |
| 8133 | 8217 | mFlags |= PIKCHR_PLAINTEXT_ERRORS; |
| 8134 | 8218 | }else |
| 8219 | + if( strcmp(z,"version")==0 || strcmp(z,"v")==0 ){ |
| 8220 | + printf("pikchr %s\n", pikchr_version()); |
| 8221 | + return 0; |
| 8222 | + }else |
| 8135 | 8223 | { |
| 8136 | 8224 | fprintf(stderr,"unknown option: \"%s\"\n", argv[i]); |
| 8137 | 8225 | usage(argv[0]); |
| 8138 | 8226 | } |
| 8139 | 8227 | continue; |
| | @@ -8242,6 +8330,6 @@ |
| 8242 | 8330 | |
| 8243 | 8331 | |
| 8244 | 8332 | #endif /* PIKCHR_TCL */ |
| 8245 | 8333 | |
| 8246 | 8334 | |
| 8247 | | -#line 8272 "pikchr.c" |
| 8335 | +#line 8335 "pikchr.c" |
| 8248 | 8336 | |