blob: 42702bbf28df5f129f1b45f745236f3051fc82fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#pragma once
#include "types-inlines.h"
class ExprWalker
{
public:
ExprWalker() {};
void walk(const_tree e);
private:
virtual void _walk_pre(const_tree e) {};
void _walk(const_tree e);
virtual void _walk_post(const_tree e) {};
inline void _walk_leaf(const_tree e, const enum tree_code c);
inline void _walk_op_n(const_tree e, unsigned n);
inline void _walk_op_0(const_tree e, const enum tree_code c);
inline void _walk_op_1(const_tree e, const enum tree_code c);
#define ExprWalkerFuncDecl(code) \
virtual void _walk_ ## code ## _pre(const_tree e) {}; \
void walk_ ## code (const_tree e); \
void _walk_ ## code (const_tree e); \
virtual void _walk_ ## code ## _post(const_tree e) {}
ExprWalkerFuncDecl(CONSTRUCTOR);
ExprWalkerFuncDecl(INTEGER_CST);
ExprWalkerFuncDecl(REAL_CST);
ExprWalkerFuncDecl(STRING_CST);
ExprWalkerFuncDecl(BIT_FIELD_REF);
ExprWalkerFuncDecl(ARRAY_REF);
ExprWalkerFuncDecl(MEM_REF);
ExprWalkerFuncDecl(COMPONENT_REF);
ExprWalkerFuncDecl(SSA_NAME);
ExprWalkerFuncDecl(ADDR_EXPR);
ExprWalkerFuncDecl(VIEW_CONVERT_EXPR);
ExprWalkerFuncDecl(IMAGPART_EXPR);
ExprWalkerFuncDecl(FIELD_DECL);
ExprWalkerFuncDecl(VAR_DECL);
ExprWalkerFuncDecl(RESULT_DECL);
ExprWalkerFuncDecl(PARM_DECL);
ExprWalkerFuncDecl(FUNCTION_DECL);
ExprWalkerFuncDecl(LE_EXPR);
ExprWalkerFuncDecl(EQ_EXPR);
ExprWalkerFuncDecl(GT_EXPR);
};
|