Changeset 62c6cfa for src/Parser


Ignore:
Timestamp:
Sep 23, 2023, 10:50:18 PM (2 years ago)
Author:
JiadaL <j82liang@…>
Branches:
master
Children:
c7616dd
Parents:
deda7e6
Message:

Revert "Fix designator value in enumerated array and implemented enumerated array with inlined enume declaration"

This reverts commit c1e66d966aadf6846330871033458d4a398bd576.

Location:
src/Parser
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    rdeda7e6 r62c6cfa  
    394394        return newnode->addQualifiers( qualifiers );
    395395} // DeclarationNode::newArray
    396 
    397 DeclarationNode * DeclarationNode::newInlineEnumeratedArray( DeclarationNode * enumDecl, DeclarationNode * qualifiers ) {
    398         DeclarationNode * newnode = new DeclarationNode;
    399         newnode->type = new TypeData( TypeData::Array );
    400         newnode->type->array.isStatic = false;
    401         newnode->type->array.isVarLen = false;
    402 
    403         if ( enumDecl ) {
    404                 newnode->type->declType = enumDecl->type;
    405                 enumDecl->type = nullptr;
    406                 delete enumDecl;
    407         } // if
    408        
    409         return newnode->addQualifiers( qualifiers );
    410 }
    411396
    412397DeclarationNode * DeclarationNode::newVarArray( DeclarationNode * qualifiers ) {
  • src/Parser/DeclarationNode.h

    rdeda7e6 r62c6cfa  
    6666        static DeclarationNode * newPointer( DeclarationNode * qualifiers, OperKinds kind );
    6767        static DeclarationNode * newArray( ExpressionNode * size, DeclarationNode * qualifiers, bool isStatic );
    68         static DeclarationNode * newInlineEnumeratedArray( DeclarationNode * enumDecl, DeclarationNode * qualifiers );
    6968        static DeclarationNode * newVarArray( DeclarationNode * qualifiers );
    7069        static DeclarationNode * newBitfield( ExpressionNode * size );
  • src/Parser/TypeData.cc

    rdeda7e6 r62c6cfa  
    10211021                );
    10221022        } // if
    1023         if ( td->declType) {
    1024                 at->declaredType = buildEnum( td->declType, std::vector<ast::ptr<ast::Attribute>>(), ast::Linkage::Cforall );
    1025         }
    10261023        return at;
    10271024} // buildArray
  • src/Parser/TypeData.h

    rdeda7e6 r62c6cfa  
    8585        Kind kind;
    8686        TypeData * base;
    87         TypeData * declType;
    8887        DeclarationNode::BasicType basictype = DeclarationNode::NoBasicType;
    8988        DeclarationNode::ComplexType complextype = DeclarationNode::NoComplexType;
  • src/Parser/parser.yy

    rdeda7e6 r62c6cfa  
    38553855        | '[' push array_type_list pop ']'                                      // CFA
    38563856                { $$ = DeclarationNode::newArray( $3, nullptr, false ); }
    3857         | '[' push INLINE enum_type_nobody pop']'
    3858                 {       
    3859                         $$ = DeclarationNode::newInlineEnumeratedArray( $4, nullptr );
    3860                 }
    38613857        | multi_array_dimension
    38623858        ;
Note: See TracChangeset for help on using the changeset viewer.