Changeset cfaf9be for src/SynTree/Visitor.h
- Timestamp:
- Feb 27, 2018, 5:50:22 PM (6 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:
- 4b1be68
- Parents:
- 86e84e4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Visitor.h
r86e84e4 rcfaf9be 27 27 // of the given syntax node, but performs no other action. 28 28 29 virtual void visit( ObjectDecl * objectDecl ) ;30 virtual void visit( FunctionDecl * functionDecl ) ;31 virtual void visit( StructDecl * aggregateDecl ) ;32 virtual void visit( UnionDecl * aggregateDecl ) ;33 virtual void visit( EnumDecl * aggregateDecl ) ;34 virtual void visit( TraitDecl * aggregateDecl ) ;35 virtual void visit( TypeDecl * typeDecl ) ;36 virtual void visit( TypedefDecl * typeDecl ) ;37 virtual void visit( AsmDecl * asmDecl ) ;29 virtual void visit( ObjectDecl * objectDecl ) = 0; 30 virtual void visit( FunctionDecl * functionDecl ) = 0; 31 virtual void visit( StructDecl * aggregateDecl ) = 0; 32 virtual void visit( UnionDecl * aggregateDecl ) = 0; 33 virtual void visit( EnumDecl * aggregateDecl ) = 0; 34 virtual void visit( TraitDecl * aggregateDecl ) = 0; 35 virtual void visit( TypeDecl * typeDecl ) = 0; 36 virtual void visit( TypedefDecl * typeDecl ) = 0; 37 virtual void visit( AsmDecl * asmDecl ) = 0; 38 38 39 virtual void visit( CompoundStmt * compoundStmt ) ;40 virtual void visit( ExprStmt * exprStmt ) ;41 virtual void visit( AsmStmt * asmStmt ) ;42 virtual void visit( IfStmt * ifStmt ) ;43 virtual void visit( WhileStmt * whileStmt ) ;44 virtual void visit( ForStmt * forStmt ) ;45 virtual void visit( SwitchStmt * switchStmt ) ;46 virtual void visit( CaseStmt * caseStmt ) ;47 virtual void visit( BranchStmt * branchStmt ) ;48 virtual void visit( ReturnStmt * returnStmt ) ;49 virtual void visit( ThrowStmt * throwStmt ) ;50 virtual void visit( TryStmt * tryStmt ) ;51 virtual void visit( CatchStmt * catchStmt ) ;52 virtual void visit( FinallyStmt * finallyStmt ) ;53 virtual void visit( WaitForStmt * waitforStmt ) ;54 virtual void visit( WithStmt * withStmt ) ;55 virtual void visit( NullStmt * nullStmt ) ;56 virtual void visit( DeclStmt * declStmt ) ;57 virtual void visit( ImplicitCtorDtorStmt * impCtorDtorStmt ) ;39 virtual void visit( CompoundStmt * compoundStmt ) = 0; 40 virtual void visit( ExprStmt * exprStmt ) = 0; 41 virtual void visit( AsmStmt * asmStmt ) = 0; 42 virtual void visit( IfStmt * ifStmt ) = 0; 43 virtual void visit( WhileStmt * whileStmt ) = 0; 44 virtual void visit( ForStmt * forStmt ) = 0; 45 virtual void visit( SwitchStmt * switchStmt ) = 0; 46 virtual void visit( CaseStmt * caseStmt ) = 0; 47 virtual void visit( BranchStmt * branchStmt ) = 0; 48 virtual void visit( ReturnStmt * returnStmt ) = 0; 49 virtual void visit( ThrowStmt * throwStmt ) = 0; 50 virtual void visit( TryStmt * tryStmt ) = 0; 51 virtual void visit( CatchStmt * catchStmt ) = 0; 52 virtual void visit( FinallyStmt * finallyStmt ) = 0; 53 virtual void visit( WaitForStmt * waitforStmt ) = 0; 54 virtual void visit( WithStmt * withStmt ) = 0; 55 virtual void visit( NullStmt * nullStmt ) = 0; 56 virtual void visit( DeclStmt * declStmt ) = 0; 57 virtual void visit( ImplicitCtorDtorStmt * impCtorDtorStmt ) = 0; 58 58 59 virtual void visit( ApplicationExpr * applicationExpr ) ;60 virtual void visit( UntypedExpr * untypedExpr ) ;61 virtual void visit( NameExpr * nameExpr ) ;62 virtual void visit( CastExpr * castExpr ) ;63 virtual void visit( VirtualCastExpr * castExpr ) ;64 virtual void visit( AddressExpr * addressExpr ) ;65 virtual void visit( LabelAddressExpr * labAddressExpr ) ;66 virtual void visit( UntypedMemberExpr * memberExpr ) ;67 virtual void visit( MemberExpr * memberExpr ) ;68 virtual void visit( VariableExpr * variableExpr ) ;69 virtual void visit( ConstantExpr * constantExpr ) ;70 virtual void visit( SizeofExpr * sizeofExpr ) ;71 virtual void visit( AlignofExpr * alignofExpr ) ;72 virtual void visit( UntypedOffsetofExpr * offsetofExpr ) ;73 virtual void visit( OffsetofExpr * offsetofExpr ) ;74 virtual void visit( OffsetPackExpr * offsetPackExpr ) ;75 virtual void visit( AttrExpr * attrExpr ) ;76 virtual void visit( LogicalExpr * logicalExpr ) ;77 virtual void visit( ConditionalExpr * conditionalExpr ) ;78 virtual void visit( CommaExpr * commaExpr ) ;79 virtual void visit( TypeExpr * typeExpr ) ;80 virtual void visit( AsmExpr * asmExpr ) ;81 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ) ;82 virtual void visit( ConstructorExpr * ctorExpr ) ;83 virtual void visit( CompoundLiteralExpr * compLitExpr ) ;84 virtual void visit( RangeExpr * rangeExpr ) ;85 virtual void visit( UntypedTupleExpr * tupleExpr ) ;86 virtual void visit( TupleExpr * tupleExpr ) ;87 virtual void visit( TupleIndexExpr * tupleExpr ) ;88 virtual void visit( TupleAssignExpr * assignExpr ) ;89 virtual void visit( StmtExpr * stmtExpr ) ;90 virtual void visit( UniqueExpr * uniqueExpr ) ;91 virtual void visit( UntypedInitExpr * initExpr ) ;92 virtual void visit( InitExpr * initExpr ) ;59 virtual void visit( ApplicationExpr * applicationExpr ) = 0; 60 virtual void visit( UntypedExpr * untypedExpr ) = 0; 61 virtual void visit( NameExpr * nameExpr ) = 0; 62 virtual void visit( CastExpr * castExpr ) = 0; 63 virtual void visit( VirtualCastExpr * castExpr ) = 0; 64 virtual void visit( AddressExpr * addressExpr ) = 0; 65 virtual void visit( LabelAddressExpr * labAddressExpr ) = 0; 66 virtual void visit( UntypedMemberExpr * memberExpr ) = 0; 67 virtual void visit( MemberExpr * memberExpr ) = 0; 68 virtual void visit( VariableExpr * variableExpr ) = 0; 69 virtual void visit( ConstantExpr * constantExpr ) = 0; 70 virtual void visit( SizeofExpr * sizeofExpr ) = 0; 71 virtual void visit( AlignofExpr * alignofExpr ) = 0; 72 virtual void visit( UntypedOffsetofExpr * offsetofExpr ) = 0; 73 virtual void visit( OffsetofExpr * offsetofExpr ) = 0; 74 virtual void visit( OffsetPackExpr * offsetPackExpr ) = 0; 75 virtual void visit( AttrExpr * attrExpr ) = 0; 76 virtual void visit( LogicalExpr * logicalExpr ) = 0; 77 virtual void visit( ConditionalExpr * conditionalExpr ) = 0; 78 virtual void visit( CommaExpr * commaExpr ) = 0; 79 virtual void visit( TypeExpr * typeExpr ) = 0; 80 virtual void visit( AsmExpr * asmExpr ) = 0; 81 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ) = 0; 82 virtual void visit( ConstructorExpr * ctorExpr ) = 0; 83 virtual void visit( CompoundLiteralExpr * compLitExpr ) = 0; 84 virtual void visit( RangeExpr * rangeExpr ) = 0; 85 virtual void visit( UntypedTupleExpr * tupleExpr ) = 0; 86 virtual void visit( TupleExpr * tupleExpr ) = 0; 87 virtual void visit( TupleIndexExpr * tupleExpr ) = 0; 88 virtual void visit( TupleAssignExpr * assignExpr ) = 0; 89 virtual void visit( StmtExpr * stmtExpr ) = 0; 90 virtual void visit( UniqueExpr * uniqueExpr ) = 0; 91 virtual void visit( UntypedInitExpr * initExpr ) = 0; 92 virtual void visit( InitExpr * initExpr ) = 0; 93 93 virtual void visit( DeletedExpr * delExpr ) = 0; 94 94 95 virtual void visit( VoidType * basicType ) ;96 virtual void visit( BasicType * basicType ) ;97 virtual void visit( PointerType * pointerType ) ;98 virtual void visit( ArrayType * arrayType ) ;99 virtual void visit( ReferenceType * refType ) ;100 virtual void visit( FunctionType * functionType ) ;101 virtual void visit( StructInstType * aggregateUseType ) ;102 virtual void visit( UnionInstType * aggregateUseType ) ;103 virtual void visit( EnumInstType * aggregateUseType ) ;104 virtual void visit( TraitInstType * aggregateUseType ) ;105 virtual void visit( TypeInstType * aggregateUseType ) ;106 virtual void visit( TupleType * tupleType ) ;107 virtual void visit( TypeofType * typeofType ) ;108 virtual void visit( AttrType * attrType ) ;109 virtual void visit( VarArgsType * varArgsType ) ;110 virtual void visit( ZeroType * zeroType ) ;111 virtual void visit( OneType * oneType ) ;95 virtual void visit( VoidType * basicType ) = 0; 96 virtual void visit( BasicType * basicType ) = 0; 97 virtual void visit( PointerType * pointerType ) = 0; 98 virtual void visit( ArrayType * arrayType ) = 0; 99 virtual void visit( ReferenceType * refType ) = 0; 100 virtual void visit( FunctionType * functionType ) = 0; 101 virtual void visit( StructInstType * aggregateUseType ) = 0; 102 virtual void visit( UnionInstType * aggregateUseType ) = 0; 103 virtual void visit( EnumInstType * aggregateUseType ) = 0; 104 virtual void visit( TraitInstType * aggregateUseType ) = 0; 105 virtual void visit( TypeInstType * aggregateUseType ) = 0; 106 virtual void visit( TupleType * tupleType ) = 0; 107 virtual void visit( TypeofType * typeofType ) = 0; 108 virtual void visit( AttrType * attrType ) = 0; 109 virtual void visit( VarArgsType * varArgsType ) = 0; 110 virtual void visit( ZeroType * zeroType ) = 0; 111 virtual void visit( OneType * oneType ) = 0; 112 112 113 virtual void visit( Designation * designation ) ;114 virtual void visit( SingleInit * singleInit ) ;115 virtual void visit( ListInit * listInit ) ;116 virtual void visit( ConstructorInit * ctorInit ) ;113 virtual void visit( Designation * designation ) = 0; 114 virtual void visit( SingleInit * singleInit ) = 0; 115 virtual void visit( ListInit * listInit ) = 0; 116 virtual void visit( ConstructorInit * ctorInit ) = 0; 117 117 118 virtual void visit( Subrange * subrange ) ;118 virtual void visit( Subrange * subrange ) = 0; 119 119 120 virtual void visit( Constant * constant ) ;120 virtual void visit( Constant * constant ) = 0; 121 121 122 virtual void visit( Attribute * attribute ); 123 private: 124 virtual void handleAggregateDecl( AggregateDecl *aggregateDecl ); 125 virtual void handleNamedTypeDecl( NamedTypeDecl *typeDecl ); 126 virtual void handleReferenceToType( ReferenceToType *aggregateUseType ); 122 virtual void visit( Attribute * attribute ) = 0; 127 123 }; 128 124
Note: See TracChangeset
for help on using the changeset viewer.