From 36ecd180e0502ab27fc09b08a5949f87f05ebcd0 Mon Sep 17 00:00:00 2001 From: Markus Hauschild Date: Sat, 1 Jun 2013 12:59:58 +0200 Subject: [PATCH] PrintVisitor is finished --- src/AST/PrintVisitor.cpp | 47 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/src/AST/PrintVisitor.cpp b/src/AST/PrintVisitor.cpp index f87a1df..7ff7ae8 100644 --- a/src/AST/PrintVisitor.cpp +++ b/src/AST/PrintVisitor.cpp @@ -101,15 +101,46 @@ void PrintVisitor::visit(IfStatement* e) { } void PrintVisitor::visit(ParameterList* e) { - // TODO implement + println("ParameterList"); + level_++; + auto params = e->getParameters(); + auto iter = params.begin(); + auto end = params.end(); + for (; iter != end; ++iter) { + Parameter& p = (*iter); + std::stringstream ss; + ss << "Name: " << p.second; + println(ss.str()); + ss.str(""); + ss.clear(); + ss << "Type: " << p.first->getName(); + println(ss.str()); + } + level_--; } void PrintVisitor::visit(RandomForStatement* e) { - // TODO implement + println("RandomForStatement"); + level_++; + println("Init:"); + e->getInit()->accept(this); + println("Probability:"); + e->getProb()->accept(this); + println("Step:"); + e->getStep()->accept(this); + println("Stmt:"); + e->getStmt()->accept(this); + level_--; } void PrintVisitor::visit(RandomIfStatement* e) { - // TODO implement + println("RandomIfStatement"); + level_++; + println("Probability:"); + e->getProb()->accept(this); + println("Stmt:"); + e->getStmt()->accept(this); + level_--; } void PrintVisitor::visit(ReturnStatement* e) { @@ -139,7 +170,15 @@ void PrintVisitor::visit(StatementList* e) { } void PrintVisitor::visit(ValueList* e) { - // TODO implement + println("ValueList"); + level_++; + auto values = e->getValues(); + auto iter = values.begin(); + auto end = values.end(); + for(; iter != end; ++iter) { + (*iter)->accept(this); + } + level_--; } void PrintVisitor::visit(VariableDefinition* e) {