Changes in src/Parser/DeclarationNode.cc [faddbd8:fb114fa1]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
rfaddbd8 rfb114fa1 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08201613 // Update Count : 6 5112 // Last Modified On : Mon Sep 26 22:18:40 2016 13 // Update Count : 640 14 14 // 15 15 … … 56 56 extension( false ) { 57 57 58 //variable.name = nullptr;59 variable.tyClass = NoTypeClass;58 variable.name = nullptr; 59 variable.tyClass = DeclarationNode::Otype; 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:: linkageName( linkage ) << " ";116 os << LinkageSpec::toString( 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;288 285 newnode->variable.tyClass = tc; 289 newnode->variable. assertions = nullptr;286 newnode->variable.name = name; 290 287 return newnode; 291 288 } // DeclarationNode::newTypeParam … … 378 375 DeclarationNode * newnode = new DeclarationNode; 379 376 newnode->type = nullptr; 380 // newnode->attr.name = name; 381 newnode->name = name; 377 newnode->attr.name = name; 382 378 newnode->attr.expr = expr; 383 379 return newnode; … … 387 383 DeclarationNode * newnode = new DeclarationNode; 388 384 newnode->type = nullptr; 389 // newnode->attr.name = name; 390 newnode->name = name; 385 newnode->attr.name = name; 391 386 newnode->attr.type = type; 392 387 return newnode; … … 609 604 610 605 DeclarationNode * DeclarationNode::addAssertions( DeclarationNode * assertions ) { 611 if ( variable. tyClass != NoTypeClass) {606 if ( variable.name ) { 612 607 if ( variable.assertions ) { 613 608 variable.assertions->appendList( assertions ); … … 627 622 } // if 628 623 break; 624 // case TypeData::Variable: 625 // if ( variable.assertions ) { 626 // variable.assertions->appendList( assertions ); 627 // } else { 628 // variable.assertions = assertions; 629 // } // if 630 // break; 629 631 default: 630 632 assert( false ); … … 936 938 if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this ); 937 939 938 // if ( variable.name ) { 939 if ( variable.tyClass != NoTypeClass ) { 940 if ( variable.name ) { 940 941 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 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 ] ); 942 TypeDecl * ret = new TypeDecl( *variable.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.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() ); 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; 968 971 } // if 969 972
Note:
See TracChangeset
for help on using the changeset viewer.