More PrintVisitor stuff

This commit is contained in:
Markus Hauschild
2013-06-01 12:23:18 +02:00
parent 39af436dad
commit ee8c9fbc36

View File

@@ -11,7 +11,13 @@ PrintVisitor::~PrintVisitor() {
} }
void PrintVisitor::visit(AssignmentExpression* e) { void PrintVisitor::visit(AssignmentExpression* e) {
// TODO implement println("AssignmentExpression");
level_++;
std::stringstream ss;
ss << e->getId() << " = ";
println(ss.str());
e->getExpr()->accept(this);
level_--;
} }
void PrintVisitor::visit(BinOpExpression* e) { void PrintVisitor::visit(BinOpExpression* e) {
@@ -23,7 +29,10 @@ void PrintVisitor::visit(ConstantExpression* e) {
} }
void PrintVisitor::visit(ExpressionStatement* e) { void PrintVisitor::visit(ExpressionStatement* e) {
println("ExpressionStatement");
level_++;
// TODO implement // TODO implement
level_--;
} }
void PrintVisitor::visit(ForStatement* e) { void PrintVisitor::visit(ForStatement* e) {
@@ -74,7 +83,14 @@ void PrintVisitor::visit(Scope* e) {
void PrintVisitor::visit(StatementList* e) { void PrintVisitor::visit(StatementList* e) {
println("StatementList"); println("StatementList");
// TODO implement level_++;
auto statements = e->getStatements();
auto iter = statements.begin();
auto end = statements.end();
for (; iter != end; ++iter) {
(*iter)->accept(this);
}
level_--;
} }
void PrintVisitor::visit(ValueList* e) { void PrintVisitor::visit(ValueList* e) {