Changes in src/Parser/DeclarationNode.cc [fb114fa1:faddbd8]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
rfb114fa1 rfaddbd8 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 26 22:18:40201613 // Update Count : 6 4012 // Last Modified On : Mon Oct 3 18:03:08 2016 13 // Update Count : 651 14 14 // 15 15 … … 56 56 extension( false ) { 57 57 58 variable.name = nullptr;59 variable.tyClass = DeclarationNode::Otype;58 // variable.name = nullptr; 59 variable.tyClass = NoTypeClass; 60 60 variable.assertions = nullptr; 61 61 62 attr.name = nullptr;62 // attr.name = nullptr; 63 63 attr.expr = nullptr; 64 64 attr.type = nullptr; … … 66 66 67 67 DeclarationNode::~DeclarationNode() { 68 delete attr.name;68 // delete attr.name; 69 69 delete attr.expr; 70 70 delete attr.type; 71 71 72 delete variable.name;72 // delete variable.name; 73 73 delete variable.assertions; 74 74 … … 91 91 newnode->linkage = linkage; 92 92 93 newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;93 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; 94 94 newnode->variable.tyClass = variable.tyClass; 95 95 newnode->variable.assertions = maybeClone( variable.assertions ); 96 96 97 newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr;97 // newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr; 98 98 newnode->attr.expr = maybeClone( attr.expr ); 99 99 newnode->attr.type = maybeClone( attr.type ); … … 114 114 115 115 if ( linkage != LinkageSpec::Cforall ) { 116 os << LinkageSpec:: toString( linkage ) << " ";116 os << LinkageSpec::linkageName( linkage ) << " "; 117 117 } // if 118 118 … … 283 283 DeclarationNode * newnode = new DeclarationNode; 284 284 newnode->type = nullptr; 285 assert( ! newnode->name ); 286 // newnode->variable.name = name; 287 newnode->name = name; 285 288 newnode->variable.tyClass = tc; 286 newnode->variable. name = name;289 newnode->variable.assertions = nullptr; 287 290 return newnode; 288 291 } // DeclarationNode::newTypeParam … … 375 378 DeclarationNode * newnode = new DeclarationNode; 376 379 newnode->type = nullptr; 377 newnode->attr.name = name; 380 // newnode->attr.name = name; 381 newnode->name = name; 378 382 newnode->attr.expr = expr; 379 383 return newnode; … … 383 387 DeclarationNode * newnode = new DeclarationNode; 384 388 newnode->type = nullptr; 385 newnode->attr.name = name; 389 // newnode->attr.name = name; 390 newnode->name = name; 386 391 newnode->attr.type = type; 387 392 return newnode; … … 604 609 605 610 DeclarationNode * DeclarationNode::addAssertions( DeclarationNode * assertions ) { 606 if ( variable. name) {611 if ( variable.tyClass != NoTypeClass ) { 607 612 if ( variable.assertions ) { 608 613 variable.assertions->appendList( assertions ); … … 622 627 } // if 623 628 break; 624 // case TypeData::Variable:625 // if ( variable.assertions ) {626 // variable.assertions->appendList( assertions );627 // } else {628 // variable.assertions = assertions;629 // } // if630 // break;631 629 default: 632 630 assert( false ); … … 938 936 if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this ); 939 937 940 if ( variable.name ) { 938 // if ( variable.name ) { 939 if ( variable.tyClass != NoTypeClass ) { 941 940 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 942 TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 941 // TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 942 TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 943 943 buildList( variable.assertions, ret->get_assertions() ); 944 944 return ret; … … 960 960 assert( type ); 961 961 962 if ( attr.name ) { 963 AttrType * ret; 964 if ( attr.expr ) { 965 ret = new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() ); 966 } else { 967 assert( attr.type ); 968 ret = new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() ); 969 } // if 970 return ret; 962 if ( attr.expr ) { 963 // return new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() ); 964 return new AttrType( buildQualifiers( type ), *name, attr.expr->build() ); 965 } else if ( attr.type ) { 966 // return new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() ); 967 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType() ); 971 968 } // if 972 969
Note:
See TracChangeset
for help on using the changeset viewer.