Files
scully/inc/AST/PrintVisitor.h

43 lines
1.1 KiB
C
Raw Normal View History

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-06-01 03:33:38 +02:00
#ifndef PRINTVISITOR_H
#define PRINTVISITOR_H
#include "ASTVisitor.h"
2013-06-01 03:41:43 +02:00
#include <string>
2013-06-01 03:33:38 +02:00
class PrintVisitor : public ASTVisitor {
public:
PrintVisitor();
virtual ~PrintVisitor();
virtual void visit(AssignmentExpression* e);
virtual void visit(BinOpExpression* e);
virtual void visit(ConstantExpression* e);
virtual void visit(ExpressionStatement* e);
virtual void visit(ForStatement* e);
virtual void visit(FunctionCallExpression* e);
virtual void visit(FunctionDefinition* e);
virtual void visit(IfStatement* e);
virtual void visit(ParameterList* e);
virtual void visit(RandomForStatement* e);
virtual void visit(RandomIfStatement* e);
virtual void visit(ReturnStatement* e);
virtual void visit(Scope* e);
virtual void visit(StatementList* e);
virtual void visit(ValueList* e);
virtual void visit(VariableDefinition* e);
2013-06-01 15:48:28 +02:00
virtual void visit(LoadExpression* e);
2013-06-01 03:41:43 +02:00
private:
int level_;
void indent();
void print(const std::string& s);
void println(const std::string& s);
2013-06-01 03:33:38 +02:00
};
#endif // PRINTVISITOR_H