|
1 | | -#ifndef STATICSCRIPT_AST_ASTVISITOR_H |
2 | | -#define STATICSCRIPT_AST_ASTVISITOR_H |
| 1 | +#pragma once |
3 | 2 |
|
4 | 3 | #include "AST/AST.h" |
5 | 4 |
|
6 | 5 | template<typename S, typename E> |
7 | 6 | class ASTVisitor { |
8 | 7 | public: |
9 | | - virtual SharedPtr<S> visit(SharedPtr<CompoundStmt> stmt) = 0; |
10 | | - virtual SharedPtr<S> visit(SharedPtr<ExprStmt> stmt) = 0; |
11 | | - virtual SharedPtr<S> visit(SharedPtr<VarDeclStmt> stmt) = 0; |
12 | | - virtual SharedPtr<S> visit(SharedPtr<FunctionDeclStmt> stmt) = 0; |
13 | | - virtual SharedPtr<S> visit(SharedPtr<IfStmt> stmt) = 0; |
14 | | - virtual SharedPtr<S> visit(SharedPtr<WhileStmt> stmt) = 0; |
15 | | - virtual SharedPtr<S> visit(SharedPtr<ForStmt> stmt) = 0; |
16 | | - virtual SharedPtr<S> visit(SharedPtr<ContinueStmt> stmt) = 0; |
17 | | - virtual SharedPtr<S> visit(SharedPtr<BreakStmt> stmt) = 0; |
18 | | - virtual SharedPtr<S> visit(SharedPtr<ReturnStmt> stmt) = 0; |
| 8 | + virtual SharedPtr<S> visit(SharedPtr<CompoundStmtNode> stmt) = 0; |
| 9 | + virtual SharedPtr<S> visit(SharedPtr<ExprStmtNode> stmt) = 0; |
| 10 | + virtual SharedPtr<S> visit(SharedPtr<VarDeclStmtNode> stmt) = 0; |
| 11 | + virtual SharedPtr<S> visit(SharedPtr<FunctionDeclStmtNode> stmt) = 0; |
| 12 | + virtual SharedPtr<S> visit(SharedPtr<IfStmtNode> stmt) = 0; |
| 13 | + virtual SharedPtr<S> visit(SharedPtr<WhileStmtNode> stmt) = 0; |
| 14 | + virtual SharedPtr<S> visit(SharedPtr<ForStmtNode> stmt) = 0; |
| 15 | + virtual SharedPtr<S> visit(SharedPtr<ContinueStmtNode> stmt) = 0; |
| 16 | + virtual SharedPtr<S> visit(SharedPtr<BreakStmtNode> stmt) = 0; |
| 17 | + virtual SharedPtr<S> visit(SharedPtr<ReturnStmtNode> stmt) = 0; |
19 | 18 |
|
20 | | - virtual SharedPtr<E> visit(SharedPtr<BooleanLiteralExpr> expr) = 0; |
21 | | - virtual SharedPtr<E> visit(SharedPtr<IntegerLiteralExpr> expr) = 0; |
22 | | - virtual SharedPtr<E> visit(SharedPtr<StringLiteralExpr> expr) = 0; |
23 | | - virtual SharedPtr<E> visit(SharedPtr<IdentifierExpr> expr) = 0; |
24 | | - virtual SharedPtr<E> visit(SharedPtr<CallExpr> expr) = 0; |
25 | | - virtual SharedPtr<E> visit(SharedPtr<UnaryOperatorExpr> expr) = 0; |
26 | | - virtual SharedPtr<E> visit(SharedPtr<BinaryOperatorExpr> expr) = 0; |
| 19 | + virtual SharedPtr<E> visit(SharedPtr<BooleanLiteralExprNode> expr) = 0; |
| 20 | + virtual SharedPtr<E> visit(SharedPtr<IntegerLiteralExprNode> expr) = 0; |
| 21 | + virtual SharedPtr<E> visit(SharedPtr<StringLiteralExprNode> expr) = 0; |
| 22 | + virtual SharedPtr<E> visit(SharedPtr<IdentifierExprNode> expr) = 0; |
| 23 | + virtual SharedPtr<E> visit(SharedPtr<CallExprNode> expr) = 0; |
| 24 | + virtual SharedPtr<E> visit(SharedPtr<UnaryOperatorExprNode> expr) = 0; |
| 25 | + virtual SharedPtr<E> visit(SharedPtr<BinaryOperatorExprNode> expr) = 0; |
27 | 26 | }; |
28 | | - |
29 | | -#endif // STATICSCRIPT_AST_ASTVISITOR_H |
0 commit comments