-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvisitor.h
70 lines (65 loc) · 2.13 KB
/
visitor.h
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef VISITOR_H__
#define VISITOR_H__
#include "ast.h"
class IfStmt;
class WhileStmt;
class ForStmt;
class DoWhileStmt;
class LabelStmt;
class CaseStmt;
class SwitchStmt;
class ReturnStmt;
class BreakStmt;
class CompoundDecl;
class VarDef;
class FuncDecl;
class Block;
class UnaryOpExpr;
class BinaryOpExpr;
class ConditionExpr;
class FuncCallExpr;
class MemberExpr;
class ArrayRefExpr;
class VarExpr;
class CastExpr;
class LiteralExpr;
class CompoundDef;
class TypeAlias;
class EnumDef;
class FuncDef;
class ASTRoot;
class Visitor
{
public:
virtual void visit(IfStmt*) { assert(false); }
virtual void visit(WhileStmt*) { assert(false); }
virtual void visit(ForStmt*) { assert(false); }
virtual void visit(DoWhileStmt*) { assert(false); }
virtual void visit(LabelStmt*) { assert(false); }
virtual void visit(CaseStmt*) { assert(false); }
virtual void visit(SwitchStmt*) { assert(false); }
virtual void visit(ReturnStmt*) { assert(false); }
virtual void visit(BreakStmt*) { assert(false); }
virtual void visit(CompoundDecl*) { assert(false); }
virtual void visit(VarDef*) { assert(false); }
virtual void visit(FuncDecl*) { assert(false); }
virtual void visit(Block*) { assert(false); }
virtual void visit(UnaryOpExpr*) { assert(false); }
virtual void visit(BinaryOpExpr*) { assert(false); }
virtual void visit(ConditionExpr*) { assert(false); }
virtual void visit(FuncCallExpr*) { assert(false); }
virtual void visit(MemberExpr*) { assert(false); }
virtual void visit(ArrayRefExpr*) { assert(false); }
virtual void visit(VarExpr*) { assert(false); }
virtual void visit(CastExpr*) { assert(false); }
virtual void visit(LiteralExpr*) { assert(false); }
virtual void visit(CompoundDef*) { assert(false); }
virtual void visit(TypeAlias*) { assert(false); }
virtual void visit(EnumDef*) { assert(false); }
virtual void visit(FuncDef*) { assert(false); }
virtual void visit(ASTRoot*) { assert(false); }
virtual void visit(SizeofExpr*) { assert(false); }
virtual void visit(EmptyExpr*) { assert(false); }
virtual ~Visitor() = default;
};
#endif //VISITOR_H__