Changeset 65197c2 for src/SynTree
- Timestamp:
- Dec 5, 2017, 2:17:17 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, stuck-waitfor-destruct, with_gc
- Children:
- 971d9f2, a85e44c, c13e8dc8
- Parents:
- 12d2dc8 (diff), 866f560 (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:
-
- 9 edited
-
Mutator.cc (modified) (1 diff)
-
Mutator.h (modified) (1 diff)
-
ReferenceToType.cc (modified) (2 diffs)
-
Statement.cc (modified) (1 diff)
-
Statement.h (modified) (1 diff)
-
SynTree.h (modified) (1 diff)
-
Type.h (modified) (3 diffs)
-
Visitor.cc (modified) (1 diff)
-
Visitor.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Mutator.cc
r12d2dc8 r65197c2 203 203 } 204 204 205 Statement * Mutator::mutate( WithStmt * withStmt ) { 206 mutateAll( withStmt->exprs, *this ); 207 withStmt->stmt = maybeMutate( withStmt->stmt, *this ); 208 return withStmt; 209 } 210 205 211 NullStmt * Mutator::mutate( NullStmt *nullStmt ) { 206 212 return nullStmt; -
src/SynTree/Mutator.h
r12d2dc8 r65197c2 50 50 virtual Statement * mutate( FinallyStmt * catchStmt ); 51 51 virtual Statement * mutate( WaitForStmt * waitforStmt ); 52 virtual Statement * mutate( WithStmt * withStmt ); 52 53 virtual NullStmt * mutate( NullStmt * nullStmt ); 53 54 virtual Statement * mutate( DeclStmt * declStmt ); -
src/SynTree/ReferenceToType.cc
r12d2dc8 r65197c2 70 70 bool StructInstType::isComplete() const { return baseStruct ? baseStruct->has_body() : false; } 71 71 72 AggregateDecl * StructInstType::getAggr() { return baseStruct; } 73 72 74 void StructInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const { 73 75 assert( baseStruct ); … … 101 103 102 104 bool UnionInstType::isComplete() const { return baseUnion ? baseUnion->has_body() : false; } 105 106 AggregateDecl * UnionInstType::getAggr() { return baseUnion; } 103 107 104 108 void UnionInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const { -
src/SynTree/Statement.cc
r12d2dc8 r65197c2 456 456 } 457 457 458 459 WithStmt::WithStmt( const std::list< Expression * > & exprs, Statement * stmt ) : Statement(), exprs( exprs ), stmt( stmt ) {} 460 WithStmt::WithStmt( const WithStmt & other ) : Statement( other ), stmt( maybeClone( other.stmt ) ) { 461 cloneAll( other.exprs, exprs ); 462 } 463 WithStmt::~WithStmt() { 464 deleteAll( exprs ); 465 delete stmt; 466 } 467 468 void WithStmt::print( std::ostream & os, Indenter indent ) const { 469 os << "With statement" << endl; 470 os << indent << "... with statement:" << endl << indent+1; 471 stmt->print( os, indent+1 ); 472 } 473 474 458 475 NullStmt::NullStmt( const std::list<Label> & labels ) : Statement( labels ) { 459 476 } -
src/SynTree/Statement.h
r12d2dc8 r65197c2 431 431 }; 432 432 433 class WithStmt : public Statement { 434 public: 435 std::list< Expression * > exprs; 436 Statement * stmt; 437 438 WithStmt( const std::list< Expression * > & exprs, Statement * stmt ); 439 WithStmt( const WithStmt & other ); 440 virtual ~WithStmt(); 441 442 virtual WithStmt * clone() const override { return new WithStmt( *this ); } 443 virtual void accept( Visitor & v ) override { v.visit( this ); } 444 virtual Statement * acceptMutator( Mutator & m ) override { return m.mutate( this ); } 445 virtual void print( std::ostream & os, Indenter indent = {} ) const override; 446 }; 447 433 448 434 449 // represents a declaration that occurs as part of a compound statement -
src/SynTree/SynTree.h
r12d2dc8 r65197c2 55 55 class FinallyStmt; 56 56 class WaitForStmt; 57 class WithStmt; 57 58 class NullStmt; 58 59 class DeclStmt; -
src/SynTree/Type.h
r12d2dc8 r65197c2 178 178 virtual bool isComplete() const { return true; } 179 179 180 virtual AggregateDecl * getAggr() { assertf( false, "Non-aggregate type: %s", toString( this ).c_str() ); } 181 180 182 virtual Type *clone() const = 0; 181 183 virtual void accept( Visitor & v ) = 0; … … 405 407 virtual bool isComplete() const override; 406 408 409 virtual AggregateDecl * getAggr() override; 410 407 411 /// Looks up the members of this struct named "name" and places them into "foundDecls". 408 412 /// Clones declarations into "foundDecls", caller responsible for freeing … … 436 440 437 441 virtual bool isComplete() const override; 442 443 virtual AggregateDecl * getAggr() override; 438 444 439 445 /// looks up the members of this union named "name" and places them into "foundDecls" -
src/SynTree/Visitor.cc
r12d2dc8 r65197c2 174 174 } 175 175 176 void Visitor::visit( __attribute__((unused)) NullStmt *nullStmt ) { 176 void Visitor::visit( WithStmt * withStmt ) { 177 acceptAll( withStmt->exprs, *this ); 178 maybeAccept( withStmt->stmt, *this ); 179 } 180 181 void Visitor::visit( NullStmt * ) { 177 182 } 178 183 -
src/SynTree/Visitor.h
r12d2dc8 r65197c2 52 52 virtual void visit( FinallyStmt * finallyStmt ); 53 53 virtual void visit( WaitForStmt * waitforStmt ); 54 virtual void visit( WithStmt * withStmt ); 54 55 virtual void visit( NullStmt * nullStmt ); 55 56 virtual void visit( DeclStmt * declStmt );
Note:
See TracChangeset
for help on using the changeset viewer.