Changeset 1037 for XIOS/dev/branch_yushan/src/parse_expr
- Timestamp:
- 01/25/17 16:25:17 (7 years ago)
- Location:
- XIOS/dev/branch_yushan/src/parse_expr
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/src/parse_expr/filter_expr_node.cpp
r1001 r1037 40 40 boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 41 41 { 42 boost::shared_ptr<COutputPin> outputPin; 43 44 if (fieldId == "this") 45 outputPin = thisField.getSelfTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 46 else if (CField::has(fieldId)) 47 { 48 CField* field = CField::get(fieldId); 49 if (field == &thisField) 50 ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 51 << "The field " << fieldId << " has an invalid reference to itself. " 52 << "Use the keyword \"this\" if you want to reference the input data sent to this field."); 53 54 field->buildFilterGraph(gc, false); 55 outputPin = field->getTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 56 } 57 else 42 if (!CField::has(fieldId)) 58 43 ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 59 44 << "The field " << fieldId << " does not exist."); 60 45 61 return outputPin; 46 CField* field = CField::get(fieldId); 47 if (field == &thisField) 48 ERROR("boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 49 << "The field " << fieldId << " has an invalid reference to itself."); 50 51 field->buildFilterGraph(gc, false); 52 return field->getTemporalDataFilter(gc, thisField.freq_op.isEmpty() ? TimeStep : thisField.freq_op); 62 53 } 63 54 -
XIOS/dev/branch_yushan/src/parse_expr/lex_parser.cpp
r1019 r1037 10 10 #define YY_FLEX_MAJOR_VERSION 2 11 11 #define YY_FLEX_MINOR_VERSION 5 12 #define YY_FLEX_SUBMINOR_VERSION 3 712 #define YY_FLEX_SUBMINOR_VERSION 39 13 13 #if YY_FLEX_SUBMINOR_VERSION > 0 14 14 #define FLEX_BETA … … 143 143 /* Size of default input buffer. */ 144 144 #ifndef YY_BUF_SIZE 145 #ifdef __ia64__ 146 /* On IA-64, the buffer size is 16k, not 8k. 147 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 148 * Ditto for the __ia64__ case accordingly. 149 */ 150 #define YY_BUF_SIZE 32768 151 #else 145 152 #define YY_BUF_SIZE 16384 153 #endif /* __ia64__ */ 146 154 #endif 147 155 … … 169 177 170 178 #define YY_LESS_LINENO(n) 179 #define YY_LINENO_REWIND_TO(ptr) 171 180 172 181 /* Return all but the first "n" matched characters back to the input stream. */ … … 347 356 extern char *yytext; 348 357 #define yytext_ptr yytext 358 349 359 static yyconst flex_int16_t yy_nxt[][128] = 350 360 { … … 564 574 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 565 575 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 566 -12, 23, -12, -12, -12, -12, -12, -12, -12, -12,576 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 567 577 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 568 578 -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, … … 579 589 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 580 590 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 581 -13, -13, -13, -13, -13, -13, 2 4, -13, 25, 25,582 2 5, 25, 25, 25, 25, 25, 25, 25, -13, -13,583 -13, -13, -13, -13, -13, -13, -13, -13, -13, 2 6,591 -13, -13, -13, -13, -13, -13, 23, -13, 24, 24, 592 24, 24, 24, 24, 24, 24, 24, 24, -13, -13, 593 -13, -13, -13, -13, -13, -13, -13, -13, -13, 25, 584 594 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 585 595 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 586 596 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 587 -13, 2 6, -13, -13, -13, -13, -13, -13, -13, -13,597 -13, 25, -13, -13, -13, -13, -13, -13, -13, -13, 588 598 589 599 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, … … 598 608 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 599 609 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 600 -14, 2 7, -14, -14, -14, -14, -14, -14, -14, -14,610 -14, 26, -14, -14, -14, -14, -14, -14, -14, -14, 601 611 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 602 612 … … 616 626 617 627 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 618 -15, 2 8, -15, -15, -15, -15, -15, -15, -15, -15,628 -15, 27, -15, -15, -15, -15, -15, -15, -15, -15, 619 629 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 620 630 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, … … 633 643 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 634 644 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 635 -16, 2 9, -16, -16, -16, -16, -16, -16, -16, -16,645 -16, 28, -16, -16, -16, -16, -16, -16, -16, -16, 636 646 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 637 647 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, … … 650 660 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 651 661 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 652 -17, -17, -17, -17, -17, 30, 30, 30, 30, 30,653 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,654 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,655 656 30, -17, -17, -17, -17, -17, -17, 30, 30, 30,657 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,658 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,659 30, 30, 30, -17, -17, -17, -17, -17662 -17, -17, -17, -17, -17, 29, 29, 29, 29, 29, 663 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 664 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 665 666 29, -17, -17, -17, -17, -17, -17, 29, 29, 29, 667 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 668 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 669 29, 29, 29, -17, -17, -17, -17, -17 660 670 }, 661 671 … … 665 675 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 666 676 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 667 -18, -18, -18, -18, -18, -18, -18, -18, 3 1, 31,668 3 1, 31, 31, 31, 31, 31, 31, 31, -18, -18,669 670 -18, -18, -18, -18, -18, 3 1, 31, 31, 31, 31,671 3 1, 31, 31, 31, 31, 31, 31, 31, 31, 31,672 3 1, 31, 31, 31, 31, 31, 31, 31, 31, 31,673 3 1, -18, -18, -18, -18, 31, -18, 31, 31, 31,674 3 1, 31, 31, 31, 31, 31, 31, 31, 31, 31,675 3 1, 31, 31, 31, 31, 31, 31, 31, 31, 31,676 3 1, 31, 31, -18, -18, -18, -18, -18677 -18, -18, -18, -18, -18, -18, -18, -18, 30, 30, 678 30, 30, 30, 30, 30, 30, 30, 30, -18, -18, 679 680 -18, -18, -18, -18, -18, 30, 30, 30, 30, 30, 681 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 682 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 683 30, -18, -18, -18, -18, 30, -18, 30, 30, 30, 684 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 685 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 686 30, 30, 30, -18, -18, -18, -18, -18 677 687 }, 678 688 … … 735 745 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 736 746 737 -22, -22, -22, -22, -22, -22, -22, -22, 3 2, 32,738 3 2, 32, 32, 32, 32, 32, 32, 32, -22, -22,739 -22, -22, -22, -22, -22, 3 2, 32, 32, 32, 32,740 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,741 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,742 3 2, -22, -22, -22, -22, 32, -22, 32, 32, 32,743 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,744 3 2, 32, 32, 32, 32, 32, 32, 32, 32, 32,745 3 2, 32, 32, -22, -22, -22, -22, -22747 -22, -22, -22, -22, -22, -22, -22, -22, 31, 31, 748 31, 31, 31, 31, 31, 31, 31, 31, -22, -22, 749 -22, -22, -22, -22, -22, 31, 31, 31, 31, 31, 750 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 751 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 752 31, -22, -22, -22, -22, 31, -22, 31, 31, 31, 753 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 754 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 755 31, 31, 31, -22, -22, -22, -22, -22 746 756 }, 747 757 … … 749 759 3, -23, -23, -23, -23, -23, -23, -23, -23, -23, 750 760 761 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 762 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 763 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 764 -23, -23, -23, -23, -23, -23, -23, -23, 32, 32, 765 32, 32, 32, 32, 32, 32, 32, 32, -23, -23, 751 766 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 752 767 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, … … 754 769 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 755 770 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 756 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,757 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,758 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,759 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,760 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,761 771 762 772 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, … … 769 779 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 770 780 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 771 -24, -24, -24, -24, -24, -24, -24, -24, 33, 33, 772 33, 33, 33, 33, 33, 33, 33, 33, -24, -24, 781 -24, -24, -24, -24, -24, -24, 23, -24, 24, 24, 782 24, 24, 24, 24, 24, 24, 24, 24, -24, -24, 783 -24, -24, -24, -24, -24, -24, -24, -24, -24, 25, 784 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 785 773 786 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 774 787 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 775 776 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 777 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 778 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 788 -24, 25, -24, -24, -24, -24, -24, -24, -24, -24, 779 789 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 780 790 -24, -24, -24, -24, -24, -24, -24, -24 … … 786 796 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 787 797 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 788 -25, -25, -25, -25, -25, -25, 24, -25, 25, 25, 789 790 25, 25, 25, 25, 25, 25, 25, 25, -25, -25, 791 -25, -25, -25, -25, -25, -25, -25, -25, -25, 26, 798 -25, -25, -25, 33, -25, 33, -25, -25, 34, 34, 799 800 34, 34, 34, 34, 34, 34, 34, 34, -25, -25, 792 801 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 793 802 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 794 803 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 795 -25, 26, -25, -25, -25, -25, -25, -25, -25, -25, 804 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 805 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 796 806 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 797 807 -25, -25, -25, -25, -25, -25, -25, -25 … … 804 814 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 805 815 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 806 -26, -26, -26, 34, -26, 34, -26, -26, 35, 35,807 35, 35, 35, 35, 35, 35, 35, 35, -26, -26,816 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 817 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 808 818 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 809 819 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, … … 856 866 857 867 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 858 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,859 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,860 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,861 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,862 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,863 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,864 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,865 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,866 -29, -29, -29, -29, -29, -29, -29, -29868 -29, -29, -29, -29, -29, -29, -29, -29, 35, 35, 869 35, 35, 35, 35, 35, 35, 35, 35, -29, -29, 870 -29, -29, -29, -29, -29, 35, 35, 35, 35, 35, 871 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 872 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 873 35, -29, -29, -29, -29, 35, -29, 35, 35, 35, 874 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 875 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 876 35, 35, 35, -29, -29, -29, -29, -29 867 877 868 878 }, … … 873 883 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 874 884 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 875 -30, -30, -30, -30, -30, -30, -30, -30, 3 6, 36,876 3 6, 36, 36, 36, 36, 36, 36, 36, -30, -30,877 -30, -30, -30, -30, -30, 3 6, 36, 36, 36, 36,878 3 6, 36, 36, 36, 36, 36, 36, 36, 36, 36,879 3 6, 36, 36, 36, 36, 36, 36, 36, 36, 36,880 3 6, -30, -30, -30, -30, 36, -30, 36, 36, 36,881 882 3 6, 36, 36, 36, 36, 36, 36, 36, 36, 36,883 3 6, 36, 36, 36, 36, 36, 36, 36, 36, 36,884 3 6, 36, 36, -30, -30, -30, -30, -30885 -30, -30, -30, -30, -30, -30, -30, -30, 30, 30, 886 30, 30, 30, 30, 30, 30, 30, 30, -30, -30, 887 -30, -30, -30, -30, -30, 30, 30, 30, 30, 30, 888 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 889 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 890 30, -30, -30, -30, -30, 30, -30, 30, 30, 30, 891 892 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 893 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 894 30, 30, 30, -30, -30, -30, -30, -30 885 895 }, 886 896 … … 910 920 -32, -32, -32, -32, -32, -32, -32, -32, 32, 32, 911 921 32, 32, 32, 32, 32, 32, 32, 32, -32, -32, 912 -32, -32, -32, -32, -32, 32, 32, 32, 32, 32,913 32, 32, 32, 32, 32, 32, 32, 32, 32,32,914 32, 32, 32, 32, 32, 32, 32, 32, 32,32,915 32, -32, -32, -32, -32, 32, -32, 32, 32,32,916 32, 32, 32, 32, 32, 32, 32, 32, 32,32,917 32, 32, 32, 32, 32, 32, 32, 32, 32,32,918 32, 32,32, -32, -32, -32, -32, -32922 -32, -32, -32, -32, -32, -32, -32, -32, -32, 25, 923 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 924 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 925 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 926 -32, 25, -32, -32, -32, -32, -32, -32, -32, -32, 927 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 928 -32, -32, -32, -32, -32, -32, -32, -32 919 929 }, 920 930 … … 925 935 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 926 936 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 927 -33, -33, -33, -33, -33, -33, -33, -33, 33, 33, 928 33, 33, 33, 33, 33, 33, 33, 33, -33, -33, 929 -33, -33, -33, -33, -33, -33, -33, -33, -33, 26, 937 -33, -33, -33, -33, -33, -33, -33, -33, 34, 34, 938 34, 34, 34, 34, 34, 34, 34, 34, -33, -33, 930 939 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 931 940 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 932 941 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 933 -33, 26, -33, -33, -33, -33, -33, -33, -33, -33, 942 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 943 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 934 944 935 945 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, … … 942 952 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 943 953 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 944 -34, -34, -34, -34, -34, -34, -34, -34, 3 5, 35,945 3 5, 35, 35, 35, 35, 35, 35, 35, -34, -34,954 -34, -34, -34, -34, -34, -34, -34, -34, 34, 34, 955 34, 34, 34, 34, 34, 34, 34, 34, -34, -34, 946 956 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 947 957 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, … … 962 972 963 973 35, 35, 35, 35, 35, 35, 35, 35, -35, -35, 964 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 965 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 966 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 967 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 968 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 969 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 970 -35, -35, -35, -35, -35, -35, -35, -35 971 }, 972 973 { 974 3, -36, -36, -36, -36, -36, -36, -36, -36, -36, 975 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 976 977 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 978 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 979 -36, -36, -36, -36, -36, -36, -36, -36, 36, 36, 980 36, 36, 36, 36, 36, 36, 36, 36, -36, -36, 981 -36, -36, -36, -36, -36, 36, 36, 36, 36, 36, 982 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 983 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 984 36, -36, -36, -36, -36, 36, -36, 36, 36, 36, 985 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 986 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 987 988 36, 36, 36, -36, -36, -36, -36, -36 974 -35, -35, -35, -35, -35, 35, 35, 35, 35, 35, 975 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 976 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 977 35, -35, -35, -35, -35, 35, -35, 35, 35, 35, 978 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 979 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 980 35, 35, 35, -35, -35, -35, -35, -35 989 981 }, 990 982 … … 1006 998 (yy_c_buf_p) = yy_cp; 1007 999 1008 #define YY_NUM_RULES 201009 #define YY_END_OF_BUFFER 2 11000 #define YY_NUM_RULES 19 1001 #define YY_END_OF_BUFFER 20 1010 1002 /* This struct is not used in this scanner, 1011 1003 but its presence is necessary. */ … … 1015 1007 flex_int32_t yy_nxt; 1016 1008 }; 1017 static yyconst flex_int16_t yy_accept[3 7] =1009 static yyconst flex_int16_t yy_accept[36] = 1018 1010 { 0, 1019 0, 0, 2 1, 20, 1, 20, 17, 18, 8, 6,1020 7, 9, 2, 12, 20, 13, 20, 5, 10, 19,1021 1, 4, 16, 0, 2, 0, 14, 11, 15, 3,1022 5,4, 2, 0, 2, 31011 0, 0, 20, 19, 1, 19, 16, 17, 8, 6, 1012 7, 9, 2, 12, 19, 13, 19, 5, 10, 18, 1013 1, 4, 0, 2, 0, 14, 11, 15, 3, 5, 1014 4, 2, 0, 2, 3 1023 1015 } ; 1024 1016 … … 1026 1018 static char *yy_last_accepting_cpos; 1027 1019 1028 static yyconst yy_state_type yy_NUL_trans[3 7] =1020 static yyconst yy_state_type yy_NUL_trans[36] = 1029 1021 { 0, 1030 1022 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 1031 1023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032 1024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033 0, 0, 0, 0, 0 , 01025 0, 0, 0, 0, 0 1034 1026 } ; 1035 1027 … … 1061 1053 #include "yacc_parser.hpp" 1062 1054 1063 #line 10 64"lex_parser.cpp"1055 #line 1056 "lex_parser.cpp" 1064 1056 1065 1057 #define INITIAL 0 … … 1142 1134 /* Amount of stuff to slurp up with each read. */ 1143 1135 #ifndef YY_READ_BUF_SIZE 1136 #ifdef __ia64__ 1137 /* On IA-64, the buffer size is 16k, not 8k */ 1138 #define YY_READ_BUF_SIZE 16384 1139 #else 1144 1140 #define YY_READ_BUF_SIZE 8192 1141 #endif /* __ia64__ */ 1145 1142 #endif 1146 1143 … … 1227 1224 register int yy_act; 1228 1225 1229 #line 29 "lex_parser.lex"1230 1231 1232 #line 1233 "lex_parser.cpp"1233 1234 1226 if ( !(yy_init) ) 1235 1227 { … … 1257 1249 yy_load_buffer_state( ); 1258 1250 } 1251 1252 { 1253 #line 29 "lex_parser.lex" 1254 1255 1256 #line 1257 "lex_parser.cpp" 1259 1257 1260 1258 while ( 1 ) /* loops until end-of-file is reached */ … … 1390 1388 case 16: 1391 1389 YY_RULE_SETUP 1392 #line 6 7"lex_parser.lex"1393 return NE;1390 #line 68 "lex_parser.lex" 1391 return LEFT_PARENTHESIS; 1394 1392 YY_BREAK 1395 1393 case 17: 1396 1394 YY_RULE_SETUP 1397 1395 #line 69 "lex_parser.lex" 1398 return LEFT_PARENTHESIS;1396 return RIGHT_PARENTHESIS; 1399 1397 YY_BREAK 1400 1398 case 18: 1401 1399 YY_RULE_SETUP 1402 #line 7 0"lex_parser.lex"1403 return RIGHT_PARENTHESIS;1400 #line 71 "lex_parser.lex" 1401 return END; 1404 1402 YY_BREAK 1405 1403 case 19: 1406 1404 YY_RULE_SETUP 1407 1405 #line 72 "lex_parser.lex" 1408 return END;1409 YY_BREAK1410 case 20:1411 YY_RULE_SETUP1412 #line 73 "lex_parser.lex"1413 1406 ECHO; 1414 1407 YY_BREAK 1415 #line 14 16"lex_parser.cpp"1408 #line 1409 "lex_parser.cpp" 1416 1409 case YY_STATE_EOF(INITIAL): 1417 1410 yyterminate(); … … 1544 1537 } /* end of action switch */ 1545 1538 } /* end of scanning one token */ 1539 } /* end of user's declarations */ 1546 1540 } /* end of yylex */ 1547 1541 … … 2402 2396 #define YYTABLES_NAME "yytables" 2403 2397 2404 #line 7 3"lex_parser.lex"2398 #line 71 "lex_parser.lex" -
XIOS/dev/branch_yushan/src/parse_expr/lex_parser.lex
r1019 r1037 65 65 "<=" return LE; 66 66 ">=" return GE; 67 "/=" return NE;68 67 69 68 "(" return LEFT_PARENTHESIS; -
XIOS/dev/branch_yushan/src/parse_expr/operator_expr.hpp
r1019 r1037 43 43 opScalarScalar[string("le")] = le_ss; 44 44 opScalarScalar[string("ge")] = ge_ss; 45 opScalarScalar[string("ne")] = ne_ss;46 45 47 46 opField[string("neg")] = neg_f; … … 64 63 opFieldField[string("le")] = le_ff; 65 64 opFieldField[string("ge")] = ge_ff; 66 opFieldField[string("ne")] = ne_ff;67 65 68 66 opFieldScalar[string("add")] = add_fs; … … 76 74 opFieldScalar[string("le")] = le_fs; 77 75 opFieldScalar[string("ge")] = ge_fs; 78 opFieldScalar[string("ne")] = ne_fs;79 76 80 77 opScalarField[string("add")] = add_sf; … … 87 84 opScalarField[string("le")] = le_sf; 88 85 opScalarField[string("ge")] = ge_sf; 89 opScalarField[string("ne")] = ne_sf;90 86 } 91 87 … … 164 160 static inline double le_ss(double x, double y) { return x <= y; } 165 161 static inline double ge_ss(double x, double y) { return x >= y; } 166 static inline double ne_ss(double x, double y) { return x != y; }167 162 168 163 static inline CArray<double,1> neg_f(const CArray<double,1>& x) { return Array<double,1>(-x); } … … 185 180 static inline CArray<double,1> le_ff(const CArray<double,1>& x, const CArray<double,1>& y) { return Array<double,1>(x <= y); } 186 181 static inline CArray<double,1> ge_ff(const CArray<double,1>& x, const CArray<double,1>& y) { return Array<double,1>(x >= y); } 187 static inline CArray<double,1> ne_ff(const CArray<double,1>& x, const CArray<double,1>& y) { return Array<double,1>(x != y); }188 182 189 183 static inline CArray<double,1> add_fs(const CArray<double,1>& x, double y) { return Array<double,1>(x + y); } … … 197 191 static inline CArray<double,1> le_fs(const CArray<double,1>& x, double y) { return Array<double,1>(x <= y); } 198 192 static inline CArray<double,1> ge_fs(const CArray<double,1>& x, double y) { return Array<double,1>(x >= y); } 199 static inline CArray<double,1> ne_fs(const CArray<double,1>& x, double y) { return Array<double,1>(x != y); }200 193 201 194 static inline CArray<double,1> add_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x + y); } … … 208 201 static inline CArray<double,1> le_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x <= y); } 209 202 static inline CArray<double,1> ge_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x >= y); } 210 static inline CArray<double,1> ne_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x != y); }211 203 }; 212 204 -
XIOS/dev/branch_yushan/src/parse_expr/scalar_expr_node.cpp
r1020 r1037 23 23 double CScalarVarExprNode::reduce() const 24 24 { 25 // $missing_value will be replaced with NaN 26 if (varId == "missing_value") 27 { 28 return std::numeric_limits<double>::quiet_NaN(); 29 } 30 else 31 { 32 if (!CVariable::has(varId)) 33 ERROR("double CScalarVarExprNode::reduce() const", << "The variable " << varId << " does not exist."); 25 if (!CVariable::has(varId)) 26 ERROR("double CScalarVarExprNode::reduce() const", << "The variable " << varId << " does not exist."); 34 27 35 return CVariable::get(varId)->getData<double>(); 36 } 28 return CVariable::get(varId)->getData<double>(); 37 29 } 38 30 -
XIOS/dev/branch_yushan/src/parse_expr/yacc_parser.cpp
r1019 r1037 1 /* A Bison parser, made by GNU Bison 2.7. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2012Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 2.7"47 #define YYBISON_VERSION "3.0.2" 48 48 49 49 /* Skeleton name. */ … … 63 63 64 64 /* Copy the first part of user declarations. */ 65 /* Line 371 of yacc.c */ 66 #line 1 "yacc_parser.yacc" 65 #line 1 "yacc_parser.yacc" /* yacc.c:339 */ 67 66 68 67 #include "filter_expr_node.hpp" … … 97 96 } 98 97 99 /* Line 371 of yacc.c */ 100 #line 101 "yacc_parser.cpp" 101 102 # ifndef YY_NULL 98 #line 99 "yacc_parser.cpp" /* yacc.c:339 */ 99 100 # ifndef YY_NULLPTR 103 101 # if defined __cplusplus && 201103L <= __cplusplus 104 # define YY_NULL nullptr102 # define YY_NULLPTR nullptr 105 103 # else 106 # define YY_NULL 0104 # define YY_NULLPTR 0 107 105 # endif 108 106 # endif … … 120 118 #ifndef YY_YY_YACC_PARSER_HPP_INCLUDED 121 119 # define YY_YY_YACC_PARSER_HPP_INCLUDED 122 /* Enabling traces. */120 /* Debug traces. */ 123 121 #ifndef YYDEBUG 124 122 # define YYDEBUG 0 … … 128 126 #endif 129 127 130 /* Token s. */128 /* Token type. */ 131 129 #ifndef YYTOKENTYPE 132 130 # define YYTOKENTYPE 133 /* Put the tokens into the symbol table, so that GDB and other debuggers 134 know about them. */ 135 enum yytokentype { 136 NUMBER = 258, 137 VAR = 259, 138 ID = 260, 139 AVERAGE = 261, 140 PLUS = 262, 141 MINUS = 263, 142 TIMES = 264, 143 DIVIDE = 265, 144 POWER = 266, 145 EQ = 267, 146 LT = 268, 147 GT = 269, 148 LE = 270, 149 GE = 271, 150 NE = 272, 151 LEFT_PARENTHESIS = 273, 152 RIGHT_PARENTHESIS = 274, 153 END = 275, 154 NEG = 276 155 }; 156 #endif 157 158 131 enum yytokentype 132 { 133 NUMBER = 258, 134 VAR = 259, 135 ID = 260, 136 AVERAGE = 261, 137 PLUS = 262, 138 MINUS = 263, 139 TIMES = 264, 140 DIVIDE = 265, 141 POWER = 266, 142 EQ = 267, 143 LT = 268, 144 GT = 269, 145 LE = 270, 146 GE = 271, 147 LEFT_PARENTHESIS = 272, 148 RIGHT_PARENTHESIS = 273, 149 END = 274, 150 NEG = 275 151 }; 152 #endif 153 154 /* Value type. */ 159 155 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 160 typedef union YYSTYPE 161 { 162 /* Line 387 of yacc.c */ 163 #line 35 "yacc_parser.yacc" 156 typedef union YYSTYPE YYSTYPE; 157 union YYSTYPE 158 { 159 #line 35 "yacc_parser.yacc" /* yacc.c:355 */ 164 160 165 161 std::string* str; /* symbol table index */ … … 167 163 xios::IFilterExprNode* filterNode; 168 164 169 170 /* Line 387 of yacc.c */ 171 #line 172 "yacc_parser.cpp" 172 } YYSTYPE; 165 #line 166 "yacc_parser.cpp" /* yacc.c:355 */ 166 }; 173 167 # define YYSTYPE_IS_TRIVIAL 1 174 # define yystype YYSTYPE /* obsolescent; will be withdrawn */175 168 # define YYSTYPE_IS_DECLARED 1 176 169 #endif 177 170 171 178 172 extern YYSTYPE yylval; 179 173 180 #ifdef YYPARSE_PARAM181 #if defined __STDC__ || defined __cplusplus182 int yyparse (void *YYPARSE_PARAM);183 #else184 int yyparse ();185 #endif186 #else /* ! YYPARSE_PARAM */187 #if defined __STDC__ || defined __cplusplus188 174 int yyparse (void); 189 #else190 int yyparse ();191 #endif192 #endif /* ! YYPARSE_PARAM */193 175 194 176 #endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED */ … … 196 178 /* Copy the second part of user declarations. */ 197 179 198 /* Line 390 of yacc.c */ 199 #line 200 "yacc_parser.cpp" 180 #line 181 "yacc_parser.cpp" /* yacc.c:358 */ 200 181 201 182 #ifdef short … … 211 192 #ifdef YYTYPE_INT8 212 193 typedef YYTYPE_INT8 yytype_int8; 213 #elif (defined __STDC__ || defined __C99__FUNC__ \ 214 || defined __cplusplus || defined _MSC_VER) 194 #else 215 195 typedef signed char yytype_int8; 216 #else217 typedef short int yytype_int8;218 196 #endif 219 197 … … 235 213 # elif defined size_t 236 214 # define YYSIZE_T size_t 237 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 238 || defined __cplusplus || defined _MSC_VER) 215 # elif ! defined YYSIZE_T 239 216 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 240 217 # define YYSIZE_T size_t … … 258 235 #endif 259 236 237 #ifndef YY_ATTRIBUTE 238 # if (defined __GNUC__ \ 239 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 240 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 241 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 242 # else 243 # define YY_ATTRIBUTE(Spec) /* empty */ 244 # endif 245 #endif 246 247 #ifndef YY_ATTRIBUTE_PURE 248 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 249 #endif 250 251 #ifndef YY_ATTRIBUTE_UNUSED 252 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 253 #endif 254 255 #if !defined _Noreturn \ 256 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 257 # if defined _MSC_VER && 1200 <= _MSC_VER 258 # define _Noreturn __declspec (noreturn) 259 # else 260 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 261 # endif 262 #endif 263 260 264 /* Suppress unused-variable warnings by "using" E. */ 261 265 #if ! defined lint || defined __GNUC__ … … 265 269 #endif 266 270 267 /* Identity function, used to suppress warnings about constant conditions. */ 268 #ifndef lint 269 # define YYID(N) (N) 271 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 272 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 273 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 274 _Pragma ("GCC diagnostic push") \ 275 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 276 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 277 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 278 _Pragma ("GCC diagnostic pop") 270 279 #else 271 #if (defined __STDC__ || defined __C99__FUNC__ \ 272 || defined __cplusplus || defined _MSC_VER) 273 static int 274 YYID (int yyi) 275 #else 276 static int 277 YYID (yyi) 278 int yyi; 279 #endif 280 { 281 return yyi; 282 } 283 #endif 280 # define YY_INITIAL_VALUE(Value) Value 281 #endif 282 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 283 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 284 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 285 #endif 286 #ifndef YY_INITIAL_VALUE 287 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 288 #endif 289 284 290 285 291 #if ! defined yyoverflow || YYERROR_VERBOSE … … 300 306 # else 301 307 # define YYSTACK_ALLOC alloca 302 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 303 || defined __cplusplus || defined _MSC_VER) 308 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 304 309 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 305 310 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ … … 313 318 314 319 # ifdef YYSTACK_ALLOC 315 /* Pacify GCC's `empty if-body' warning. */316 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))320 /* Pacify GCC's 'empty if-body' warning. */ 321 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 317 322 # ifndef YYSTACK_ALLOC_MAXIMUM 318 323 /* The OS might guarantee only one guard page at the bottom of the stack, … … 330 335 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 331 336 && ! ((defined YYMALLOC || defined malloc) \ 332 337 && (defined YYFREE || defined free))) 333 338 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 334 339 # ifndef EXIT_SUCCESS … … 338 343 # ifndef YYMALLOC 339 344 # define YYMALLOC malloc 340 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 341 || defined __cplusplus || defined _MSC_VER) 345 # if ! defined malloc && ! defined EXIT_SUCCESS 342 346 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 343 347 # endif … … 345 349 # ifndef YYFREE 346 350 # define YYFREE free 347 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 348 || defined __cplusplus || defined _MSC_VER) 351 # if ! defined free && ! defined EXIT_SUCCESS 349 352 void free (void *); /* INFRINGES ON USER NAME SPACE */ 350 353 # endif … … 356 359 #if (! defined yyoverflow \ 357 360 && (! defined __cplusplus \ 358 361 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 359 362 360 363 /* A type that is properly aligned for any stack member. */ … … 381 384 stack. Advance YYPTR to a properly aligned location for the next 382 385 stack. */ 383 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 384 do 385 { 386 YYSIZE_T yynewbytes;\387 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\388 Stack = &yyptr->Stack_alloc;\389 390 yyptr += yynewbytes / sizeof (*yyptr);\391 } 392 while ( YYID (0))386 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 387 do \ 388 { \ 389 YYSIZE_T yynewbytes; \ 390 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 391 Stack = &yyptr->Stack_alloc; \ 392 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 393 yyptr += yynewbytes / sizeof (*yyptr); \ 394 } \ 395 while (0) 393 396 394 397 #endif … … 409 412 (Dst)[yyi] = (Src)[yyi]; \ 410 413 } \ 411 while ( YYID (0))414 while (0) 412 415 # endif 413 416 # endif … … 417 420 #define YYFINAL 16 418 421 /* YYLAST -- Last index in YYTABLE. */ 419 #define YYLAST 2 29422 #define YYLAST 204 420 423 421 424 /* YYNTOKENS -- Number of terminals. */ 422 #define YYNTOKENS 2 2425 #define YYNTOKENS 21 423 426 /* YYNNTS -- Number of nonterminals. */ 424 427 #define YYNNTS 4 425 428 /* YYNRULES -- Number of rules. */ 426 #define YYNRULES 56 427 /* YYNRULES -- Number of states. */ 428 #define YYNSTATES 116 429 430 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 429 #define YYNRULES 52 430 /* YYNSTATES -- Number of states. */ 431 #define YYNSTATES 108 432 433 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 434 by yylex, with out-of-bounds checking. */ 431 435 #define YYUNDEFTOK 2 432 #define YYMAXUTOK 27 6433 434 #define YYTRANSLATE(YYX) 436 #define YYMAXUTOK 275 437 438 #define YYTRANSLATE(YYX) \ 435 439 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 436 440 437 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 441 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 442 as returned by yylex, without out-of-bounds checking. */ 438 443 static const yytype_uint8 yytranslate[] = 439 444 { … … 465 470 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 466 471 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 467 15, 16, 17, 18, 19, 20 , 21472 15, 16, 17, 18, 19, 20 468 473 }; 469 474 470 475 #if YYDEBUG 471 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 472 YYRHS. */ 473 static const yytype_uint8 yyprhs[] = 474 { 475 0, 0, 3, 5, 8, 10, 12, 16, 20, 24, 476 28, 31, 35, 39, 43, 47, 51, 55, 59, 63, 477 68, 70, 72, 76, 80, 84, 88, 91, 95, 99, 478 103, 107, 111, 115, 119, 123, 127, 131, 135, 139, 479 143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 480 183, 187, 191, 195, 199, 203, 207 481 }; 482 483 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 484 static const yytype_int8 yyrhs[] = 485 { 486 23, 0, -1, 20, -1, 25, 20, -1, 3, -1, 487 4, -1, 24, 7, 24, -1, 24, 8, 24, -1, 488 24, 9, 24, -1, 24, 10, 24, -1, 8, 24, 489 -1, 24, 11, 24, -1, 24, 12, 24, -1, 24, 490 13, 24, -1, 24, 14, 24, -1, 24, 15, 24, 491 -1, 24, 16, 24, -1, 24, 17, 24, -1, 18, 492 24, 19, -1, 5, 18, 24, 19, -1, 5, -1, 493 6, -1, 25, 7, 25, -1, 25, 8, 25, -1, 494 25, 9, 25, -1, 25, 10, 25, -1, 8, 25, 495 -1, 25, 11, 25, -1, 25, 12, 25, -1, 25, 496 13, 25, -1, 25, 14, 25, -1, 25, 15, 25, 497 -1, 25, 16, 25, -1, 25, 17, 25, -1, 18, 498 25, 19, -1, 25, 7, 24, -1, 24, 7, 25, 499 -1, 25, 8, 24, -1, 24, 8, 25, -1, 25, 500 9, 24, -1, 24, 9, 25, -1, 25, 10, 24, 501 -1, 24, 10, 25, -1, 25, 11, 24, -1, 25, 502 12, 24, -1, 24, 12, 25, -1, 25, 13, 24, 503 -1, 24, 13, 25, -1, 25, 14, 24, -1, 24, 504 14, 25, -1, 25, 15, 24, -1, 24, 15, 25, 505 -1, 25, 16, 24, -1, 24, 16, 25, -1, 25, 506 17, 24, -1, 24, 17, 25, -1, 5, 18, 25, 507 19, -1 508 }; 509 510 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 476 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 511 477 static const yytype_uint8 yyrline[] = 512 478 { 513 479 0, 61, 61, 62, 66, 67, 68, 69, 70, 71, 514 72, 73, 74, 75, 76, 77, 78, 79, 80, 8 1,480 72, 73, 74, 75, 76, 77, 78, 79, 80, 84, 515 481 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 516 482 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 517 483 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 518 115, 116, 117 , 118, 119, 120, 121484 115, 116, 117 519 485 }; 520 486 #endif … … 526 492 { 527 493 "$end", "error", "$undefined", "NUMBER", "VAR", "ID", "AVERAGE", "PLUS", 528 "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", "NE",494 "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", 529 495 "LEFT_PARENTHESIS", "RIGHT_PARENTHESIS", "END", "NEG", "$accept", "Line", 530 "Expression", "Field_expr", YY_NULL 496 "Expression", "Field_expr", YY_NULLPTR 531 497 }; 532 498 #endif 533 499 534 500 # ifdef YYPRINT 535 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to536 token YYLEX-NUM. */501 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 502 (internal) symbol number NUM (which must be that of a token). */ 537 503 static const yytype_uint16 yytoknum[] = 538 504 { 539 505 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 540 506 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 541 275 , 276507 275 542 508 }; 543 509 # endif 544 510 545 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 511 #define YYPACT_NINF -13 512 513 #define yypact_value_is_default(Yystate) \ 514 (!!((Yystate) == (-13))) 515 516 #define YYTABLE_NINF -1 517 518 #define yytable_value_is_error(Yytable_value) \ 519 0 520 521 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 522 STATE-NUM. */ 523 static const yytype_int16 yypact[] = 524 { 525 90, -13, -13, -12, -13, 35, 35, -13, 44, 188, 526 103, 35, 24, 34, 116, 128, -13, 35, 35, 35, 527 35, 65, 35, 35, 35, 35, 35, 35, 35, 35, 528 35, 35, 35, 35, 35, 35, 35, -13, 140, 152, 529 -13, -13, -7, 23, -7, 23, 24, 34, 24, 34, 530 54, 65, 65, 24, 0, 67, 0, 67, 0, 67, 531 0, 67, 0, 67, -7, 23, -7, 23, 24, 34, 532 24, 34, 24, 34, 0, 67, 0, 67, 0, 67, 533 0, 67, 0, 67, -13, -13, 65, 24, 164, 65, 534 65, 65, 65, 65, 65, 65, 65, 65, 176, 95, 535 95, 24, 24, 92, 92, 92, 92, 92 536 }; 537 538 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 539 Performed when YYTABLE does not specify something else to do. Zero 540 means the default is an error. */ 541 static const yytype_uint8 yydefact[] = 542 { 543 0, 4, 5, 19, 20, 0, 0, 2, 0, 0, 544 0, 0, 10, 25, 0, 0, 1, 0, 0, 0, 545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 547 17, 32, 6, 34, 7, 36, 8, 38, 9, 40, 548 0, 0, 0, 11, 12, 43, 13, 45, 14, 47, 549 15, 49, 16, 51, 33, 21, 35, 22, 37, 23, 550 39, 24, 41, 26, 42, 27, 44, 28, 46, 29, 551 48, 30, 50, 31, 18, 52, 0, 10, 0, 0, 552 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 553 7, 8, 9, 12, 13, 14, 15, 16 554 }; 555 556 /* YYPGOTO[NTERM-NUM]. */ 557 static const yytype_int8 yypgoto[] = 558 { 559 -13, -13, -5, 31 560 }; 561 562 /* YYDEFGOTO[NTERM-NUM]. */ 563 static const yytype_int8 yydefgoto[] = 564 { 565 -1, 8, 9, 10 566 }; 567 568 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 569 positive, shift that token. If negative, reduce the rule whose 570 number is the opposite. If YYTABLE_NINF, syntax error. */ 571 static const yytype_uint8 yytable[] = 572 { 573 12, 14, 19, 20, 21, 11, 38, 17, 18, 19, 574 20, 21, 42, 44, 46, 48, 53, 54, 56, 58, 575 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 576 80, 82, 29, 30, 31, 21, 13, 15, 1, 2, 577 3, 4, 39, 5, 16, 31, 87, 88, 43, 45, 578 47, 49, 6, 55, 57, 59, 61, 63, 65, 67, 579 69, 71, 73, 75, 77, 79, 81, 83, 1, 2, 580 50, 86, 0, 51, 27, 28, 29, 30, 31, 0, 581 0, 98, 52, 0, 99, 100, 101, 102, 103, 104, 582 105, 106, 107, 1, 2, 3, 4, 0, 5, 89, 583 90, 91, 92, 21, 91, 92, 21, 6, 0, 7, 584 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 585 0, 0, 37, 17, 18, 19, 20, 21, 22, 23, 586 24, 25, 26, 0, 40, 27, 28, 29, 30, 31, 587 32, 33, 34, 35, 36, 0, 41, 17, 18, 19, 588 20, 21, 22, 23, 24, 25, 26, 0, 84, 27, 589 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 590 85, 89, 90, 91, 92, 21, 93, 94, 95, 96, 591 97, 0, 40, 89, 90, 91, 92, 21, 93, 94, 592 95, 96, 97, 0, 84, 17, 18, 19, 20, 21, 593 22, 23, 24, 25, 26 594 }; 595 596 static const yytype_int8 yycheck[] = 597 { 598 5, 6, 9, 10, 11, 17, 11, 7, 8, 9, 599 10, 11, 17, 18, 19, 20, 21, 22, 23, 24, 600 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 601 35, 36, 9, 10, 11, 11, 5, 6, 3, 4, 602 5, 6, 11, 8, 0, 11, 51, 52, 17, 18, 603 19, 20, 17, 22, 23, 24, 25, 26, 27, 28, 604 29, 30, 31, 32, 33, 34, 35, 36, 3, 4, 605 5, 17, -1, 8, 7, 8, 9, 10, 11, -1, 606 -1, 86, 17, -1, 89, 90, 91, 92, 93, 94, 607 95, 96, 97, 3, 4, 5, 6, -1, 8, 7, 608 8, 9, 10, 11, 9, 10, 11, 17, -1, 19, 609 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 610 -1, -1, 19, 7, 8, 9, 10, 11, 12, 13, 611 14, 15, 16, -1, 18, 7, 8, 9, 10, 11, 612 12, 13, 14, 15, 16, -1, 18, 7, 8, 9, 613 10, 11, 12, 13, 14, 15, 16, -1, 18, 7, 614 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 615 18, 7, 8, 9, 10, 11, 12, 13, 14, 15, 616 16, -1, 18, 7, 8, 9, 10, 11, 12, 13, 617 14, 15, 16, -1, 18, 7, 8, 9, 10, 11, 618 12, 13, 14, 15, 16 619 }; 620 621 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 622 symbol of state STATE-NUM. */ 623 static const yytype_uint8 yystos[] = 624 { 625 0, 3, 4, 5, 6, 8, 17, 19, 22, 23, 626 24, 17, 23, 24, 23, 24, 0, 7, 8, 9, 627 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 628 10, 11, 12, 13, 14, 15, 16, 19, 23, 24, 629 18, 18, 23, 24, 23, 24, 23, 24, 23, 24, 630 5, 8, 17, 23, 23, 24, 23, 24, 23, 24, 631 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 632 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 633 23, 24, 23, 24, 18, 18, 17, 23, 23, 7, 634 8, 9, 10, 12, 13, 14, 15, 16, 23, 23, 635 23, 23, 23, 23, 23, 23, 23, 23 636 }; 637 638 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 546 639 static const yytype_uint8 yyr1[] = 547 640 { 548 0, 22, 23, 23, 24, 24, 24, 24, 24, 24, 641 0, 21, 22, 22, 23, 23, 23, 23, 23, 23, 642 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 549 643 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 550 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 551 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 552 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 553 25, 25, 25, 25, 25, 25, 25 644 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 645 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 646 24, 24, 24 554 647 }; 555 648 556 /* YYR2[YYN] -- Number of symbols composingright hand side of rule YYN. */649 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 557 650 static const yytype_uint8 yyr2[] = 558 651 { 559 652 0, 2, 1, 2, 1, 1, 3, 3, 3, 3, 560 2, 3, 3, 3, 3, 3, 3, 3, 3, 4,561 1, 1, 3, 3, 3, 3, 2, 3, 3, 3,653 2, 3, 3, 3, 3, 3, 3, 3, 4, 1, 654 1, 3, 3, 3, 3, 2, 3, 3, 3, 3, 562 655 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 563 656 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 564 3, 3, 3, 3, 3, 3,4657 3, 3, 4 565 658 }; 566 659 567 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 568 Performed when YYTABLE doesn't specify something else to do. Zero 569 means the default is an error. */ 570 static const yytype_uint8 yydefact[] = 571 { 572 0, 4, 5, 20, 21, 0, 0, 2, 0, 0, 573 0, 0, 10, 26, 0, 0, 1, 0, 0, 0, 574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 576 0, 0, 18, 34, 6, 36, 7, 38, 8, 40, 577 9, 42, 0, 0, 0, 11, 12, 45, 13, 47, 578 14, 49, 15, 51, 16, 53, 17, 55, 35, 22, 579 37, 23, 39, 24, 41, 25, 43, 27, 44, 28, 580 46, 29, 48, 30, 50, 31, 52, 32, 54, 33, 581 19, 56, 0, 10, 0, 0, 0, 0, 0, 0, 582 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 583 12, 13, 14, 15, 16, 17 584 }; 585 586 /* YYDEFGOTO[NTERM-NUM]. */ 587 static const yytype_int8 yydefgoto[] = 588 { 589 -1, 8, 9, 10 590 }; 591 592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 593 STATE-NUM. */ 594 #define YYPACT_NINF -14 595 static const yytype_int16 yypact[] = 596 { 597 97, -14, -14, -13, -14, 70, 70, -14, 37, 207, 598 115, 70, 32, 34, 129, 142, -14, 70, 70, 70, 599 70, 103, 70, 70, 70, 70, 70, 70, 70, 70, 600 70, 70, 70, 70, 70, 70, 70, 70, 70, -14, 601 155, 168, -14, -14, -7, 25, -7, 25, 32, 34, 602 32, 34, 28, 103, 103, 32, 0, 72, 0, 72, 603 0, 72, 0, 72, 0, 72, 0, 72, -7, 25, 604 -7, 25, 32, 34, 32, 34, 32, 34, 0, 72, 605 0, 72, 0, 72, 0, 72, 0, 72, 0, 72, 606 -14, -14, 103, 32, 181, 103, 103, 103, 103, 103, 607 103, 103, 103, 103, 103, 194, 31, 31, 32, 32, 608 218, 218, 218, 218, 218, 218 609 }; 610 611 /* YYPGOTO[NTERM-NUM]. */ 612 static const yytype_int8 yypgoto[] = 613 { 614 -14, -14, -5, 33 615 }; 616 617 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 618 positive, shift that token. If negative, reduce the rule which 619 number is the opposite. If YYTABLE_NINF, syntax error. */ 620 #define YYTABLE_NINF -1 621 static const yytype_uint8 yytable[] = 622 { 623 12, 14, 19, 20, 21, 11, 40, 17, 18, 19, 624 20, 21, 44, 46, 48, 50, 55, 56, 58, 60, 625 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 626 82, 84, 86, 88, 30, 31, 32, 16, 13, 15, 627 97, 98, 21, 21, 41, 32, 92, 0, 93, 94, 628 45, 47, 49, 51, 0, 57, 59, 61, 63, 65, 629 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 630 87, 89, 0, 1, 2, 3, 4, 0, 5, 28, 631 29, 30, 31, 32, 0, 0, 0, 105, 6, 0, 632 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 633 1, 2, 3, 4, 0, 5, 1, 2, 52, 0, 634 0, 53, 0, 0, 0, 6, 0, 7, 0, 0, 635 0, 54, 28, 29, 30, 31, 32, 33, 34, 35, 636 36, 37, 38, 0, 0, 39, 17, 18, 19, 20, 637 21, 22, 23, 24, 25, 26, 27, 0, 42, 28, 638 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 639 0, 43, 17, 18, 19, 20, 21, 22, 23, 24, 640 25, 26, 27, 0, 90, 28, 29, 30, 31, 32, 641 33, 34, 35, 36, 37, 38, 0, 91, 95, 96, 642 97, 98, 21, 99, 100, 101, 102, 103, 104, 0, 643 42, 95, 96, 97, 98, 21, 99, 100, 101, 102, 644 103, 104, 0, 90, 17, 18, 19, 20, 21, 22, 645 23, 24, 25, 26, 27, 95, 96, 97, 98, 21 646 }; 647 648 #define yypact_value_is_default(Yystate) \ 649 (!!((Yystate) == (-14))) 650 651 #define yytable_value_is_error(Yytable_value) \ 652 YYID (0) 653 654 static const yytype_int8 yycheck[] = 655 { 656 5, 6, 9, 10, 11, 18, 11, 7, 8, 9, 657 10, 11, 17, 18, 19, 20, 21, 22, 23, 24, 658 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 659 35, 36, 37, 38, 9, 10, 11, 0, 5, 6, 660 9, 10, 11, 11, 11, 11, 18, -1, 53, 54, 661 17, 18, 19, 20, -1, 22, 23, 24, 25, 26, 662 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 663 37, 38, -1, 3, 4, 5, 6, -1, 8, 7, 664 8, 9, 10, 11, -1, -1, -1, 92, 18, -1, 665 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 666 3, 4, 5, 6, -1, 8, 3, 4, 5, -1, 667 -1, 8, -1, -1, -1, 18, -1, 20, -1, -1, 668 -1, 18, 7, 8, 9, 10, 11, 12, 13, 14, 669 15, 16, 17, -1, -1, 20, 7, 8, 9, 10, 670 11, 12, 13, 14, 15, 16, 17, -1, 19, 7, 671 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 672 -1, 19, 7, 8, 9, 10, 11, 12, 13, 14, 673 15, 16, 17, -1, 19, 7, 8, 9, 10, 11, 674 12, 13, 14, 15, 16, 17, -1, 19, 7, 8, 675 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 676 19, 7, 8, 9, 10, 11, 12, 13, 14, 15, 677 16, 17, -1, 19, 7, 8, 9, 10, 11, 12, 678 13, 14, 15, 16, 17, 7, 8, 9, 10, 11 679 }; 680 681 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 682 symbol of state STATE-NUM. */ 683 static const yytype_uint8 yystos[] = 684 { 685 0, 3, 4, 5, 6, 8, 18, 20, 23, 24, 686 25, 18, 24, 25, 24, 25, 0, 7, 8, 9, 687 10, 11, 12, 13, 14, 15, 16, 17, 7, 8, 688 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 689 24, 25, 19, 19, 24, 25, 24, 25, 24, 25, 690 24, 25, 5, 8, 18, 24, 24, 25, 24, 25, 691 24, 25, 24, 25, 24, 25, 24, 25, 24, 25, 692 24, 25, 24, 25, 24, 25, 24, 25, 24, 25, 693 24, 25, 24, 25, 24, 25, 24, 25, 24, 25, 694 19, 19, 18, 24, 24, 7, 8, 9, 10, 12, 695 13, 14, 15, 16, 17, 24, 24, 24, 24, 24, 696 24, 24, 24, 24, 24, 24 697 }; 698 699 #define yyerrok (yyerrstatus = 0) 700 #define yyclearin (yychar = YYEMPTY) 701 #define YYEMPTY (-2) 702 #define YYEOF 0 703 704 #define YYACCEPT goto yyacceptlab 705 #define YYABORT goto yyabortlab 706 #define YYERROR goto yyerrorlab 707 708 709 /* Like YYERROR except do call yyerror. This remains here temporarily 710 to ease the transition to the new meaning of YYERROR, for GCC. 711 Once GCC version 2 has supplanted version 1, this can go. However, 712 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 713 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 714 discussed. */ 715 716 #define YYFAIL goto yyerrlab 717 #if defined YYFAIL 718 /* This is here to suppress warnings from the GCC cpp's 719 -Wunused-macros. Normally we don't worry about that warning, but 720 some users do, and we want to make it easy for users to remove 721 YYFAIL uses, which will produce warnings from Bison 2.5. */ 722 #endif 660 661 #define yyerrok (yyerrstatus = 0) 662 #define yyclearin (yychar = YYEMPTY) 663 #define YYEMPTY (-2) 664 #define YYEOF 0 665 666 #define YYACCEPT goto yyacceptlab 667 #define YYABORT goto yyabortlab 668 #define YYERROR goto yyerrorlab 669 723 670 724 671 #define YYRECOVERING() (!!yyerrstatus) … … 737 684 { \ 738 685 yyerror (YY_("syntax error: cannot back up")); \ 739 YYERROR; 740 } 741 while ( YYID (0))686 YYERROR; \ 687 } \ 688 while (0) 742 689 743 690 /* Error token number */ 744 #define YYTERROR 1 745 #define YYERRCODE 256 746 747 748 /* This macro is provided for backward compatibility. */ 749 #ifndef YY_LOCATION_PRINT 750 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 751 #endif 752 753 754 /* YYLEX -- calling `yylex' with the right arguments. */ 755 #ifdef YYLEX_PARAM 756 # define YYLEX yylex (YYLEX_PARAM) 757 #else 758 # define YYLEX yylex () 759 #endif 691 #define YYTERROR 1 692 #define YYERRCODE 256 693 694 760 695 761 696 /* Enable debugging if requested. */ … … 767 702 # endif 768 703 769 # define YYDPRINTF(Args) \ 770 do { \ 771 if (yydebug) \ 772 YYFPRINTF Args; \ 773 } while (YYID (0)) 774 775 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 776 do { \ 777 if (yydebug) \ 778 { \ 779 YYFPRINTF (stderr, "%s ", Title); \ 780 yy_symbol_print (stderr, \ 781 Type, Value); \ 782 YYFPRINTF (stderr, "\n"); \ 783 } \ 784 } while (YYID (0)) 785 786 787 /*--------------------------------. 788 | Print this symbol on YYOUTPUT. | 789 `--------------------------------*/ 790 791 /*ARGSUSED*/ 792 #if (defined __STDC__ || defined __C99__FUNC__ \ 793 || defined __cplusplus || defined _MSC_VER) 704 # define YYDPRINTF(Args) \ 705 do { \ 706 if (yydebug) \ 707 YYFPRINTF Args; \ 708 } while (0) 709 710 /* This macro is provided for backward compatibility. */ 711 #ifndef YY_LOCATION_PRINT 712 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 713 #endif 714 715 716 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 717 do { \ 718 if (yydebug) \ 719 { \ 720 YYFPRINTF (stderr, "%s ", Title); \ 721 yy_symbol_print (stderr, \ 722 Type, Value); \ 723 YYFPRINTF (stderr, "\n"); \ 724 } \ 725 } while (0) 726 727 728 /*----------------------------------------. 729 | Print this symbol's value on YYOUTPUT. | 730 `----------------------------------------*/ 731 794 732 static void 795 733 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 796 #else797 static void798 yy_symbol_value_print (yyoutput, yytype, yyvaluep)799 FILE *yyoutput;800 int yytype;801 YYSTYPE const * const yyvaluep;802 #endif803 734 { 804 735 FILE *yyo = yyoutput; … … 809 740 if (yytype < YYNTOKENS) 810 741 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 811 # else812 YYUSE (yyoutput);813 742 # endif 814 switch (yytype) 815 { 816 default: 817 break; 818 } 743 YYUSE (yytype); 819 744 } 820 745 … … 824 749 `--------------------------------*/ 825 750 826 #if (defined __STDC__ || defined __C99__FUNC__ \827 || defined __cplusplus || defined _MSC_VER)828 751 static void 829 752 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 830 #else 831 static void 832 yy_symbol_print (yyoutput, yytype, yyvaluep) 833 FILE *yyoutput; 834 int yytype; 835 YYSTYPE const * const yyvaluep; 836 #endif 837 { 838 if (yytype < YYNTOKENS) 839 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 840 else 841 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 753 { 754 YYFPRINTF (yyoutput, "%s %s (", 755 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 842 756 843 757 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 850 764 `------------------------------------------------------------------*/ 851 765 852 #if (defined __STDC__ || defined __C99__FUNC__ \853 || defined __cplusplus || defined _MSC_VER)854 766 static void 855 767 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 856 #else857 static void858 yy_stack_print (yybottom, yytop)859 yytype_int16 *yybottom;860 yytype_int16 *yytop;861 #endif862 768 { 863 769 YYFPRINTF (stderr, "Stack now"); … … 870 776 } 871 777 872 # define YY_STACK_PRINT(Bottom, Top) 873 do { 874 if (yydebug) 875 yy_stack_print ((Bottom), (Top)); 876 } while ( YYID (0))778 # define YY_STACK_PRINT(Bottom, Top) \ 779 do { \ 780 if (yydebug) \ 781 yy_stack_print ((Bottom), (Top)); \ 782 } while (0) 877 783 878 784 … … 881 787 `------------------------------------------------*/ 882 788 883 #if (defined __STDC__ || defined __C99__FUNC__ \884 || defined __cplusplus || defined _MSC_VER)885 789 static void 886 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 887 #else 888 static void 889 yy_reduce_print (yyvsp, yyrule) 890 YYSTYPE *yyvsp; 891 int yyrule; 892 #endif 893 { 790 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 791 { 792 unsigned long int yylno = yyrline[yyrule]; 894 793 int yynrhs = yyr2[yyrule]; 895 794 int yyi; 896 unsigned long int yylno = yyrline[yyrule];897 795 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 898 796 yyrule - 1, yylno); 899 797 /* The symbols being reduced. */ 900 798 for (yyi = 0; yyi < yynrhs; yyi++) 901 799 { 902 800 YYFPRINTF (stderr, " $%d = ", yyi + 1); 903 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 904 &(yyvsp[(yyi + 1) - (yynrhs)]) 905 ); 801 yy_symbol_print (stderr, 802 yystos[yyssp[yyi + 1 - yynrhs]], 803 &(yyvsp[(yyi + 1) - (yynrhs)]) 804 ); 906 805 YYFPRINTF (stderr, "\n"); 907 806 } 908 807 } 909 808 910 # define YY_REDUCE_PRINT(Rule) 911 do { 912 if (yydebug) 913 yy_reduce_print (yy vsp, Rule); \914 } while ( YYID (0))809 # define YY_REDUCE_PRINT(Rule) \ 810 do { \ 811 if (yydebug) \ 812 yy_reduce_print (yyssp, yyvsp, Rule); \ 813 } while (0) 915 814 916 815 /* Nonzero means print parse trace. It is left uninitialized so that … … 926 825 927 826 /* YYINITDEPTH -- initial size of the parser's stacks. */ 928 #ifndef 827 #ifndef YYINITDEPTH 929 828 # define YYINITDEPTH 200 930 829 #endif … … 949 848 # else 950 849 /* Return the length of YYSTR. */ 951 #if (defined __STDC__ || defined __C99__FUNC__ \952 || defined __cplusplus || defined _MSC_VER)953 850 static YYSIZE_T 954 851 yystrlen (const char *yystr) 955 #else956 static YYSIZE_T957 yystrlen (yystr)958 const char *yystr;959 #endif960 852 { 961 853 YYSIZE_T yylen; … … 973 865 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 974 866 YYDEST. */ 975 #if (defined __STDC__ || defined __C99__FUNC__ \976 || defined __cplusplus || defined _MSC_VER)977 867 static char * 978 868 yystpcpy (char *yydest, const char *yysrc) 979 #else980 static char *981 yystpcpy (yydest, yysrc)982 char *yydest;983 const char *yysrc;984 #endif985 869 { 986 870 char *yyd = yydest; … … 1012 896 1013 897 for (;;) 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 898 switch (*++yyp) 899 { 900 case '\'': 901 case ',': 902 goto do_not_strip_quotes; 903 904 case '\\': 905 if (*++yyp != '\\') 906 goto do_not_strip_quotes; 907 /* Fall through. */ 908 default: 909 if (yyres) 910 yyres[yyn] = *yyp; 911 yyn++; 912 break; 913 914 case '"': 915 if (yyres) 916 yyres[yyn] = '\0'; 917 return yyn; 918 } 1035 919 do_not_strip_quotes: ; 1036 920 } … … 1055 939 yytype_int16 *yyssp, int yytoken) 1056 940 { 1057 YYSIZE_T yysize0 = yytnamerr (YY_NULL , yytname[yytoken]);941 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 1058 942 YYSIZE_T yysize = yysize0; 1059 943 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1060 944 /* Internationalized format string. */ 1061 const char *yyformat = YY_NULL ;945 const char *yyformat = YY_NULLPTR; 1062 946 /* Arguments of yyformat. */ 1063 947 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 1067 951 1068 952 /* There are many possibilities here to consider: 1069 - Assume YYFAIL is not used. It's too flawed to consider. See1070 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>1071 for details. YYERROR is fine as it does not invoke this1072 function.1073 953 - If this state is a consistent state with a default action, then 1074 954 the only way this function was invoked is if the default action … … 1120 1000 yyarg[yycount++] = yytname[yyx]; 1121 1001 { 1122 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL , yytname[yyx]);1002 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 1123 1003 if (! (yysize <= yysize1 1124 1004 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) … … 1187 1067 `-----------------------------------------------*/ 1188 1068 1189 /*ARGSUSED*/1190 #if (defined __STDC__ || defined __C99__FUNC__ \1191 || defined __cplusplus || defined _MSC_VER)1192 1069 static void 1193 1070 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1194 #else1195 static void1196 yydestruct (yymsg, yytype, yyvaluep)1197 const char *yymsg;1198 int yytype;1199 YYSTYPE *yyvaluep;1200 #endif1201 1071 { 1202 1072 YYUSE (yyvaluep); 1203 1204 1073 if (!yymsg) 1205 1074 yymsg = "Deleting"; 1206 1075 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1207 1076 1208 switch (yytype) 1209 { 1210 1211 default: 1212 break; 1213 } 1077 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1078 YYUSE (yytype); 1079 YY_IGNORE_MAYBE_UNINITIALIZED_END 1214 1080 } 1215 1081 … … 1220 1086 int yychar; 1221 1087 1222 1223 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN1224 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN1225 # define YY_IGNORE_MAYBE_UNINITIALIZED_END1226 #endif1227 #ifndef YY_INITIAL_VALUE1228 # define YY_INITIAL_VALUE(Value) /* Nothing. */1229 #endif1230 1231 1088 /* The semantic value of the lookahead symbol. */ 1232 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); 1233 1089 YYSTYPE yylval; 1234 1090 /* Number of syntax errors so far. */ 1235 1091 int yynerrs; … … 1240 1096 `----------*/ 1241 1097 1242 #ifdef YYPARSE_PARAM1243 #if (defined __STDC__ || defined __C99__FUNC__ \1244 || defined __cplusplus || defined _MSC_VER)1245 int1246 yyparse (void *YYPARSE_PARAM)1247 #else1248 int1249 yyparse (YYPARSE_PARAM)1250 void *YYPARSE_PARAM;1251 #endif1252 #else /* ! YYPARSE_PARAM */1253 #if (defined __STDC__ || defined __C99__FUNC__ \1254 || defined __cplusplus || defined _MSC_VER)1255 1098 int 1256 1099 yyparse (void) 1257 #else1258 int1259 yyparse ()1260 1261 #endif1262 #endif1263 1100 { 1264 1101 int yystate; … … 1267 1104 1268 1105 /* The stacks and their tools: 1269 `yyss': related to states.1270 `yyvs': related to semantic values.1106 'yyss': related to states. 1107 'yyvs': related to semantic values. 1271 1108 1272 1109 Refer to the stacks through separate pointers, to allow yyoverflow … … 1336 1173 #ifdef yyoverflow 1337 1174 { 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1175 /* Give user a chance to reallocate the stack. Use copies of 1176 these so that the &'s don't force the real ones into 1177 memory. */ 1178 YYSTYPE *yyvs1 = yyvs; 1179 yytype_int16 *yyss1 = yyss; 1180 1181 /* Each stack pointer address is followed by the size of the 1182 data in use in that stack, in bytes. This used to be a 1183 conditional around just the two extra args, but that might 1184 be undefined if yyoverflow is a macro. */ 1185 yyoverflow (YY_("memory exhausted"), 1186 &yyss1, yysize * sizeof (*yyssp), 1187 &yyvs1, yysize * sizeof (*yyvsp), 1188 &yystacksize); 1189 1190 yyss = yyss1; 1191 yyvs = yyvs1; 1355 1192 } 1356 1193 #else /* no yyoverflow */ … … 1360 1197 /* Extend the stack our own way. */ 1361 1198 if (YYMAXDEPTH <= yystacksize) 1362 1199 goto yyexhaustedlab; 1363 1200 yystacksize *= 2; 1364 1201 if (YYMAXDEPTH < yystacksize) 1365 1202 yystacksize = YYMAXDEPTH; 1366 1203 1367 1204 { 1368 1369 1370 1371 1372 1373 1374 1205 yytype_int16 *yyss1 = yyss; 1206 union yyalloc *yyptr = 1207 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1208 if (! yyptr) 1209 goto yyexhaustedlab; 1210 YYSTACK_RELOCATE (yyss_alloc, yyss); 1211 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1375 1212 # undef YYSTACK_RELOCATE 1376 1377 1213 if (yyss1 != yyssa) 1214 YYSTACK_FREE (yyss1); 1378 1215 } 1379 1216 # endif … … 1384 1221 1385 1222 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1386 1223 (unsigned long int) yystacksize)); 1387 1224 1388 1225 if (yyss + yystacksize - 1 <= yyssp) 1389 1226 YYABORT; 1390 1227 } 1391 1228 … … 1416 1253 { 1417 1254 YYDPRINTF ((stderr, "Reading a token: ")); 1418 yychar = YYLEX;1255 yychar = yylex (); 1419 1256 } 1420 1257 … … 1481 1318 1482 1319 /* If YYLEN is nonzero, implement the default value of the action: 1483 `$$ = $1'.1320 '$$ = $1'. 1484 1321 1485 1322 Otherwise, the following line sets YYVAL to garbage. … … 1495 1332 { 1496 1333 case 2: 1497 /* Line 1792 of yacc.c */ 1498 #line 61 "yacc_parser.yacc" 1334 #line 61 "yacc_parser.yacc" /* yacc.c:1646 */ 1499 1335 { /* Nothing to do */ } 1336 #line 1337 "yacc_parser.cpp" /* yacc.c:1646 */ 1500 1337 break; 1501 1338 1502 1339 case 3: 1503 /* Line 1792 of yacc.c*/1504 #line 62 "yacc_parser.yacc" 1505 { parsed = (yyvsp[(1) - (2)].filterNode); } 1340 #line 62 "yacc_parser.yacc" /* yacc.c:1646 */ 1341 { parsed = (yyvsp[-1].filterNode); } 1342 #line 1343 "yacc_parser.cpp" /* yacc.c:1646 */ 1506 1343 break; 1507 1344 1508 1345 case 4: 1509 /* Line 1792 of yacc.c*/1510 #line 66 "yacc_parser.yacc" 1511 { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1346 #line 66 "yacc_parser.yacc" /* yacc.c:1646 */ 1347 { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1348 #line 1349 "yacc_parser.cpp" /* yacc.c:1646 */ 1512 1349 break; 1513 1350 1514 1351 case 5: 1515 /* Line 1792 of yacc.c*/1516 #line 67 "yacc_parser.yacc" 1517 { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1352 #line 67 "yacc_parser.yacc" /* yacc.c:1646 */ 1353 { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1354 #line 1355 "yacc_parser.cpp" /* yacc.c:1646 */ 1518 1355 break; 1519 1356 1520 1357 case 6: 1521 /* Line 1792 of yacc.c*/1522 #line 68 "yacc_parser.yacc" 1523 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].scalarNode)); } 1358 #line 68 "yacc_parser.yacc" /* yacc.c:1646 */ 1359 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].scalarNode)); } 1360 #line 1361 "yacc_parser.cpp" /* yacc.c:1646 */ 1524 1361 break; 1525 1362 1526 1363 case 7: 1527 /* Line 1792 of yacc.c*/1528 #line 69 "yacc_parser.yacc" 1529 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].scalarNode)); } 1364 #line 69 "yacc_parser.yacc" /* yacc.c:1646 */ 1365 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].scalarNode)); } 1366 #line 1367 "yacc_parser.cpp" /* yacc.c:1646 */ 1530 1367 break; 1531 1368 1532 1369 case 8: 1533 /* Line 1792 of yacc.c*/1534 #line 70 "yacc_parser.yacc" 1535 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].scalarNode)); } 1370 #line 70 "yacc_parser.yacc" /* yacc.c:1646 */ 1371 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].scalarNode)); } 1372 #line 1373 "yacc_parser.cpp" /* yacc.c:1646 */ 1536 1373 break; 1537 1374 1538 1375 case 9: 1539 /* Line 1792 of yacc.c*/1540 #line 71 "yacc_parser.yacc" 1541 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].scalarNode)); } 1376 #line 71 "yacc_parser.yacc" /* yacc.c:1646 */ 1377 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].scalarNode)); } 1378 #line 1379 "yacc_parser.cpp" /* yacc.c:1646 */ 1542 1379 break; 1543 1380 1544 1381 case 10: 1545 /* Line 1792 of yacc.c*/1546 #line 72 "yacc_parser.yacc" 1547 { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[(2) - (2)].scalarNode)); } 1382 #line 72 "yacc_parser.yacc" /* yacc.c:1646 */ 1383 { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[0].scalarNode)); } 1384 #line 1385 "yacc_parser.cpp" /* yacc.c:1646 */ 1548 1385 break; 1549 1386 1550 1387 case 11: 1551 /* Line 1792 of yacc.c*/1552 #line 73 "yacc_parser.yacc" 1553 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "pow", (yyvsp[(3) - (3)].scalarNode)); } 1388 #line 73 "yacc_parser.yacc" /* yacc.c:1646 */ 1389 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "pow", (yyvsp[0].scalarNode)); } 1390 #line 1391 "yacc_parser.cpp" /* yacc.c:1646 */ 1554 1391 break; 1555 1392 1556 1393 case 12: 1557 /* Line 1792 of yacc.c*/1558 #line 74 "yacc_parser.yacc" 1559 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].scalarNode)); } 1394 #line 74 "yacc_parser.yacc" /* yacc.c:1646 */ 1395 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].scalarNode)); } 1396 #line 1397 "yacc_parser.cpp" /* yacc.c:1646 */ 1560 1397 break; 1561 1398 1562 1399 case 13: 1563 /* Line 1792 of yacc.c*/1564 #line 75 "yacc_parser.yacc" 1565 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].scalarNode)); } 1400 #line 75 "yacc_parser.yacc" /* yacc.c:1646 */ 1401 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].scalarNode)); } 1402 #line 1403 "yacc_parser.cpp" /* yacc.c:1646 */ 1566 1403 break; 1567 1404 1568 1405 case 14: 1569 /* Line 1792 of yacc.c*/1570 #line 76 "yacc_parser.yacc" 1571 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].scalarNode)); } 1406 #line 76 "yacc_parser.yacc" /* yacc.c:1646 */ 1407 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].scalarNode)); } 1408 #line 1409 "yacc_parser.cpp" /* yacc.c:1646 */ 1572 1409 break; 1573 1410 1574 1411 case 15: 1575 /* Line 1792 of yacc.c*/1576 #line 77 "yacc_parser.yacc" 1577 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].scalarNode)); } 1412 #line 77 "yacc_parser.yacc" /* yacc.c:1646 */ 1413 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].scalarNode)); } 1414 #line 1415 "yacc_parser.cpp" /* yacc.c:1646 */ 1578 1415 break; 1579 1416 1580 1417 case 16: 1581 /* Line 1792 of yacc.c*/1582 #line 78 "yacc_parser.yacc" 1583 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].scalarNode)); } 1418 #line 78 "yacc_parser.yacc" /* yacc.c:1646 */ 1419 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].scalarNode)); } 1420 #line 1421 "yacc_parser.cpp" /* yacc.c:1646 */ 1584 1421 break; 1585 1422 1586 1423 case 17: 1587 /* Line 1792 of yacc.c*/1588 #line 79 "yacc_parser.yacc" 1589 { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].scalarNode)); } 1424 #line 79 "yacc_parser.yacc" /* yacc.c:1646 */ 1425 { (yyval.scalarNode) = (yyvsp[-1].scalarNode); } 1426 #line 1427 "yacc_parser.cpp" /* yacc.c:1646 */ 1590 1427 break; 1591 1428 1592 1429 case 18: 1593 /* Line 1792 of yacc.c*/1594 #line 80 "yacc_parser.yacc" 1595 { (yyval.scalarNode) = (yyvsp[(2) - (3)].scalarNode); } 1430 #line 80 "yacc_parser.yacc" /* yacc.c:1646 */ 1431 { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].scalarNode)); delete (yyvsp[-3].str); } 1432 #line 1433 "yacc_parser.cpp" /* yacc.c:1646 */ 1596 1433 break; 1597 1434 1598 1435 case 19: 1599 /* Line 1792 of yacc.c*/1600 #line 81 "yacc_parser.yacc" 1601 { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].scalarNode)); delete (yyvsp[(1) - (4)].str); } 1436 #line 84 "yacc_parser.yacc" /* yacc.c:1646 */ 1437 { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1438 #line 1439 "yacc_parser.cpp" /* yacc.c:1646 */ 1602 1439 break; 1603 1440 1604 1441 case 20: 1605 /* Line 1792 of yacc.c*/1606 #line 85 "yacc_parser.yacc" 1607 { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1442 #line 85 "yacc_parser.yacc" /* yacc.c:1646 */ 1443 { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); } 1444 #line 1445 "yacc_parser.cpp" /* yacc.c:1646 */ 1608 1445 break; 1609 1446 1610 1447 case 21: 1611 /* Line 1792 of yacc.c*/1612 #line 86 "yacc_parser.yacc" 1613 { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); } 1448 #line 86 "yacc_parser.yacc" /* yacc.c:1646 */ 1449 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].filterNode)); } 1450 #line 1451 "yacc_parser.cpp" /* yacc.c:1646 */ 1614 1451 break; 1615 1452 1616 1453 case 22: 1617 /* Line 1792 of yacc.c*/1618 #line 87 "yacc_parser.yacc" 1619 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].filterNode)); } 1454 #line 87 "yacc_parser.yacc" /* yacc.c:1646 */ 1455 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].filterNode)); } 1456 #line 1457 "yacc_parser.cpp" /* yacc.c:1646 */ 1620 1457 break; 1621 1458 1622 1459 case 23: 1623 /* Line 1792 of yacc.c*/1624 #line 88 "yacc_parser.yacc" 1625 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].filterNode)); } 1460 #line 88 "yacc_parser.yacc" /* yacc.c:1646 */ 1461 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].filterNode)); } 1462 #line 1463 "yacc_parser.cpp" /* yacc.c:1646 */ 1626 1463 break; 1627 1464 1628 1465 case 24: 1629 /* Line 1792 of yacc.c*/1630 #line 89 "yacc_parser.yacc" 1631 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].filterNode)); } 1466 #line 89 "yacc_parser.yacc" /* yacc.c:1646 */ 1467 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].filterNode)); } 1468 #line 1469 "yacc_parser.cpp" /* yacc.c:1646 */ 1632 1469 break; 1633 1470 1634 1471 case 25: 1635 /* Line 1792 of yacc.c*/1636 #line 90 "yacc_parser.yacc" 1637 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].filterNode)); } 1472 #line 90 "yacc_parser.yacc" /* yacc.c:1646 */ 1473 { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[0].filterNode)); } 1474 #line 1475 "yacc_parser.cpp" /* yacc.c:1646 */ 1638 1475 break; 1639 1476 1640 1477 case 26: 1641 /* Line 1792 of yacc.c*/1642 #line 91 "yacc_parser.yacc" 1643 { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[(2) - (2)].filterNode)); } 1478 #line 91 "yacc_parser.yacc" /* yacc.c:1646 */ 1479 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].filterNode)); } 1480 #line 1481 "yacc_parser.cpp" /* yacc.c:1646 */ 1644 1481 break; 1645 1482 1646 1483 case 27: 1647 /* Line 1792 of yacc.c*/1648 #line 92 "yacc_parser.yacc" 1649 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].filterNode)); } 1484 #line 92 "yacc_parser.yacc" /* yacc.c:1646 */ 1485 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].filterNode)); } 1486 #line 1487 "yacc_parser.cpp" /* yacc.c:1646 */ 1650 1487 break; 1651 1488 1652 1489 case 28: 1653 /* Line 1792 of yacc.c*/1654 #line 93 "yacc_parser.yacc" 1655 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].filterNode)); } 1490 #line 93 "yacc_parser.yacc" /* yacc.c:1646 */ 1491 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].filterNode)); } 1492 #line 1493 "yacc_parser.cpp" /* yacc.c:1646 */ 1656 1493 break; 1657 1494 1658 1495 case 29: 1659 /* Line 1792 of yacc.c*/1660 #line 94 "yacc_parser.yacc" 1661 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].filterNode)); } 1496 #line 94 "yacc_parser.yacc" /* yacc.c:1646 */ 1497 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].filterNode)); } 1498 #line 1499 "yacc_parser.cpp" /* yacc.c:1646 */ 1662 1499 break; 1663 1500 1664 1501 case 30: 1665 /* Line 1792 of yacc.c*/1666 #line 95 "yacc_parser.yacc" 1667 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].filterNode)); } 1502 #line 95 "yacc_parser.yacc" /* yacc.c:1646 */ 1503 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].filterNode)); } 1504 #line 1505 "yacc_parser.cpp" /* yacc.c:1646 */ 1668 1505 break; 1669 1506 1670 1507 case 31: 1671 /* Line 1792 of yacc.c*/1672 #line 96 "yacc_parser.yacc" 1673 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].filterNode)); } 1508 #line 96 "yacc_parser.yacc" /* yacc.c:1646 */ 1509 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].filterNode)); } 1510 #line 1511 "yacc_parser.cpp" /* yacc.c:1646 */ 1674 1511 break; 1675 1512 1676 1513 case 32: 1677 /* Line 1792 of yacc.c*/1678 #line 97 "yacc_parser.yacc" 1679 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].filterNode)); } 1514 #line 97 "yacc_parser.yacc" /* yacc.c:1646 */ 1515 { (yyval.filterNode) = (yyvsp[-1].filterNode); } 1516 #line 1517 "yacc_parser.cpp" /* yacc.c:1646 */ 1680 1517 break; 1681 1518 1682 1519 case 33: 1683 /* Line 1792 of yacc.c*/1684 #line 98 "yacc_parser.yacc" 1685 { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].filterNode)); } 1520 #line 98 "yacc_parser.yacc" /* yacc.c:1646 */ 1521 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].scalarNode)); } 1522 #line 1523 "yacc_parser.cpp" /* yacc.c:1646 */ 1686 1523 break; 1687 1524 1688 1525 case 34: 1689 /* Line 1792 of yacc.c*/1690 #line 99 "yacc_parser.yacc" 1691 { (yyval.filterNode) = (yyvsp[(2) - (3)].filterNode); } 1526 #line 99 "yacc_parser.yacc" /* yacc.c:1646 */ 1527 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].filterNode)); } 1528 #line 1529 "yacc_parser.cpp" /* yacc.c:1646 */ 1692 1529 break; 1693 1530 1694 1531 case 35: 1695 /* Line 1792 of yacc.c*/1696 #line 100 "yacc_parser.yacc" 1697 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].scalarNode)); } 1532 #line 100 "yacc_parser.yacc" /* yacc.c:1646 */ 1533 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].scalarNode)); } 1534 #line 1535 "yacc_parser.cpp" /* yacc.c:1646 */ 1698 1535 break; 1699 1536 1700 1537 case 36: 1701 /* Line 1792 of yacc.c*/1702 #line 101 "yacc_parser.yacc" 1703 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].filterNode)); } 1538 #line 101 "yacc_parser.yacc" /* yacc.c:1646 */ 1539 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].filterNode)); } 1540 #line 1541 "yacc_parser.cpp" /* yacc.c:1646 */ 1704 1541 break; 1705 1542 1706 1543 case 37: 1707 /* Line 1792 of yacc.c*/1708 #line 102 "yacc_parser.yacc" 1709 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].scalarNode)); } 1544 #line 102 "yacc_parser.yacc" /* yacc.c:1646 */ 1545 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].scalarNode)); } 1546 #line 1547 "yacc_parser.cpp" /* yacc.c:1646 */ 1710 1547 break; 1711 1548 1712 1549 case 38: 1713 /* Line 1792 of yacc.c*/1714 #line 103 "yacc_parser.yacc" 1715 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].filterNode)); } 1550 #line 103 "yacc_parser.yacc" /* yacc.c:1646 */ 1551 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].filterNode)); } 1552 #line 1553 "yacc_parser.cpp" /* yacc.c:1646 */ 1716 1553 break; 1717 1554 1718 1555 case 39: 1719 /* Line 1792 of yacc.c*/1720 #line 104 "yacc_parser.yacc" 1721 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].scalarNode)); } 1556 #line 104 "yacc_parser.yacc" /* yacc.c:1646 */ 1557 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].scalarNode)); } 1558 #line 1559 "yacc_parser.cpp" /* yacc.c:1646 */ 1722 1559 break; 1723 1560 1724 1561 case 40: 1725 /* Line 1792 of yacc.c*/1726 #line 105 "yacc_parser.yacc" 1727 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].filterNode)); } 1562 #line 105 "yacc_parser.yacc" /* yacc.c:1646 */ 1563 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].filterNode)); } 1564 #line 1565 "yacc_parser.cpp" /* yacc.c:1646 */ 1728 1565 break; 1729 1566 1730 1567 case 41: 1731 /* Line 1792 of yacc.c*/1732 #line 106 "yacc_parser.yacc" 1733 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].scalarNode)); } 1568 #line 106 "yacc_parser.yacc" /* yacc.c:1646 */ 1569 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].scalarNode)); } 1570 #line 1571 "yacc_parser.cpp" /* yacc.c:1646 */ 1734 1571 break; 1735 1572 1736 1573 case 42: 1737 /* Line 1792 of yacc.c*/1738 #line 107 "yacc_parser.yacc" 1739 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].filterNode)); } 1574 #line 107 "yacc_parser.yacc" /* yacc.c:1646 */ 1575 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].scalarNode)); } 1576 #line 1577 "yacc_parser.cpp" /* yacc.c:1646 */ 1740 1577 break; 1741 1578 1742 1579 case 43: 1743 /* Line 1792 of yacc.c*/1744 #line 108 "yacc_parser.yacc" 1745 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].scalarNode)); } 1580 #line 108 "yacc_parser.yacc" /* yacc.c:1646 */ 1581 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].filterNode)); } 1582 #line 1583 "yacc_parser.cpp" /* yacc.c:1646 */ 1746 1583 break; 1747 1584 1748 1585 case 44: 1749 /* Line 1792 of yacc.c*/1750 #line 109 "yacc_parser.yacc" 1751 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].scalarNode)); } 1586 #line 109 "yacc_parser.yacc" /* yacc.c:1646 */ 1587 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].scalarNode)); } 1588 #line 1589 "yacc_parser.cpp" /* yacc.c:1646 */ 1752 1589 break; 1753 1590 1754 1591 case 45: 1755 /* Line 1792 of yacc.c*/1756 #line 110 "yacc_parser.yacc" 1757 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].filterNode)); } 1592 #line 110 "yacc_parser.yacc" /* yacc.c:1646 */ 1593 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].filterNode)); } 1594 #line 1595 "yacc_parser.cpp" /* yacc.c:1646 */ 1758 1595 break; 1759 1596 1760 1597 case 46: 1761 /* Line 1792 of yacc.c*/1762 #line 111 "yacc_parser.yacc" 1763 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].scalarNode)); } 1598 #line 111 "yacc_parser.yacc" /* yacc.c:1646 */ 1599 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].scalarNode)); } 1600 #line 1601 "yacc_parser.cpp" /* yacc.c:1646 */ 1764 1601 break; 1765 1602 1766 1603 case 47: 1767 /* Line 1792 of yacc.c*/1768 #line 112 "yacc_parser.yacc" 1769 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].filterNode)); } 1604 #line 112 "yacc_parser.yacc" /* yacc.c:1646 */ 1605 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].filterNode)); } 1606 #line 1607 "yacc_parser.cpp" /* yacc.c:1646 */ 1770 1607 break; 1771 1608 1772 1609 case 48: 1773 /* Line 1792 of yacc.c*/1774 #line 113 "yacc_parser.yacc" 1775 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].scalarNode)); } 1610 #line 113 "yacc_parser.yacc" /* yacc.c:1646 */ 1611 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].scalarNode)); } 1612 #line 1613 "yacc_parser.cpp" /* yacc.c:1646 */ 1776 1613 break; 1777 1614 1778 1615 case 49: 1779 /* Line 1792 of yacc.c*/1780 #line 114 "yacc_parser.yacc" 1781 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].filterNode)); } 1616 #line 114 "yacc_parser.yacc" /* yacc.c:1646 */ 1617 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].filterNode)); } 1618 #line 1619 "yacc_parser.cpp" /* yacc.c:1646 */ 1782 1619 break; 1783 1620 1784 1621 case 50: 1785 /* Line 1792 of yacc.c*/1786 #line 115 "yacc_parser.yacc" 1787 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].scalarNode)); } 1622 #line 115 "yacc_parser.yacc" /* yacc.c:1646 */ 1623 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].scalarNode)); } 1624 #line 1625 "yacc_parser.cpp" /* yacc.c:1646 */ 1788 1625 break; 1789 1626 1790 1627 case 51: 1791 /* Line 1792 of yacc.c*/1792 #line 116 "yacc_parser.yacc" 1793 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].filterNode)); } 1628 #line 116 "yacc_parser.yacc" /* yacc.c:1646 */ 1629 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].filterNode)); } 1630 #line 1631 "yacc_parser.cpp" /* yacc.c:1646 */ 1794 1631 break; 1795 1632 1796 1633 case 52: 1797 /* Line 1792 of yacc.c */ 1798 #line 117 "yacc_parser.yacc" 1799 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].scalarNode)); } 1800 break; 1801 1802 case 53: 1803 /* Line 1792 of yacc.c */ 1804 #line 118 "yacc_parser.yacc" 1805 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].filterNode)); } 1806 break; 1807 1808 case 54: 1809 /* Line 1792 of yacc.c */ 1810 #line 119 "yacc_parser.yacc" 1811 { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].scalarNode)); } 1812 break; 1813 1814 case 55: 1815 /* Line 1792 of yacc.c */ 1816 #line 120 "yacc_parser.yacc" 1817 { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].filterNode)); } 1818 break; 1819 1820 case 56: 1821 /* Line 1792 of yacc.c */ 1822 #line 121 "yacc_parser.yacc" 1823 { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].filterNode)); delete (yyvsp[(1) - (4)].str); } 1824 break; 1825 1826 1827 /* Line 1792 of yacc.c */ 1828 #line 1829 "yacc_parser.cpp" 1634 #line 117 "yacc_parser.yacc" /* yacc.c:1646 */ 1635 { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].filterNode)); delete (yyvsp[-3].str); } 1636 #line 1637 "yacc_parser.cpp" /* yacc.c:1646 */ 1637 break; 1638 1639 1640 #line 1641 "yacc_parser.cpp" /* yacc.c:1646 */ 1829 1641 default: break; 1830 1642 } … … 1848 1660 *++yyvsp = yyval; 1849 1661 1850 /* Now `shift' the result of the reduction. Determine what state1662 /* Now 'shift' the result of the reduction. Determine what state 1851 1663 that goes to, based on the state we popped back to and the rule 1852 1664 number reduced by. */ … … 1863 1675 1864 1676 1865 /*------------------------------------ .1866 | yyerrlab -- here on detecting error |1867 `------------------------------------ */1677 /*--------------------------------------. 1678 | yyerrlab -- here on detecting error. | 1679 `--------------------------------------*/ 1868 1680 yyerrlab: 1869 1681 /* Make sure we have latest lookahead translation. See comments at … … 1916 1728 { 1917 1729 /* If just tried and failed to reuse lookahead token after an 1918 1730 error, discard it. */ 1919 1731 1920 1732 if (yychar <= YYEOF) 1921 1922 1923 1924 1925 1733 { 1734 /* Return failure if at end of input. */ 1735 if (yychar == YYEOF) 1736 YYABORT; 1737 } 1926 1738 else 1927 1928 1929 1930 1931 1739 { 1740 yydestruct ("Error: discarding", 1741 yytoken, &yylval); 1742 yychar = YYEMPTY; 1743 } 1932 1744 } 1933 1745 … … 1948 1760 goto yyerrorlab; 1949 1761 1950 /* Do not reclaim the symbols of the rule wh ichaction triggered1762 /* Do not reclaim the symbols of the rule whose action triggered 1951 1763 this YYERROR. */ 1952 1764 YYPOPSTACK (yylen); … … 1961 1773 `-------------------------------------------------------------*/ 1962 1774 yyerrlab1: 1963 yyerrstatus = 3; 1775 yyerrstatus = 3; /* Each real token shifted decrements this. */ 1964 1776 1965 1777 for (;;) … … 1967 1779 yyn = yypact[yystate]; 1968 1780 if (!yypact_value_is_default (yyn)) 1969 1970 1971 1972 1973 1974 1975 1976 1977 1781 { 1782 yyn += YYTERROR; 1783 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1784 { 1785 yyn = yytable[yyn]; 1786 if (0 < yyn) 1787 break; 1788 } 1789 } 1978 1790 1979 1791 /* Pop the current state because it cannot handle the error token. */ 1980 1792 if (yyssp == yyss) 1981 1793 YYABORT; 1982 1794 1983 1795 1984 1796 yydestruct ("Error: popping", 1985 1797 yystos[yystate], yyvsp); 1986 1798 YYPOPSTACK (1); 1987 1799 yystate = *yyssp; … … 2034 1846 yytoken, &yylval); 2035 1847 } 2036 /* Do not reclaim the symbols of the rule wh ichaction triggered1848 /* Do not reclaim the symbols of the rule whose action triggered 2037 1849 this YYABORT or YYACCEPT. */ 2038 1850 YYPOPSTACK (yylen); … … 2041 1853 { 2042 1854 yydestruct ("Cleanup: popping", 2043 1855 yystos[*yyssp], yyvsp); 2044 1856 YYPOPSTACK (1); 2045 1857 } … … 2052 1864 YYSTACK_FREE (yymsg); 2053 1865 #endif 2054 /* Make sure YYID is used. */ 2055 return YYID (yyresult); 1866 return yyresult; 2056 1867 } 2057 2058 2059 /* Line 2055 of yacc.c */ 2060 #line 123 "yacc_parser.yacc" 1868 #line 119 "yacc_parser.yacc" /* yacc.c:1906 */ 2061 1869 2062 1870 -
XIOS/dev/branch_yushan/src/parse_expr/yacc_parser.hpp
r1019 r1037 1 /* A Bison parser, made by GNU Bison 2.7. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2012Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 33 33 #ifndef YY_YY_YACC_PARSER_HPP_INCLUDED 34 34 # define YY_YY_YACC_PARSER_HPP_INCLUDED 35 /* Enabling traces. */35 /* Debug traces. */ 36 36 #ifndef YYDEBUG 37 37 # define YYDEBUG 0 … … 41 41 #endif 42 42 43 /* Token s. */43 /* Token type. */ 44 44 #ifndef YYTOKENTYPE 45 45 # define YYTOKENTYPE 46 /* Put the tokens into the symbol table, so that GDB and other debuggers 47 know about them. */ 48 enum yytokentype { 49 NUMBER = 258, 50 VAR = 259, 51 ID = 260, 52 AVERAGE = 261, 53 PLUS = 262, 54 MINUS = 263, 55 TIMES = 264, 56 DIVIDE = 265, 57 POWER = 266, 58 EQ = 267, 59 LT = 268, 60 GT = 269, 61 LE = 270, 62 GE = 271, 63 NE = 272, 64 LEFT_PARENTHESIS = 273, 65 RIGHT_PARENTHESIS = 274, 66 END = 275, 67 NEG = 276 68 }; 46 enum yytokentype 47 { 48 NUMBER = 258, 49 VAR = 259, 50 ID = 260, 51 AVERAGE = 261, 52 PLUS = 262, 53 MINUS = 263, 54 TIMES = 264, 55 DIVIDE = 265, 56 POWER = 266, 57 EQ = 267, 58 LT = 268, 59 GT = 269, 60 LE = 270, 61 GE = 271, 62 LEFT_PARENTHESIS = 272, 63 RIGHT_PARENTHESIS = 273, 64 END = 274, 65 NEG = 275 66 }; 69 67 #endif 70 68 71 69 /* Value type. */ 72 70 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 73 typedef union YYSTYPE 71 typedef union YYSTYPE YYSTYPE; 72 union YYSTYPE 74 73 { 75 /* Line 2058 of yacc.c */ 76 #line 35 "yacc_parser.yacc" 74 #line 35 "yacc_parser.yacc" /* yacc.c:1909 */ 77 75 78 76 std::string* str; /* symbol table index */ … … 80 78 xios::IFilterExprNode* filterNode; 81 79 82 83 /* Line 2058 of yacc.c */ 84 #line 85 "yacc_parser.hpp" 85 } YYSTYPE; 80 #line 81 "yacc_parser.hpp" /* yacc.c:1909 */ 81 }; 86 82 # define YYSTYPE_IS_TRIVIAL 1 87 # define yystype YYSTYPE /* obsolescent; will be withdrawn */88 83 # define YYSTYPE_IS_DECLARED 1 89 84 #endif 90 85 86 91 87 extern YYSTYPE yylval; 92 88 93 #ifdef YYPARSE_PARAM94 #if defined __STDC__ || defined __cplusplus95 int yyparse (void *YYPARSE_PARAM);96 #else97 int yyparse ();98 #endif99 #else /* ! YYPARSE_PARAM */100 #if defined __STDC__ || defined __cplusplus101 89 int yyparse (void); 102 #else103 int yyparse ();104 #endif105 #endif /* ! YYPARSE_PARAM */106 90 107 91 #endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED */ -
XIOS/dev/branch_yushan/src/parse_expr/yacc_parser.yacc
r1019 r1037 42 42 %token <str> VAR ID AVERAGE 43 43 %token PLUS MINUS TIMES DIVIDE POWER 44 %token EQ LT GT LE GE NE44 %token EQ LT GT LE GE 45 45 %token LEFT_PARENTHESIS RIGHT_PARENTHESIS 46 46 %token <str> END 47 47 48 %left EQ LT GT LE GE NE48 %left EQ LT GT LE GE 49 49 %left PLUS MINUS 50 50 %left TIMES DIVIDE … … 77 77 | Expression LE Expression { $$ = new CScalarBinaryOpExprNode($1, "le", $3); } 78 78 | Expression GE Expression { $$ = new CScalarBinaryOpExprNode($1, "ge", $3); } 79 | Expression NE Expression { $$ = new CScalarBinaryOpExprNode($1, "ne", $3); }80 79 | LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = $2; } 81 80 | ID LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = new CScalarUnaryOpExprNode(*$1, $3); delete $1; } … … 96 95 | Field_expr LE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "le", $3); } 97 96 | Field_expr GE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ge", $3); } 98 | Field_expr NE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ne", $3); }99 97 | LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS { $$ = $2; } 100 98 | Field_expr PLUS Expression { $$ = new CFilterFieldScalarOpExprNode($1, "add", $3); } … … 117 115 | Field_expr GE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ge", $3); } 118 116 | Expression GE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ge", $3); } 119 | Field_expr NE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ne", $3); }120 | Expression NE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ne", $3); }121 117 | ID LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS { $$ = new CFilterUnaryOpExprNode(*$1, $3); delete $1; } 122 118 ;
Note: See TracChangeset
for help on using the changeset viewer.