Branch data Line data Source code
1 : : // $Id: Traverse.h 6219 2008-10-01 05:39:07Z vern $
2 : : //
3 : : // See the file "COPYING" in the main distribution directory for copyright.
4 : :
5 : : #ifndef traverse_h
6 : : #define traverse_h
7 : :
8 : : #include "Obj.h"
9 : : #include "Stmt.h"
10 : : #include "Expr.h"
11 : : #include "ID.h"
12 : : #include "Scope.h"
13 : :
14 : : #include "TraverseTypes.h"
15 : :
16 : : class TraversalCallback {
17 : : public:
18 : 0 : TraversalCallback() { current_scope = 0; }
19 [ # # ][ # # ]: 0 : virtual ~TraversalCallback() {}
[ # # ]
20 : :
21 : 0 : virtual TraversalCode PreFunction(const Func*) { return TC_CONTINUE; }
22 : 0 : virtual TraversalCode PostFunction(const Func*) { return TC_CONTINUE; }
23 : :
24 : 0 : virtual TraversalCode PreStmt(const Stmt*) { return TC_CONTINUE; }
25 : 0 : virtual TraversalCode PostStmt(const Stmt*) { return TC_CONTINUE; }
26 : :
27 : 0 : virtual TraversalCode PreExpr(const Expr*) { return TC_CONTINUE; }
28 : 0 : virtual TraversalCode PostExpr(const Expr*) { return TC_CONTINUE; }
29 : :
30 : 0 : virtual TraversalCode PreID(const ID*) { return TC_CONTINUE; }
31 : 0 : virtual TraversalCode PostID(const ID*) { return TC_CONTINUE; }
32 : :
33 : 0 : virtual TraversalCode PreTypedef(const ID*) { return TC_CONTINUE; }
34 : 0 : virtual TraversalCode PostTypedef(const ID*) { return TC_CONTINUE; }
35 : :
36 : 0 : virtual TraversalCode PreDecl(const ID*) { return TC_CONTINUE; }
37 : 0 : virtual TraversalCode PostDecl(const ID*) { return TC_CONTINUE; }
38 : :
39 : : Scope* current_scope;
40 : : };
41 : :
42 : : TraversalCode traverse_all(TraversalCallback* cb);
43 : :
44 : : #endif
|