Ignore:
Timestamp:
May 22, 2018, 9:26:14 AM (4 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, with_gc
Children:
3d2ae8d, cac8a6e
Parents:
21bdce2
Message:

simplify TypedefTable?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    r21bdce2 r2f0a0678  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 21 21:44:01 2018
    13 // Update Count     : 3350
     12// Last Modified On : Tue May 22 08:41:57 2018
     13// Update Count     : 3353
    1414//
    1515
     
    14191419        TYPEDEF cfa_variable_specifier
    14201420                {
    1421                         typedefTable.addToEnclosingScope( *$2->name, TypedefTable::TD );
     1421                        typedefTable.addToEnclosingScope( *$2->name, TYPEDEFname );
    14221422                        $$ = $2->addTypedef();
    14231423                }
    14241424        | TYPEDEF cfa_function_specifier
    14251425                {
    1426                         typedefTable.addToEnclosingScope( *$2->name, TypedefTable::TD );
     1426                        typedefTable.addToEnclosingScope( *$2->name, TYPEDEFname );
    14271427                        $$ = $2->addTypedef();
    14281428                }
    14291429        | cfa_typedef_declaration pop ',' push no_attr_identifier
    14301430                {
    1431                         typedefTable.addToEnclosingScope( *$5, TypedefTable::TD );
     1431                        typedefTable.addToEnclosingScope( *$5, TYPEDEFname );
    14321432                        $$ = $1->appendList( $1->cloneType( $5 ) );
    14331433                }
     
    14401440        TYPEDEF type_specifier declarator
    14411441                {
    1442                         typedefTable.addToEnclosingScope( *$3->name, TypedefTable::TD );
     1442                        typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname );
    14431443                        $$ = $3->addType( $2 )->addTypedef();
    14441444                }
    14451445        | typedef_declaration pop ',' push declarator
    14461446                {
    1447                         typedefTable.addToEnclosingScope( *$5->name, TypedefTable::TD );
     1447                        typedefTable.addToEnclosingScope( *$5->name, TYPEDEFname );
    14481448                        $$ = $1->appendList( $1->cloneBaseType( $5 )->addTypedef() );
    14491449                }
    14501450        | type_qualifier_list TYPEDEF type_specifier declarator // remaining OBSOLESCENT (see 2 )
    14511451                {
    1452                         typedefTable.addToEnclosingScope( *$4->name, TypedefTable::TD );
     1452                        typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname );
    14531453                        $$ = $4->addType( $3 )->addQualifiers( $1 )->addTypedef();
    14541454                }
    14551455        | type_specifier TYPEDEF declarator
    14561456                {
    1457                         typedefTable.addToEnclosingScope( *$3->name, TypedefTable::TD );
     1457                        typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname );
    14581458                        $$ = $3->addType( $1 )->addTypedef();
    14591459                }
    14601460        | type_specifier TYPEDEF type_qualifier_list declarator
    14611461                {
    1462                         typedefTable.addToEnclosingScope( *$4->name, TypedefTable::TD );
     1462                        typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname );
    14631463                        $$ = $4->addQualifiers( $1 )->addTypedef()->addType( $1 );
    14641464                }
     
    14911491//       declarator asm_name_opt initializer_opt
    14921492//              {
    1493 //                      typedefTable.addToEnclosingScope( TypedefTable::ID );
     1493//                      typedefTable.addToEnclosingScope( IDENTIFIER );
    14941494//                      $$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 );
    14951495//              }
    14961496//      | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt
    14971497//              {
    1498 //                      typedefTable.addToEnclosingScope( TypedefTable::ID );
     1498//                      typedefTable.addToEnclosingScope( IDENTIFIER );
    14991499//                      $$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) );
    15001500//              }
     
    18121812                {
    18131813                        typedefTable.makeTypedef( *$3 );                        // create typedef
    1814                         if ( forall ) typedefTable.changeKind( *$3, TypedefTable::TG ); // possibly update
     1814                        if ( forall ) typedefTable.changeKind( *$3, TYPEGENname ); // possibly update
    18151815                        forall = false;                                                         // reset
    18161816                }
     
    18261826                {
    18271827                        typedefTable.makeTypedef( *$3 );
    1828                         if ( forall ) typedefTable.changeKind( *$3, TypedefTable::TG ); // possibly update
     1828                        if ( forall ) typedefTable.changeKind( *$3, TYPEGENname ); // possibly update
    18291829                        forall = false;                                                         // reset
    18301830                        $$ = DeclarationNode::newAggregate( $1, $3, nullptr, nullptr, false )->addQualifiers( $2 );
     
    21872187type_parameter:                                                                                 // CFA
    21882188        type_class no_attr_identifier_or_type_name
    2189                 { typedefTable.addToEnclosingScope( *$2, TypedefTable::TD ); }
     2189                { typedefTable.addToEnclosingScope( *$2, TYPEDEFname ); }
    21902190          type_initializer_opt assertion_list_opt
    21912191                { $$ = DeclarationNode::newTypeParam( $1, $2 )->addTypeInitializer( $4 )->addAssertions( $5 ); }
     
    22562256        no_attr_identifier_or_type_name
    22572257                {
    2258                         typedefTable.addToEnclosingScope( *$1, TypedefTable::TD );
     2258                        typedefTable.addToEnclosingScope( *$1, TYPEDEFname );
    22592259                        $$ = DeclarationNode::newTypeDecl( $1, 0 );
    22602260                }
    22612261        | no_attr_identifier_or_type_name '(' push type_parameter_list pop ')'
    22622262                {
    2263                         typedefTable.addToEnclosingScope( *$1, TypedefTable::TG );
     2263                        typedefTable.addToEnclosingScope( *$1, TYPEGENname );
    22642264                        $$ = DeclarationNode::newTypeDecl( $1, $4 );
    22652265                }
     
    27312731paren_type:
    27322732        typedef
    2733                 { // hide type name by variable name
    2734                         typedefTable.addToEnclosingScope( *$1->name, TypedefTable::ID );
    2735                 }
     2733                // hide type name in enclosing scope by variable name
     2734                { typedefTable.addToEnclosingScope( *$1->name, IDENTIFIER ); }
    27362735        | '(' paren_type ')'
    27372736                { $$ = $2; }
Note: See TracChangeset for help on using the changeset viewer.