Changeset 374cb117 for src/Parser/DeclarationNode.cc
- Timestamp:
- Apr 19, 2022, 3:53:53 PM (2 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- 2686bc7
- Parents:
- 75cd27b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r75cd27b r374cb117 253 253 } // DeclarationNode::newAggregate 254 254 255 DeclarationNode * DeclarationNode::newEnum( const string * name, DeclarationNode * constants, bool body , bool typed) {255 DeclarationNode * DeclarationNode::newEnum( const string * name, DeclarationNode * constants, bool body) { 256 256 DeclarationNode * newnode = new DeclarationNode; 257 257 newnode->type = new TypeData( TypeData::Enum ); … … 272 272 } // DeclarationNode::newName 273 273 274 DeclarationNode * DeclarationNode::newEnumConstant( const string * name, ExpressionNode * constant ) { // Marker274 DeclarationNode * DeclarationNode::newEnumConstant( const string * name, ExpressionNode * constant ) { 275 275 DeclarationNode * newnode = newName( name ); 276 276 newnode->enumeratorValue.reset( constant ); 277 277 return newnode; 278 278 } // DeclarationNode::newEnumConstant 279 280 DeclarationNode * DeclarationNode::newEnumValueGeneric( const string * name, InitializerNode * init ) { 281 if ( init ) { // list init {} or a singleInit 282 if ( init->get_expression() ) { // singleInit 283 return newEnumConstant( name, init->get_expression() ); 284 } else { // TODO: listInit 285 DeclarationNode * newnode = newName( name ); 286 newnode->initializer = init; 287 return newnode; 288 } // if 289 } else { 290 return newName( name ); // Not explicitly inited enum value; 291 } // if 292 } // DeclarationNode::newEnumGeneric 279 293 280 294 DeclarationNode * DeclarationNode::newFromTypedef( const string * name ) {
Note: See TracChangeset
for help on using the changeset viewer.