Changeset a16a7ec for src


Ignore:
Timestamp:
Nov 26, 2017, 12:29:49 PM (6 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
8a78dd3, c029f4d
Parents:
a7caf3d
Message:

unimplemented feature errors, parse _Static_assert, add forall namespace, formatting/comments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    ra7caf3d ra16a7ec  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Nov 20 09:45:36 2017
    13 // Update Count     : 2945
     12// Last Modified On : Sun Nov 26 11:36:36 2017
     13// Update Count     : 2969
    1414//
    1515
     
    345345%type<en> type_list
    346346
    347 %type<decl> type_qualifier type_qualifier_name type_qualifier_list_opt type_qualifier_list
     347%type<decl> type_qualifier type_qualifier_name forall type_qualifier_list_opt type_qualifier_list
    348348%type<decl> type_specifier type_specifier_nobody
    349349
     
    379379//   `---'                                              matches start of TYPEGENname '('
    380380// Must be:
    381 // Foo( int ) ( *fp )( int );
     381//   Foo( int ) ( *fp )( int );
    382382
    383383// Order of these lines matters (low-to-high precedence).
     
    10581058with_statement:
    10591059        WITH '(' tuple_expression_list ')' statement
    1060                 { $$ = nullptr; }                                                               // FIX ME
     1060                { throw SemanticError("With clause is currently unimplemented."); $$ = nullptr; } // FIX ME
    10611061        ;
    10621062
     
    10641064mutex_statement:
    10651065        MUTEX '(' argument_expression_list ')' statement
    1066                 { $$ = nullptr; }                                                               // FIX ME
     1066                { throw SemanticError("Mutex statement is currently unimplemented."); $$ = nullptr; } // FIX ME
    10671067        ;
    10681068
     
    12801280        c_declaration pop ';'
    12811281        | cfa_declaration pop ';'                                                       // CFA
     1282        | STATICASSERT '(' constant_expression ',' string_literal ')' ';' // C11
     1283                { throw SemanticError("Static assert is currently unimplemented."); $$ = nullptr; }     // FIX ME
    12821284        ;
    12831285
     
    15871589        | ATOMIC
    15881590                { $$ = DeclarationNode::newTypeQualifier( Type::Atomic ); }
    1589         | FORALL '('
     1591        | forall
     1592        ;
     1593
     1594forall:
     1595        FORALL '('
    15901596                {
    15911597                        typedefTable.enterScope();
     
    23742380                        $$ = $2;
    23752381                }
     2382        | forall '{' external_definition_list '}'                       // CFA, namespace
    23762383        ;
    23772384
     
    23992406with_clause_opt:
    24002407        // empty
    2401                 { $$ = nullptr; }                                                               // FIX ME
     2408                { $$ = nullptr; }
    24022409        | WITH '(' tuple_expression_list ')'
    2403                 { $$ = nullptr; }                                                               // FIX ME
     2410                { throw SemanticError("With clause is currently unimplemented."); $$ = nullptr; } // FIX ME
    24042411        ;
    24052412
     
    24182425                        $$ = $2->addFunctionBody( $4 )->addType( $1 );
    24192426                }
     2427                // handles default int return type, OBSOLESCENT (see 1)
    24202428        | type_qualifier_list function_declarator with_clause_opt compound_statement
    24212429                {
     
    24242432                        $$ = $2->addFunctionBody( $4 )->addQualifiers( $1 );
    24252433                }
     2434                // handles default int return type, OBSOLESCENT (see 1)
    24262435        | declaration_qualifier_list function_declarator with_clause_opt compound_statement
    24272436                {
     
    24302439                        $$ = $2->addFunctionBody( $4 )->addQualifiers( $1 );
    24312440                }
     2441                // handles default int return type, OBSOLESCENT (see 1)
    24322442        | declaration_qualifier_list type_qualifier_list function_declarator with_clause_opt compound_statement
    24332443                {
     
    24452455                        $$ = $2->addOldDeclList( $3 )->addFunctionBody( $5 )->addType( $1 );
    24462456                }
     2457                // handles default int return type, OBSOLESCENT (see 1)
    24472458        | type_qualifier_list KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
    24482459                {
     
    24512462                        $$ = $2->addOldDeclList( $3 )->addFunctionBody( $5 )->addQualifiers( $1 );
    24522463                }
    2453 
    2454                 // Old-style K&R function definition with "implicit int" type_specifier, OBSOLESCENT (see 4)
     2464                // handles default int return type, OBSOLESCENT (see 1)
    24552465        | declaration_qualifier_list KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
    24562466                {
     
    24592469                        $$ = $2->addOldDeclList( $3 )->addFunctionBody( $5 )->addQualifiers( $1 );
    24602470                }
     2471                // handles default int return type, OBSOLESCENT (see 1)
    24612472        | declaration_qualifier_list type_qualifier_list KR_function_declarator KR_declaration_list_opt with_clause_opt compound_statement
    24622473                {
Note: See TracChangeset for help on using the changeset viewer.