From ee8c9fbc364bc4660799c35af39c13468d44d72d Mon Sep 17 00:00:00 2001 From: Markus Hauschild Date: Sat, 1 Jun 2013 12:23:18 +0200 Subject: [PATCH] More PrintVisitor stuff --- src/AST/PrintVisitor.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/AST/PrintVisitor.cpp b/src/AST/PrintVisitor.cpp index 9938836..275becc 100644 --- a/src/AST/PrintVisitor.cpp +++ b/src/AST/PrintVisitor.cpp @@ -11,7 +11,13 @@ PrintVisitor::~PrintVisitor() { } 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) { @@ -23,7 +29,10 @@ void PrintVisitor::visit(ConstantExpression* e) { } void PrintVisitor::visit(ExpressionStatement* e) { + println("ExpressionStatement"); + level_++; // TODO implement + level_--; } void PrintVisitor::visit(ForStatement* e) { @@ -74,7 +83,14 @@ void PrintVisitor::visit(Scope* e) { void PrintVisitor::visit(StatementList* e) { 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) {