Changeset 87b5bf0 for src/SynTree
- Timestamp:
- Jun 29, 2016, 2:30:12 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- e64365c
- Parents:
- 7305915 (diff), 2fb2ad5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src/SynTree
- Files:
-
- 3 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Statement.cc
r7305915 r87b5bf0 87 87 Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) { 88 88 //actually this is a syntactic error signaled by the parser 89 if ( type == BranchStmt::Goto && target. size() == 0)89 if ( type == BranchStmt::Goto && target.empty() ) 90 90 throw SemanticError("goto without target"); 91 91 } -
src/SynTree/Statement.h
r7305915 r87b5bf0 22 22 #include "Common/SemanticError.h" 23 23 #include "Type.h" 24 #include "Label.h" 24 25 25 26 class Statement { -
src/SynTree/SynTree.h
r7305915 r87b5bf0 113 113 class Constant; 114 114 115 typedef std::string Label; 115 // typedef std::string Label; 116 class Label; 116 117 typedef unsigned int UniqueId; 117 118 -
src/SynTree/Visitor.cc
r7305915 r87b5bf0 39 39 } 40 40 41 void Visitor:: visit( AggregateDecl *aggregateDecl ) {41 void Visitor::handleAggregateDecl( AggregateDecl *aggregateDecl ) { 42 42 acceptAll( aggregateDecl->get_parameters(), *this ); 43 43 acceptAll( aggregateDecl->get_members(), *this ); … … 45 45 46 46 void Visitor::visit( StructDecl *aggregateDecl ) { 47 visit( static_cast< AggregateDecl* >( aggregateDecl ) );47 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 48 48 } 49 49 50 50 void Visitor::visit( UnionDecl *aggregateDecl ) { 51 visit( static_cast< AggregateDecl* >( aggregateDecl ) );51 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 52 52 } 53 53 54 54 void Visitor::visit( EnumDecl *aggregateDecl ) { 55 visit( static_cast< AggregateDecl* >( aggregateDecl ) );55 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 56 56 } 57 57 58 58 void Visitor::visit( TraitDecl *aggregateDecl ) { 59 visit( static_cast< AggregateDecl* >( aggregateDecl ) );60 } 61 62 void Visitor:: visit( NamedTypeDecl *typeDecl ) {59 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) ); 60 } 61 62 void Visitor::handleNamedTypeDecl( NamedTypeDecl *typeDecl ) { 63 63 acceptAll( typeDecl->get_parameters(), *this ); 64 64 acceptAll( typeDecl->get_assertions(), *this ); … … 67 67 68 68 void Visitor::visit( TypeDecl *typeDecl ) { 69 visit( static_cast< NamedTypeDecl* >( typeDecl ) );69 handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) ); 70 70 } 71 71 72 72 void Visitor::visit( TypedefDecl *typeDecl ) { 73 visit( static_cast< NamedTypeDecl* >( typeDecl ) );73 handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) ); 74 74 } 75 75 … … 330 330 } 331 331 332 void Visitor:: visit( ReferenceToType *aggregateUseType ) {332 void Visitor::handleReferenceToType( ReferenceToType *aggregateUseType ) { 333 333 acceptAll( aggregateUseType->get_forall(), *this ); 334 334 acceptAll( aggregateUseType->get_parameters(), *this ); … … 336 336 337 337 void Visitor::visit( StructInstType *aggregateUseType ) { 338 visit( static_cast< ReferenceToType * >( aggregateUseType ) );338 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 339 339 } 340 340 341 341 void Visitor::visit( UnionInstType *aggregateUseType ) { 342 visit( static_cast< ReferenceToType * >( aggregateUseType ) );342 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 343 343 } 344 344 345 345 void Visitor::visit( EnumInstType *aggregateUseType ) { 346 visit( static_cast< ReferenceToType * >( aggregateUseType ) );346 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 347 347 } 348 348 349 349 void Visitor::visit( TraitInstType *aggregateUseType ) { 350 visit( static_cast< ReferenceToType * >( aggregateUseType ) );350 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 351 351 acceptAll( aggregateUseType->get_members(), *this ); 352 352 } 353 353 354 354 void Visitor::visit( TypeInstType *aggregateUseType ) { 355 visit( static_cast< ReferenceToType * >( aggregateUseType ) );355 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) ); 356 356 } 357 357 -
src/SynTree/Visitor.h
r7305915 r87b5bf0 104 104 virtual void visit( Constant *constant ); 105 105 private: 106 virtual void visit( AggregateDecl *aggregateDecl );107 virtual void visit( NamedTypeDecl *typeDecl );108 virtual void visit( ReferenceToType *aggregateUseType );106 virtual void handleAggregateDecl( AggregateDecl *aggregateDecl ); 107 virtual void handleNamedTypeDecl( NamedTypeDecl *typeDecl ); 108 virtual void handleReferenceToType( ReferenceToType *aggregateUseType ); 109 109 }; 110 110 -
src/SynTree/module.mk
r7305915 r87b5bf0 46 46 SynTree/Visitor.cc \ 47 47 SynTree/Mutator.cc \ 48 SynTree/AddStmtVisitor.cc \ 48 49 SynTree/TypeSubstitution.cc \ 49 50 SynTree/Attribute.cc
Note:
See TracChangeset
for help on using the changeset viewer.