2013-06-02 09:47:27 +02:00
|
|
|
/* The scully programming language.
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) Peter Dahlberg, Markus Hauschild and Florian Sattler, 2013.
|
|
|
|
|
* Licensed under the GNU GPL v2.
|
|
|
|
|
*/
|
|
|
|
|
|
2013-05-31 23:51:44 +02:00
|
|
|
#ifndef ASTVISITOR_H
|
|
|
|
|
#define ASTVISITOR_H
|
|
|
|
|
|
2013-06-01 01:10:55 +02:00
|
|
|
#include "AssignmentExpression.h"
|
2013-06-01 03:18:46 +02:00
|
|
|
#include "BinOpExpression.h"
|
2013-06-01 00:52:03 +02:00
|
|
|
#include "ConstantExpression.h"
|
2013-06-01 02:50:47 +02:00
|
|
|
#include "ExpressionStatement.h"
|
2013-06-01 03:02:14 +02:00
|
|
|
#include "ForStatement.h"
|
2013-06-01 03:10:16 +02:00
|
|
|
#include "FunctionCallExpression.h"
|
2013-06-01 02:50:47 +02:00
|
|
|
#include "FunctionDefinition.h"
|
2013-06-01 02:06:24 +02:00
|
|
|
#include "IfStatement.h"
|
2013-06-01 00:38:20 +02:00
|
|
|
#include "ParameterList.h"
|
2013-06-01 03:14:49 +02:00
|
|
|
#include "RandomForStatement.h"
|
2013-06-01 03:02:21 +02:00
|
|
|
#include "RandomIfStatement.h"
|
2013-06-01 02:50:47 +02:00
|
|
|
#include "ReturnStatement.h"
|
2013-06-01 02:27:01 +02:00
|
|
|
#include "Scope.h"
|
2013-06-01 02:16:34 +02:00
|
|
|
#include "StatementList.h"
|
2013-06-01 02:10:29 +02:00
|
|
|
#include "ValueList.h"
|
|
|
|
|
#include "VariableDefinition.h"
|
2013-06-01 15:48:28 +02:00
|
|
|
#include "LoadExpression.h"
|
2013-06-01 00:16:38 +02:00
|
|
|
|
|
|
|
|
|
2013-05-31 23:51:44 +02:00
|
|
|
class ASTVisitor {
|
|
|
|
|
public:
|
|
|
|
|
ASTVisitor();
|
|
|
|
|
virtual ~ASTVisitor();
|
2013-06-01 00:16:38 +02:00
|
|
|
|
2013-06-01 01:50:24 +02:00
|
|
|
virtual void visit(AssignmentExpression* e) = 0;
|
2013-06-01 03:18:46 +02:00
|
|
|
virtual void visit(BinOpExpression* e) = 0;
|
2013-06-01 01:50:24 +02:00
|
|
|
virtual void visit(ConstantExpression* e) = 0;
|
2013-06-01 02:45:47 +02:00
|
|
|
virtual void visit(ExpressionStatement* e) = 0;
|
2013-06-01 03:02:14 +02:00
|
|
|
virtual void visit(ForStatement* e) = 0;
|
2013-06-01 03:10:16 +02:00
|
|
|
virtual void visit(FunctionCallExpression* e) = 0;
|
2013-06-01 02:50:47 +02:00
|
|
|
virtual void visit(FunctionDefinition* e) = 0;
|
2013-06-01 02:10:29 +02:00
|
|
|
virtual void visit(IfStatement* e) = 0;
|
2013-06-01 00:38:20 +02:00
|
|
|
virtual void visit(ParameterList* e) = 0;
|
2013-06-01 03:14:49 +02:00
|
|
|
virtual void visit(RandomForStatement* e) = 0;
|
2013-06-01 03:02:21 +02:00
|
|
|
virtual void visit(RandomIfStatement* e) = 0;
|
2013-06-01 02:50:47 +02:00
|
|
|
virtual void visit(ReturnStatement* e) = 0;
|
|
|
|
|
virtual void visit(Scope* e) = 0;
|
|
|
|
|
virtual void visit(StatementList* e) = 0;
|
2013-06-01 02:10:29 +02:00
|
|
|
virtual void visit(ValueList* e) = 0;
|
2013-06-01 00:16:38 +02:00
|
|
|
virtual void visit(VariableDefinition* e) = 0;
|
2013-06-01 15:48:28 +02:00
|
|
|
virtual void visit(LoadExpression* e) = 0;
|
2013-05-31 23:51:44 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // ASTVISITOR_H
|