Changeset 321f55d for src/Parser/parser.cc
- Timestamp:
- Aug 10, 2016, 11:31:15 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 27fefeb6
- Parents:
- 2f22cc4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
r2f22cc4 r321f55d 1035 1035 657, 658, 659, 660, 661, 662, 663, 673, 680, 682, 1036 1036 692, 693, 698, 700, 706, 708, 712, 713, 718, 723, 1037 72 7, 730, 733, 743, 746, 758, 759, 761, 765, 767,1038 7 71, 772, 777, 778, 782, 787, 788, 792, 794, 800,1039 801, 805, 807, 809, 811, 817, 818, 822, 824, 829,1040 8 31, 833, 838, 840, 845, 847, 851, 854, 858, 861,1037 726, 728, 730, 740, 742, 753, 754, 756, 760, 762, 1038 766, 767, 772, 773, 777, 782, 783, 787, 789, 795, 1039 796, 800, 802, 804, 806, 812, 813, 817, 819, 824, 1040 826, 828, 833, 835, 840, 843, 847, 851, 856, 860, 1041 1041 865, 867, 871, 873, 880, 882, 884, 893, 895, 897, 1042 1042 899, 901, 906, 908, 910, 912, 917, 930, 931, 936, … … 5714 5714 5715 5715 /* Line 1806 of yacc.c */ 5716 #line 72 6"parser.yy"5716 #line 725 "parser.yy" 5717 5717 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5718 5718 break; … … 5721 5721 5722 5722 /* Line 1806 of yacc.c */ 5723 #line 727 "parser.yy" 5724 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5725 break; 5726 5727 case 151: 5728 5729 /* Line 1806 of yacc.c */ 5723 5730 #line 729 "parser.yy" 5724 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }5725 break;5726 5727 case 151:5728 5729 /* Line 1806 of yacc.c */5730 #line 732 "parser.yy"5731 5731 { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5732 5732 break; … … 5735 5735 5736 5736 /* Line 1806 of yacc.c */ 5737 #line 73 4"parser.yy"5737 #line 731 "parser.yy" 5738 5738 { 5739 5739 StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5750 5750 5751 5751 /* Line 1806 of yacc.c */ 5752 #line 74 5"parser.yy"5752 #line 741 "parser.yy" 5753 5753 { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5754 5754 break; … … 5757 5757 5758 5758 /* Line 1806 of yacc.c */ 5759 #line 74 7"parser.yy"5759 #line 743 "parser.yy" 5760 5760 { 5761 //StatementNode *sw = new StatementNode( StatementNode::Switch, $3, $8 );5762 5761 StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5763 5762 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw; … … 5768 5767 5769 5768 /* Line 1806 of yacc.c */ 5770 #line 75 8"parser.yy"5769 #line 753 "parser.yy" 5771 5770 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5772 5771 break; … … 5775 5774 5776 5775 /* Line 1806 of yacc.c */ 5776 #line 755 "parser.yy" 5777 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5778 break; 5779 5780 case 158: 5781 5782 /* Line 1806 of yacc.c */ 5777 5783 #line 760 "parser.yy" 5778 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5779 break;5780 5781 case 158:5782 5783 /* Line 1806 of yacc.c */5784 #line 765 "parser.yy"5785 5784 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 5786 5785 break; … … 5789 5788 5790 5789 /* Line 1806 of yacc.c */ 5790 #line 762 "parser.yy" 5791 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 5792 break; 5793 5794 case 160: 5795 5796 /* Line 1806 of yacc.c */ 5797 #line 766 "parser.yy" 5798 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5799 break; 5800 5801 case 161: 5802 5803 /* Line 1806 of yacc.c */ 5791 5804 #line 767 "parser.yy" 5792 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); }5793 break;5794 5795 case 160:5796 5797 /* Line 1806 of yacc.c */5798 #line 771 "parser.yy"5799 { (yyval.sn) = (yyvsp[(2) - (3)].sn); }5800 break;5801 5802 case 161:5803 5804 /* Line 1806 of yacc.c */5805 #line 772 "parser.yy"5806 5805 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 5807 5806 break; … … 5810 5809 5811 5810 /* Line 1806 of yacc.c */ 5812 #line 77 8"parser.yy"5811 #line 773 "parser.yy" 5813 5812 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5814 5813 break; … … 5817 5816 5818 5817 /* Line 1806 of yacc.c */ 5818 #line 777 "parser.yy" 5819 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5820 break; 5821 5822 case 165: 5823 5824 /* Line 1806 of yacc.c */ 5819 5825 #line 782 "parser.yy" 5826 { (yyval.sn) = 0; } 5827 break; 5828 5829 case 167: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 788 "parser.yy" 5820 5833 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5821 5834 break; 5822 5835 5823 case 165: 5824 5825 /* Line 1806 of yacc.c */ 5826 #line 787 "parser.yy" 5836 case 168: 5837 5838 /* Line 1806 of yacc.c */ 5839 #line 790 "parser.yy" 5840 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5841 break; 5842 5843 case 169: 5844 5845 /* Line 1806 of yacc.c */ 5846 #line 795 "parser.yy" 5827 5847 { (yyval.sn) = 0; } 5828 5848 break; 5829 5849 5830 case 167: 5831 5832 /* Line 1806 of yacc.c */ 5833 #line 793 "parser.yy" 5834 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5835 break; 5836 5837 case 168: 5838 5839 /* Line 1806 of yacc.c */ 5840 #line 795 "parser.yy" 5841 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5842 break; 5843 5844 case 169: 5845 5846 /* Line 1806 of yacc.c */ 5847 #line 800 "parser.yy" 5850 case 171: 5851 5852 /* Line 1806 of yacc.c */ 5853 #line 801 "parser.yy" 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5855 break; 5856 5857 case 172: 5858 5859 /* Line 1806 of yacc.c */ 5860 #line 803 "parser.yy" 5861 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 5862 break; 5863 5864 case 173: 5865 5866 /* Line 1806 of yacc.c */ 5867 #line 805 "parser.yy" 5868 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5869 break; 5870 5871 case 174: 5872 5873 /* Line 1806 of yacc.c */ 5874 #line 807 "parser.yy" 5875 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5876 break; 5877 5878 case 175: 5879 5880 /* Line 1806 of yacc.c */ 5881 #line 812 "parser.yy" 5882 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 5883 break; 5884 5885 case 177: 5886 5887 /* Line 1806 of yacc.c */ 5888 #line 818 "parser.yy" 5848 5889 { (yyval.sn) = 0; } 5849 5890 break; 5850 5891 5851 case 171: 5852 5853 /* Line 1806 of yacc.c */ 5854 #line 806 "parser.yy" 5855 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5856 break; 5857 5858 case 172: 5859 5860 /* Line 1806 of yacc.c */ 5861 #line 808 "parser.yy" 5862 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 5863 break; 5864 5865 case 173: 5866 5867 /* Line 1806 of yacc.c */ 5868 #line 810 "parser.yy" 5869 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5870 break; 5871 5872 case 174: 5873 5874 /* Line 1806 of yacc.c */ 5875 #line 812 "parser.yy" 5876 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5877 break; 5878 5879 case 175: 5880 5881 /* Line 1806 of yacc.c */ 5882 #line 817 "parser.yy" 5883 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 5884 break; 5885 5886 case 177: 5887 5888 /* Line 1806 of yacc.c */ 5889 #line 823 "parser.yy" 5892 case 178: 5893 5894 /* Line 1806 of yacc.c */ 5895 #line 820 "parser.yy" 5890 5896 { (yyval.sn) = 0; } 5891 5897 break; 5892 5898 5893 case 17 8:5899 case 179: 5894 5900 5895 5901 /* Line 1806 of yacc.c */ 5896 5902 #line 825 "parser.yy" 5897 { (yyval.sn) = 0; }5898 break;5899 5900 case 179:5901 5902 /* Line 1806 of yacc.c */5903 #line 830 "parser.yy"5904 5903 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5905 5904 break; … … 5908 5907 5909 5908 /* Line 1806 of yacc.c */ 5910 #line 8 32"parser.yy"5909 #line 827 "parser.yy" 5911 5910 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5912 5911 break; … … 5915 5914 5916 5915 /* Line 1806 of yacc.c */ 5916 #line 829 "parser.yy" 5917 { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5918 break; 5919 5920 case 182: 5921 5922 /* Line 1806 of yacc.c */ 5917 5923 #line 834 "parser.yy" 5918 { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }5919 break;5920 5921 case 182:5922 5923 /* Line 1806 of yacc.c */5924 #line 839 "parser.yy"5925 5924 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5926 5925 break; … … 5929 5928 5930 5929 /* Line 1806 of yacc.c */ 5931 #line 8 41"parser.yy"5930 #line 836 "parser.yy" 5932 5931 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5933 5932 break; … … 5936 5935 5937 5936 /* Line 1806 of yacc.c */ 5937 #line 842 "parser.yy" 5938 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5939 break; 5940 5941 case 185: 5942 5943 /* Line 1806 of yacc.c */ 5938 5944 #line 846 "parser.yy" 5939 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[( 2) - (3)].tok) ); }5940 break; 5941 5942 case 18 5:5945 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 5946 break; 5947 5948 case 186: 5943 5949 5944 5950 /* Line 1806 of yacc.c */ 5945 5951 #line 850 "parser.yy" 5946 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 5947 break; 5948 5949 case 186: 5950 5951 /* Line 1806 of yacc.c */ 5952 #line 853 "parser.yy" 5953 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 5952 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); } 5954 5953 break; 5955 5954 … … 5957 5956 5958 5957 /* Line 1806 of yacc.c */ 5959 #line 85 7"parser.yy"5960 { (yyval.sn) = new StatementNode ( StatementNode::Continue, (yyvsp[(2) - (3)].tok)); }5958 #line 855 "parser.yy" 5959 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); } 5961 5960 break; 5962 5961 … … 5964 5963 5965 5964 /* Line 1806 of yacc.c */ 5966 #line 8 60"parser.yy"5967 { (yyval.sn) = new StatementNode ( StatementNode::Break); }5965 #line 859 "parser.yy" 5966 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } 5968 5967 break; 5969 5968 … … 5972 5971 /* Line 1806 of yacc.c */ 5973 5972 #line 864 "parser.yy" 5974 { (yyval.sn) = new StatementNode ( StatementNode::Break, (yyvsp[(2) - (3)].tok)); }5973 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); } 5975 5974 break; 5976 5975 … … 9151 9150 9152 9151 /* Line 1806 of yacc.c */ 9153 #line 915 4"Parser/parser.cc"9152 #line 9153 "Parser/parser.cc" 9154 9153 default: break; 9155 9154 }
Note: See TracChangeset
for help on using the changeset viewer.