Changeset 2b7bf59 for src/SynTree/Mutator.h
- Timestamp:
- Sep 27, 2017, 3:50:09 PM (7 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 7c3f3be
- Parents:
- a139c11
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Mutator.h
ra139c11 r2b7bf59 25 25 virtual ~Mutator(); 26 26 public: 27 virtual DeclarationWithType * mutate( ObjectDecl *objectDecl );28 virtual DeclarationWithType * mutate( FunctionDecl *functionDecl );29 virtual Declaration * mutate( StructDecl *aggregateDecl );30 virtual Declaration * mutate( UnionDecl *aggregateDecl );31 virtual Declaration * mutate( EnumDecl *aggregateDecl );32 virtual Declaration * mutate( TraitDecl *aggregateDecl );33 virtual Declaration * mutate( TypeDecl *typeDecl );34 virtual Declaration * mutate( TypedefDecl *typeDecl );35 virtual AsmDecl * mutate( AsmDecl *asmDecl );27 virtual DeclarationWithType * mutate( ObjectDecl * objectDecl ); 28 virtual DeclarationWithType * mutate( FunctionDecl * functionDecl ); 29 virtual Declaration * mutate( StructDecl * aggregateDecl ); 30 virtual Declaration * mutate( UnionDecl * aggregateDecl ); 31 virtual Declaration * mutate( EnumDecl * aggregateDecl ); 32 virtual Declaration * mutate( TraitDecl * aggregateDecl ); 33 virtual Declaration * mutate( TypeDecl * typeDecl ); 34 virtual Declaration * mutate( TypedefDecl * typeDecl ); 35 virtual AsmDecl * mutate( AsmDecl * asmDecl ); 36 36 37 virtual CompoundStmt * mutate( CompoundStmt *compoundStmt );38 virtual Statement * mutate( ExprStmt *exprStmt );39 virtual Statement * mutate( AsmStmt *asmStmt );40 virtual Statement * mutate( IfStmt *ifStmt );41 virtual Statement * mutate( WhileStmt *whileStmt );42 virtual Statement * mutate( ForStmt *forStmt );43 virtual Statement * mutate( SwitchStmt *switchStmt );44 virtual Statement * mutate( CaseStmt *caseStmt );45 virtual Statement * mutate( BranchStmt *branchStmt );46 virtual Statement * mutate( ReturnStmt *returnStmt );47 virtual Statement * mutate( ThrowStmt *throwStmt );48 virtual Statement * mutate( TryStmt *tryStmt );49 virtual Statement * mutate( CatchStmt *catchStmt );50 virtual Statement * mutate( FinallyStmt *catchStmt );51 virtual Statement * mutate( WaitForStmt *waitforStmt );52 virtual NullStmt * mutate( NullStmt *nullStmt );53 virtual Statement * mutate( DeclStmt *declStmt );54 virtual Statement * mutate( ImplicitCtorDtorStmt *impCtorDtorStmt );37 virtual CompoundStmt * mutate( CompoundStmt * compoundStmt ); 38 virtual Statement * mutate( ExprStmt * exprStmt ); 39 virtual Statement * mutate( AsmStmt * asmStmt ); 40 virtual Statement * mutate( IfStmt * ifStmt ); 41 virtual Statement * mutate( WhileStmt * whileStmt ); 42 virtual Statement * mutate( ForStmt * forStmt ); 43 virtual Statement * mutate( SwitchStmt * switchStmt ); 44 virtual Statement * mutate( CaseStmt * caseStmt ); 45 virtual Statement * mutate( BranchStmt * branchStmt ); 46 virtual Statement * mutate( ReturnStmt * returnStmt ); 47 virtual Statement * mutate( ThrowStmt * throwStmt ); 48 virtual Statement * mutate( TryStmt * tryStmt ); 49 virtual Statement * mutate( CatchStmt * catchStmt ); 50 virtual Statement * mutate( FinallyStmt * catchStmt ); 51 virtual Statement * mutate( WaitForStmt * waitforStmt ); 52 virtual NullStmt * mutate( NullStmt * nullStmt ); 53 virtual Statement * mutate( DeclStmt * declStmt ); 54 virtual Statement * mutate( ImplicitCtorDtorStmt * impCtorDtorStmt ); 55 55 56 virtual Expression* mutate( ApplicationExpr * applicationExpr );57 virtual Expression* mutate( UntypedExpr * untypedExpr );58 virtual Expression* mutate( NameExpr * nameExpr );59 virtual Expression* mutate( AddressExpr * castExpr );60 virtual Expression* mutate( LabelAddressExpr * labAddressExpr );61 virtual Expression* mutate( CastExpr * castExpr );62 virtual Expression* mutate( VirtualCastExpr * castExpr );63 virtual Expression* mutate( UntypedMemberExpr * memberExpr );64 virtual Expression* mutate( MemberExpr * memberExpr );65 virtual Expression* mutate( VariableExpr * variableExpr );66 virtual Expression* mutate( ConstantExpr * constantExpr );67 virtual Expression* mutate( SizeofExpr * sizeofExpr );68 virtual Expression* mutate( AlignofExpr * alignofExpr );69 virtual Expression* mutate( UntypedOffsetofExpr * offsetofExpr );70 virtual Expression* mutate( OffsetofExpr * offsetofExpr );71 virtual Expression* mutate( OffsetPackExpr * offsetPackExpr );72 virtual Expression* mutate( AttrExpr * attrExpr );73 virtual Expression* mutate( LogicalExpr * logicalExpr );74 virtual Expression* mutate( ConditionalExpr * conditionalExpr );75 virtual Expression* mutate( CommaExpr * commaExpr );76 virtual Expression* mutate( TypeExpr * typeExpr );77 virtual Expression* mutate( AsmExpr * asmExpr );78 virtual Expression* mutate( ImplicitCopyCtorExpr * impCpCtorExpr );79 virtual Expression* mutate( ConstructorExpr * ctorExpr );80 virtual Expression* mutate( CompoundLiteralExpr * compLitExpr );81 virtual Expression* mutate( RangeExpr * rangeExpr );82 virtual Expression* mutate( UntypedTupleExpr * tupleExpr );83 virtual Expression* mutate( TupleExpr * tupleExpr );84 virtual Expression* mutate( TupleIndexExpr * tupleExpr );85 virtual Expression* mutate( TupleAssignExpr * assignExpr );86 virtual Expression* mutate( StmtExpr * stmtExpr );87 virtual Expression* mutate( UniqueExpr * uniqueExpr );88 virtual Expression* mutate( UntypedInitExpr * initExpr );89 virtual Expression* mutate( InitExpr * initExpr );56 virtual Expression* mutate( ApplicationExpr * applicationExpr ); 57 virtual Expression* mutate( UntypedExpr * untypedExpr ); 58 virtual Expression* mutate( NameExpr * nameExpr ); 59 virtual Expression* mutate( AddressExpr * castExpr ); 60 virtual Expression* mutate( LabelAddressExpr * labAddressExpr ); 61 virtual Expression* mutate( CastExpr * castExpr ); 62 virtual Expression* mutate( VirtualCastExpr * castExpr ); 63 virtual Expression* mutate( UntypedMemberExpr * memberExpr ); 64 virtual Expression* mutate( MemberExpr * memberExpr ); 65 virtual Expression* mutate( VariableExpr * variableExpr ); 66 virtual Expression* mutate( ConstantExpr * constantExpr ); 67 virtual Expression* mutate( SizeofExpr * sizeofExpr ); 68 virtual Expression* mutate( AlignofExpr * alignofExpr ); 69 virtual Expression* mutate( UntypedOffsetofExpr * offsetofExpr ); 70 virtual Expression* mutate( OffsetofExpr * offsetofExpr ); 71 virtual Expression* mutate( OffsetPackExpr * offsetPackExpr ); 72 virtual Expression* mutate( AttrExpr * attrExpr ); 73 virtual Expression* mutate( LogicalExpr * logicalExpr ); 74 virtual Expression* mutate( ConditionalExpr * conditionalExpr ); 75 virtual Expression* mutate( CommaExpr * commaExpr ); 76 virtual Expression* mutate( TypeExpr * typeExpr ); 77 virtual Expression* mutate( AsmExpr * asmExpr ); 78 virtual Expression* mutate( ImplicitCopyCtorExpr * impCpCtorExpr ); 79 virtual Expression* mutate( ConstructorExpr * ctorExpr ); 80 virtual Expression* mutate( CompoundLiteralExpr * compLitExpr ); 81 virtual Expression* mutate( RangeExpr * rangeExpr ); 82 virtual Expression* mutate( UntypedTupleExpr * tupleExpr ); 83 virtual Expression* mutate( TupleExpr * tupleExpr ); 84 virtual Expression* mutate( TupleIndexExpr * tupleExpr ); 85 virtual Expression* mutate( TupleAssignExpr * assignExpr ); 86 virtual Expression* mutate( StmtExpr * stmtExpr ); 87 virtual Expression* mutate( UniqueExpr * uniqueExpr ); 88 virtual Expression* mutate( UntypedInitExpr * initExpr ); 89 virtual Expression* mutate( InitExpr * initExpr ); 90 90 91 virtual Type * mutate( VoidType *basicType );92 virtual Type * mutate( BasicType *basicType );93 virtual Type * mutate( PointerType *pointerType );94 virtual Type * mutate( ArrayType *arrayType );95 virtual Type * mutate( ReferenceType *refType );96 virtual Type * mutate( FunctionType *functionType );97 virtual Type * mutate( StructInstType *aggregateUseType );98 virtual Type * mutate( UnionInstType *aggregateUseType );99 virtual Type * mutate( EnumInstType *aggregateUseType );100 virtual Type * mutate( TraitInstType *aggregateUseType );101 virtual Type * mutate( TypeInstType *aggregateUseType );102 virtual Type * mutate( TupleType *tupleType );103 virtual Type * mutate( TypeofType *typeofType );104 virtual Type * mutate( AttrType *attrType );105 virtual Type * mutate( VarArgsType *varArgsType );106 virtual Type * mutate( ZeroType *zeroType );107 virtual Type * mutate( OneType *oneType );91 virtual Type * mutate( VoidType * basicType ); 92 virtual Type * mutate( BasicType * basicType ); 93 virtual Type * mutate( PointerType * pointerType ); 94 virtual Type * mutate( ArrayType * arrayType ); 95 virtual Type * mutate( ReferenceType * refType ); 96 virtual Type * mutate( FunctionType * functionType ); 97 virtual Type * mutate( StructInstType * aggregateUseType ); 98 virtual Type * mutate( UnionInstType * aggregateUseType ); 99 virtual Type * mutate( EnumInstType * aggregateUseType ); 100 virtual Type * mutate( TraitInstType * aggregateUseType ); 101 virtual Type * mutate( TypeInstType * aggregateUseType ); 102 virtual Type * mutate( TupleType * tupleType ); 103 virtual Type * mutate( TypeofType * typeofType ); 104 virtual Type * mutate( AttrType * attrType ); 105 virtual Type * mutate( VarArgsType * varArgsType ); 106 virtual Type * mutate( ZeroType * zeroType ); 107 virtual Type * mutate( OneType * oneType ); 108 108 109 virtual Designation * mutate( Designation *designation );110 virtual Initializer * mutate( SingleInit *singleInit );111 virtual Initializer * mutate( ListInit *listInit );112 virtual Initializer * mutate( ConstructorInit *ctorInit );109 virtual Designation * mutate( Designation * designation ); 110 virtual Initializer * mutate( SingleInit * singleInit ); 111 virtual Initializer * mutate( ListInit * listInit ); 112 virtual Initializer * mutate( ConstructorInit * ctorInit ); 113 113 114 virtual Subrange * mutate( Subrange *subrange );114 virtual Subrange * mutate( Subrange * subrange ); 115 115 116 virtual Constant *mutate( Constant *constant ); 116 virtual Constant * mutate( Constant * constant ); 117 118 virtual Attribute * mutate( Attribute * attribute ); 117 119 private: 118 virtual Declaration * handleAggregateDecl(AggregateDecl *aggregateDecl );119 virtual Declaration * handleNamedTypeDecl(NamedTypeDecl *typeDecl );120 virtual Type * handleReferenceToType(ReferenceToType *aggregateUseType );120 virtual Declaration * handleAggregateDecl(AggregateDecl * aggregateDecl ); 121 virtual Declaration * handleNamedTypeDecl(NamedTypeDecl * typeDecl ); 122 virtual Type * handleReferenceToType(ReferenceToType * aggregateUseType ); 121 123 }; 122 124
Note: See TracChangeset
for help on using the changeset viewer.