Changes in src/Parser/DeclarationNode.cc [f135b50:374cb117]
- File:
-
- 1 edited
-
src/Parser/DeclarationNode.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
rf135b50 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.