Changeset 44b4114 for src/SynTree
- Timestamp:
- Feb 14, 2018, 4:18:37 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, with_gc
- Children:
- f5883bd
- Parents:
- 490ff5c3
- git-author:
- Rob Schluntz <rschlunt@…> (02/14/18 16:17:36)
- git-committer:
- Rob Schluntz <rschlunt@…> (02/14/18 16:18:37)
- Location:
- src/SynTree
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.cc
r490ff5c3 r44b4114 710 710 } 711 711 712 DeletedExpr::DeletedExpr( Expression * expr, BaseSyntaxNode * deleteStmt ) : expr( expr ), deleteStmt( deleteStmt ) { 713 assert( expr->result ); 714 result = expr->result->clone(); 715 } 716 DeletedExpr::DeletedExpr( const DeletedExpr & other ) : Expression( other ), expr( maybeClone( other.expr ) ), deleteStmt( other.deleteStmt ) {} 717 DeletedExpr::~DeletedExpr() { 718 delete expr; 719 } 720 721 void DeletedExpr::print( std::ostream & os, Indenter indent ) const { 722 os << "Deleted Expression" << std::endl << indent+1; 723 expr->print( os, indent+1 ); 724 os << std::endl << indent+1 << "... deleted by: "; 725 deleteStmt->print( os, indent+1 ); 726 } 727 728 712 729 // Local Variables: // 713 730 // tab-width: 4 // -
src/SynTree/Expression.h
r490ff5c3 r44b4114 822 822 }; 823 823 824 /// expression that contains a deleted identifier - should never make it past the resolver. 825 class DeletedExpr : public Expression { 826 public: 827 Expression * expr; 828 BaseSyntaxNode * deleteStmt; 829 830 DeletedExpr( Expression * expr, BaseSyntaxNode * deleteStmt ); 831 DeletedExpr( const DeletedExpr & other ); 832 ~DeletedExpr(); 833 834 virtual DeletedExpr * clone() const { return new DeletedExpr( * this ); } 835 virtual void accept( Visitor & v ) { v.visit( this ); } 836 virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); } 837 virtual void print( std::ostream & os, Indenter indent = {} ) const; 838 }; 839 824 840 // Local Variables: // 825 841 // tab-width: 4 // -
src/SynTree/Mutator.h
r490ff5c3 r44b4114 55 55 virtual Statement * mutate( ImplicitCtorDtorStmt * impCtorDtorStmt ); 56 56 57 virtual Expression* mutate( ApplicationExpr * applicationExpr ); 58 virtual Expression* mutate( UntypedExpr * untypedExpr ); 59 virtual Expression* mutate( NameExpr * nameExpr ); 60 virtual Expression* mutate( AddressExpr * castExpr ); 61 virtual Expression* mutate( LabelAddressExpr * labAddressExpr ); 62 virtual Expression* mutate( CastExpr * castExpr ); 63 virtual Expression* mutate( VirtualCastExpr * castExpr ); 64 virtual Expression* mutate( UntypedMemberExpr * memberExpr ); 65 virtual Expression* mutate( MemberExpr * memberExpr ); 66 virtual Expression* mutate( VariableExpr * variableExpr ); 67 virtual Expression* mutate( ConstantExpr * constantExpr ); 68 virtual Expression* mutate( SizeofExpr * sizeofExpr ); 69 virtual Expression* mutate( AlignofExpr * alignofExpr ); 70 virtual Expression* mutate( UntypedOffsetofExpr * offsetofExpr ); 71 virtual Expression* mutate( OffsetofExpr * offsetofExpr ); 72 virtual Expression* mutate( OffsetPackExpr * offsetPackExpr ); 73 virtual Expression* mutate( AttrExpr * attrExpr ); 74 virtual Expression* mutate( LogicalExpr * logicalExpr ); 75 virtual Expression* mutate( ConditionalExpr * conditionalExpr ); 76 virtual Expression* mutate( CommaExpr * commaExpr ); 77 virtual Expression* mutate( TypeExpr * typeExpr ); 78 virtual Expression* mutate( AsmExpr * asmExpr ); 79 virtual Expression* mutate( ImplicitCopyCtorExpr * impCpCtorExpr ); 80 virtual Expression* mutate( ConstructorExpr * ctorExpr ); 81 virtual Expression* mutate( CompoundLiteralExpr * compLitExpr ); 82 virtual Expression* mutate( RangeExpr * rangeExpr ); 83 virtual Expression* mutate( UntypedTupleExpr * tupleExpr ); 84 virtual Expression* mutate( TupleExpr * tupleExpr ); 85 virtual Expression* mutate( TupleIndexExpr * tupleExpr ); 86 virtual Expression* mutate( TupleAssignExpr * assignExpr ); 87 virtual Expression* mutate( StmtExpr * stmtExpr ); 88 virtual Expression* mutate( UniqueExpr * uniqueExpr ); 89 virtual Expression* mutate( UntypedInitExpr * initExpr ); 90 virtual Expression* mutate( InitExpr * initExpr ); 57 virtual Expression * mutate( ApplicationExpr * applicationExpr ); 58 virtual Expression * mutate( UntypedExpr * untypedExpr ); 59 virtual Expression * mutate( NameExpr * nameExpr ); 60 virtual Expression * mutate( AddressExpr * castExpr ); 61 virtual Expression * mutate( LabelAddressExpr * labAddressExpr ); 62 virtual Expression * mutate( CastExpr * castExpr ); 63 virtual Expression * mutate( VirtualCastExpr * castExpr ); 64 virtual Expression * mutate( UntypedMemberExpr * memberExpr ); 65 virtual Expression * mutate( MemberExpr * memberExpr ); 66 virtual Expression * mutate( VariableExpr * variableExpr ); 67 virtual Expression * mutate( ConstantExpr * constantExpr ); 68 virtual Expression * mutate( SizeofExpr * sizeofExpr ); 69 virtual Expression * mutate( AlignofExpr * alignofExpr ); 70 virtual Expression * mutate( UntypedOffsetofExpr * offsetofExpr ); 71 virtual Expression * mutate( OffsetofExpr * offsetofExpr ); 72 virtual Expression * mutate( OffsetPackExpr * offsetPackExpr ); 73 virtual Expression * mutate( AttrExpr * attrExpr ); 74 virtual Expression * mutate( LogicalExpr * logicalExpr ); 75 virtual Expression * mutate( ConditionalExpr * conditionalExpr ); 76 virtual Expression * mutate( CommaExpr * commaExpr ); 77 virtual Expression * mutate( TypeExpr * typeExpr ); 78 virtual Expression * mutate( AsmExpr * asmExpr ); 79 virtual Expression * mutate( ImplicitCopyCtorExpr * impCpCtorExpr ); 80 virtual Expression * mutate( ConstructorExpr * ctorExpr ); 81 virtual Expression * mutate( CompoundLiteralExpr * compLitExpr ); 82 virtual Expression * mutate( RangeExpr * rangeExpr ); 83 virtual Expression * mutate( UntypedTupleExpr * tupleExpr ); 84 virtual Expression * mutate( TupleExpr * tupleExpr ); 85 virtual Expression * mutate( TupleIndexExpr * tupleExpr ); 86 virtual Expression * mutate( TupleAssignExpr * assignExpr ); 87 virtual Expression * mutate( StmtExpr * stmtExpr ); 88 virtual Expression * mutate( UniqueExpr * uniqueExpr ); 89 virtual Expression * mutate( UntypedInitExpr * initExpr ); 90 virtual Expression * mutate( InitExpr * initExpr ); 91 virtual Expression * mutate( DeletedExpr * delExpr ) = 0; 91 92 92 93 virtual Type * mutate( VoidType * basicType ); -
src/SynTree/Statement.cc
r490ff5c3 r44b4114 468 468 void WithStmt::print( std::ostream & os, Indenter indent ) const { 469 469 os << "With statement" << endl; 470 os << indent << "... with expressions: " << endl; 471 printAll( exprs, os, indent+1 ); 470 472 os << indent << "... with statement:" << endl << indent+1; 471 473 stmt->print( os, indent+1 ); -
src/SynTree/SynTree.h
r490ff5c3 r44b4114 97 97 class UntypedInitExpr; 98 98 class InitExpr; 99 class DeletedExpr; 99 100 100 101 class Type; -
src/SynTree/Visitor.h
r490ff5c3 r44b4114 91 91 virtual void visit( UntypedInitExpr * initExpr ); 92 92 virtual void visit( InitExpr * initExpr ); 93 virtual void visit( DeletedExpr * delExpr ) = 0; 93 94 94 95 virtual void visit( VoidType * basicType );
Note:
See TracChangeset
for help on using the changeset viewer.