-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVisitor.h
74 lines (71 loc) · 2.21 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
#ifndef VIS_HEADER
#define VIS_HEADER
class FieldDecl;
class VarDecl;
class Identifier;
class ASTProgram;
class VarIdentifier;
class ArrIdentifier;
class MethodDecl;
class TypeIdentifier;
class Statement;
class Expression;
class BlockStatement;
class ArrayLocation;
class LitExpression;
class IntLitExpression;
class CharacterLitExpression;
class TrueLitExpression;
class AssignStatement;
class MethodCall;
class SmplMethod;
class CalloutMethod;
class CalloutArg;
class StringCalloutArg;
class ExpressionCalloutArg;
class IfStatement;
class ForStatement;
class RetStatement;
class ConStatement;
class BreakStatement;
class Location;
class VarLocation;
class FalseLitExpression;
class BinOpExpression;
class UnaryOpExpression;
class Visitor{
public:
virtual void * visit(VarIdentifier *) = 0;
virtual void * visit(ArrIdentifier *) = 0;
virtual void * visit(MethodDecl *) = 0;
virtual void * visit(TypeIdentifier *) = 0;
virtual void * visit(Statement *) = 0;
virtual void * visit(Expression *) = 0;
virtual void * visit(ASTProgram *) = 0;
virtual void * visit(FieldDecl *) = 0;
virtual void * visit(VarDecl *) = 0;
virtual void * visit(BlockStatement *) = 0;
virtual void * visit(AssignStatement *) = 0;
virtual void * visit(MethodCall *) = 0;
virtual void * visit(SmplMethod *) = 0;
virtual void * visit(CalloutMethod *) = 0;
virtual void * visit(CalloutArg *) = 0;
virtual void * visit(StringCalloutArg *) = 0;
virtual void * visit(ExpressionCalloutArg *) = 0;
virtual void * visit(IfStatement *) = 0;
virtual void * visit(ForStatement *) = 0;
virtual void * visit(RetStatement *) = 0;
virtual void * visit(ConStatement *) = 0;
virtual void * visit(BreakStatement *) = 0;
virtual void * visit(Location *) = 0;
virtual void * visit(VarLocation *) = 0;
virtual void * visit(ArrayLocation *) = 0;
virtual void * visit(LitExpression *) = 0;
virtual void * visit(IntLitExpression *) = 0;
virtual void * visit(CharacterLitExpression *) = 0;
virtual void * visit(TrueLitExpression *) = 0;
virtual void * visit(FalseLitExpression *) = 0;
virtual void * visit(BinOpExpression *) = 0;
virtual void * visit(UnaryOpExpression *) = 0;
};
#endif