Changes in src/Parser/parser.yy [ca78437:67cf18c]
- File:
-
- 1 edited
-
src/Parser/parser.yy (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
rca78437 r67cf18c 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 12 12:59:00201713 // Update Count : 2 40212 // Last Modified On : Thu May 25 15:21:59 2017 13 // Update Count : 2398 14 14 // 15 15 … … 193 193 %type<sn> case_value_list case_label case_label_list 194 194 %type<sn> switch_clause_list_opt switch_clause_list choose_clause_list_opt choose_clause_list 195 %type<sn> /* handler_list */handler_clause finally_clause195 %type<sn> handler_list handler_clause finally_clause 196 196 197 197 // declarations … … 547 547 { $$ = new ExpressionNode( build_attrtype( build_varref( $1 ), $3 ) ); } 548 548 // | ANDAND IDENTIFIER // GCC, address of label 549 // { $$ = new ExpressionNode( new OperatorNode( OperKinds::LabelAddress ), new ExpressionNode( build_varref( $2 ) ); }549 // { $$ = new ExpressionNode( new OperatorNode( OperKinds::LabelAddress ), new ExpressionNode( build_varref( $2, true ) ); } 550 550 ; 551 551 … … 931 931 { $$ = new StatementNode( build_throw( $2 ) ); } 932 932 | THROWRESUME assignment_expression_opt ';' // handles reresume 933 { $$ = new StatementNode( build_ resume( $2 ) ); }933 { $$ = new StatementNode( build_throw( $2 ) ); } 934 934 | THROWRESUME assignment_expression_opt AT assignment_expression ';' // handles reresume 935 { $$ = new StatementNode( build_ resume_at( $2, $4) ); }935 { $$ = new StatementNode( build_throw( $2 ) ); } 936 936 ; 937 937 938 938 exception_statement: 939 TRY compound_statement handler_ clause939 TRY compound_statement handler_list 940 940 { $$ = new StatementNode( build_try( $2, $3, 0 ) ); } 941 941 | TRY compound_statement finally_clause 942 942 { $$ = new StatementNode( build_try( $2, 0, $3 ) ); } 943 | TRY compound_statement handler_ clausefinally_clause943 | TRY compound_statement handler_list finally_clause 944 944 { $$ = new StatementNode( build_try( $2, $3, $4 ) ); } 945 945 ; 946 946 947 //handler_list:948 //handler_clause949 //// ISO/IEC 9899:1999 Section 15.3(6 ) If present, a "..." handler shall be the last handler for its try block.950 //| CATCH '(' ELLIPSIS ')' compound_statement951 //{ $$ = new StatementNode( build_catch( 0, $5, true ) ); }952 //| handler_clause CATCH '(' ELLIPSIS ')' compound_statement953 //{ $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( 0, $6, true ) ) ); }954 //| CATCHRESUME '(' ELLIPSIS ')' compound_statement955 //{ $$ = new StatementNode( build_catch( 0, $5, true ) ); }956 //| handler_clause CATCHRESUME '(' ELLIPSIS ')' compound_statement957 //{ $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( 0, $6, true ) ) ); }958 //;947 handler_list: 948 handler_clause 949 // ISO/IEC 9899:1999 Section 15.3(6 ) If present, a "..." handler shall be the last handler for its try block. 950 | CATCH '(' ELLIPSIS ')' compound_statement 951 { $$ = new StatementNode( build_catch( 0, $5, true ) ); } 952 | handler_clause CATCH '(' ELLIPSIS ')' compound_statement 953 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( 0, $6, true ) ) ); } 954 | CATCHRESUME '(' ELLIPSIS ')' compound_statement 955 { $$ = new StatementNode( build_catch( 0, $5, true ) ); } 956 | handler_clause CATCHRESUME '(' ELLIPSIS ')' compound_statement 957 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( 0, $6, true ) ) ); } 958 ; 959 959 960 960 handler_clause: 961 961 CATCH '(' push push exception_declaration pop ')' compound_statement pop 962 { $$ = new StatementNode( build_catch( CatchStmt::Terminate, $5, nullptr, $8 ) ); }962 { $$ = new StatementNode( build_catch( $5, $8 ) ); } 963 963 | handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop 964 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( CatchStmt::Terminate, $6, nullptr, $9 ) ) ); }964 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $6, $9 ) ) ); } 965 965 | CATCHRESUME '(' push push exception_declaration pop ')' compound_statement pop 966 { $$ = new StatementNode( build_catch( CatchStmt::Resume, $5, nullptr, $8 ) ); }966 { $$ = new StatementNode( build_catch( $5, $8 ) ); } 967 967 | handler_clause CATCHRESUME '(' push push exception_declaration pop ')' compound_statement pop 968 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( CatchStmt::Resume, $6, nullptr, $9 ) ) ); }968 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $6, $9 ) ) ); } 969 969 ; 970 970
Note:
See TracChangeset
for help on using the changeset viewer.