-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVisitor.h
76 lines (73 loc) · 2.68 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
71
72
73
74
75
76
#ifndef _Visitor_H
#define _Visitor_H
class ASTFieldDecl;
class ASTVarDecl;
class ASTIdentifier;
class ASTProgram;
class ASTVarIdentifier;
class ASTArrayIdentifier;
class ASTMethodDecl;
class ASTTypeIdentifier;
class ASTStatement;
class ASTExpression;
class ASTBlockStatement;
class ASTAssignmentStatement;
class ASTMethodCall;
class ASTNormalMethod;
class ASTCalloutMethod;
class ASTCalloutArg;
class ASTStringCalloutArg;
class ASTExpressionCalloutArg;
class ASTIfStatement;
class ASTForStatement;
class ASTReturnStatement;
class ASTContinueStatement;
class ASTBreakStatement;
class ASTLocation;
class ASTVarLocation;
class ASTArrayLocation;
class ASTLiteralExpression;
class ASTIntegerLiteralExpression;
class ASTCharLiteralExpression;
class ASTTrueLiteralExpression;
class ASTFalseLiteralExpression;
class ASTBinaryOperationExpression;
class ASTUnaryOperationExpression;
class Visitor
{
public:
virtual void * visit(ASTProgram *) = 0;
virtual void * visit(ASTFieldDecl *) = 0;
virtual void * visit(ASTVarDecl *) = 0;
virtual void * visit(ASTIdentifier *) = 0;
virtual void * visit(ASTVarIdentifier *) = 0;
virtual void * visit(ASTArrayIdentifier *) = 0;
virtual void * visit(ASTMethodDecl *) = 0;
virtual void * visit(ASTTypeIdentifier *) = 0;
virtual void * visit(ASTStatement *) = 0;
virtual void * visit(ASTExpression *) = 0;
virtual void * visit(ASTBlockStatement *) = 0;
virtual void * visit(ASTAssignmentStatement *) = 0;
virtual void * visit(ASTMethodCall *) = 0;
virtual void * visit(ASTNormalMethod *) = 0;
virtual void * visit(ASTCalloutMethod *) = 0;
virtual void * visit(ASTCalloutArg *) = 0;
virtual void * visit(ASTStringCalloutArg *) = 0;
virtual void * visit(ASTExpressionCalloutArg *) = 0;
virtual void * visit(ASTIfStatement *) = 0;
virtual void * visit(ASTForStatement *) = 0;
virtual void * visit(ASTReturnStatement *) = 0;
virtual void * visit(ASTContinueStatement *) = 0;
virtual void * visit(ASTBreakStatement *) = 0;
virtual void * visit(ASTLocation *) = 0;
virtual void * visit(ASTVarLocation *) = 0;
virtual void * visit(ASTArrayLocation *) = 0;
virtual void * visit(ASTLiteralExpression *) = 0;
virtual void * visit(ASTIntegerLiteralExpression *) = 0;
virtual void * visit(ASTCharLiteralExpression *) = 0;
virtual void * visit(ASTTrueLiteralExpression *) = 0;
virtual void * visit(ASTFalseLiteralExpression *) = 0;
virtual void * visit(ASTBinaryOperationExpression *) = 0;
virtual void * visit(ASTUnaryOperationExpression *) = 0;
};
#endif