Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    recae5860 r401e61f  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun  1 17:59:57 2018
    13 // Update Count     : 3476
     12// Last Modified On : Mon Jun  4 22:22:04 2018
     13// Update Count     : 3492
    1414//
    1515
     
    10501050
    10511051iteration_statement:
    1052         WHILE '(' comma_expression ')' statement
    1053                 { $$ = new StatementNode( build_while( $3, $5 ) ); }
     1052        WHILE '(' push if_control_expression ')' statement pop
     1053                { $$ = new StatementNode( build_while( $4, $6 ) ); }
    10541054        | DO statement WHILE '(' comma_expression ')' ';'
    1055                 { $$ = new StatementNode( build_while( $5, $2, true ) ); }
     1055                { $$ = new StatementNode( build_do_while( $5, $2 ) ); }
    10561056        | FOR '(' push for_control_expression ')' statement pop
    10571057                { $$ = new StatementNode( build_for( $4, $6 ) ); }
     
    13311331        c_declaration ';'
    13321332        | cfa_declaration ';'                                                           // CFA
    1333         | static_assert
     1333        | static_assert                                                                         // C11
    13341334        ;
    13351335
     
    13371337        STATICASSERT '(' constant_expression ',' string_literal ')' ';' // C11
    13381338                { $$ = DeclarationNode::newStaticAssert( $3, $5 ); }
     1339        | STATICASSERT '(' constant_expression ')' ';'          // CFA
     1340                { $$ = DeclarationNode::newStaticAssert( $3, build_constantStr( *new string( "\"\"" ) ) ); }
    13391341
    13401342// C declaration syntax is notoriously confusing and error prone. Cforall provides its own type, variable and function
     
    18811883
    18821884field_declaration:
    1883         cfa_field_declaring_list ';'                                            // CFA, new style field declaration
     1885        type_specifier field_declaring_list ';'
     1886                { $$ = distAttr( $1, $2 ); }
     1887        | EXTENSION type_specifier field_declaring_list ';'     // GCC
     1888                { distExt( $3 ); $$ = distAttr( $2, $3 ); }             // mark all fields in list
     1889        | typedef_declaration ';'                                                       // CFA
     1890                { SemanticError( yylloc, "Typedef in aggregate is currently unimplemented." ); $$ = nullptr; }
     1891        | cfa_field_declaring_list ';'                                          // CFA, new style field declaration
    18841892        | EXTENSION cfa_field_declaring_list ';'                        // GCC
    1885                 {
    1886                         distExt( $2 );                                                          // mark all fields in list
    1887                         $$ = $2;
    1888                 }
    1889         | type_specifier field_declaring_list ';'
    1890                 {
    1891                         $$ = distAttr( $1, $2 ); }
    1892         | EXTENSION type_specifier field_declaring_list ';'     // GCC
    1893                 {
    1894                         distExt( $3 );                                                          // mark all fields in list
    1895                         $$ = distAttr( $2, $3 );
    1896                 }
    1897         | static_assert
     1893                { distExt( $2 ); $$ = $2; }                                             // mark all fields in list
     1894        | cfa_typedef_declaration ';'                                           // CFA
     1895                { SemanticError( yylloc, "Typedef in aggregate is currently unimplemented." ); $$ = nullptr; }
     1896        | static_assert                                                                         // C11
    18981897        ;
    18991898
Note: See TracChangeset for help on using the changeset viewer.