From 0f3972b0eab9864c484650d152403c0705773116 Mon Sep 17 00:00:00 2001 From: Markus Hauschild Date: Sat, 1 Jun 2013 12:32:31 +0200 Subject: [PATCH] More more more ... --- src/AST/PrintVisitor.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/AST/PrintVisitor.cpp b/src/AST/PrintVisitor.cpp index 275becc..0a0e221 100644 --- a/src/AST/PrintVisitor.cpp +++ b/src/AST/PrintVisitor.cpp @@ -21,17 +21,29 @@ void PrintVisitor::visit(AssignmentExpression* e) { } void PrintVisitor::visit(BinOpExpression* e) { - // TODO implement + println("BinOpExpression"); + level_++; + std::stringstream ss; + ss << "Operator: " << e->getOp(); + println(ss.str()); + println("LHS:"); + e->getLeftExp()->accept(this); + println("RHS:"); + e->getRightExp()->accept(this); + level_--; } void PrintVisitor::visit(ConstantExpression* e) { - // TODO implement + println("ConstantExpression"); + level_++; + println(e->getValue()); + level_--; } void PrintVisitor::visit(ExpressionStatement* e) { println("ExpressionStatement"); level_++; - // TODO implement + e->getExpr()->accept(this); level_--; } @@ -47,8 +59,10 @@ void PrintVisitor::visit(FunctionDefinition* e) { println("FunctionDefinition"); level_++; std::stringstream ss; - ss << e->getType()->getName() << " <- " << e->getName(); + ss << "Name: " << e->getName(); println(ss.str()); + ss.clear(); + ss << "Type: " << e->getType()->getName(); ParameterList* params = e->getParams(); if (params) { params->accept(this);