From ca4bbab971f67ce290586fd71a398862965c867a Mon Sep 17 00:00:00 2001 From: Malte Schmitz Date: Mon, 16 Jan 2017 17:54:49 +0100 Subject: [PATCH] Minor simplifications --- src/main/java/printer/ExpressionPrinter.java | 7 +++---- src/main/java/printer/ProgramPrinter.java | 18 ++++++++---------- src/test/java/printer/ExpressionPrinterTest.java | 13 +++++-------- src/test/java/printer/ProgramPrinterTest.java | 17 +++++++---------- 4 files changed, 23 insertions(+), 32 deletions(-) diff --git a/src/main/java/printer/ExpressionPrinter.java b/src/main/java/printer/ExpressionPrinter.java index 38e9c41..1801a2a 100644 --- a/src/main/java/printer/ExpressionPrinter.java +++ b/src/main/java/printer/ExpressionPrinter.java @@ -18,7 +18,6 @@ The `ExpressionPrinter` implements the string serialization with the help of the [Visitor](${basePath}/src/main/java/interpreter/Visitor.java.html). */ public class ExpressionPrinter extends Visitor { - /*!- Visit functions */ public String visitAddition(Addition addition) { return visit(addition.leftHandSide) + " + " + visit(addition.rightHandSide); } @@ -36,10 +35,10 @@ public class ExpressionPrinter extends Visitor { } /*! - The `getValue` function takes an `Expression` instance as an argument and returns - the string serialisation of the given expression. + The `print` function takes an `Expression` instance as an argument and returns + the string serialization of the given expression. */ - public String getValue(Expression expression) { + public String print(Expression expression) { return visit(expression); } } diff --git a/src/main/java/printer/ProgramPrinter.java b/src/main/java/printer/ProgramPrinter.java index d8529e4..33a4ad9 100644 --- a/src/main/java/printer/ProgramPrinter.java +++ b/src/main/java/printer/ProgramPrinter.java @@ -18,10 +18,10 @@ The `ProgramPrinter` implements the string serialization with the help of the [Visitor](${basePath}/src/main/java/interpreter/Visitor.java.html). */ public class ProgramPrinter extends Visitor { - /*!- Visit functions */ + private final ExpressionPrinter printer = new ExpressionPrinter(); + public String visitAssignment(Assignment assignment) { - ExpressionPrinter printer = new ExpressionPrinter(); - return printer.getValue(assignment.identifier) + " := " + printer.getValue(assignment.expression); + return printer.print(assignment.identifier) + " := " + printer.print(assignment.expression); } public String visitComposition(Composition composition) { @@ -29,20 +29,18 @@ public class ProgramPrinter extends Visitor { } public String visitConditional(Conditional conditional) { - ExpressionPrinter printer = new ExpressionPrinter(); - return "if (" + printer.getValue(conditional.condition) + ") then { " + visit(conditional.thenCase) + " } else { " + visit(conditional.elseCase) + " }"; + return "if (" + printer.print(conditional.condition) + ") then { " + visit(conditional.thenCase) + " } else { " + visit(conditional.elseCase) + " }"; } public String visitLoop(Loop loop) { - ExpressionPrinter printer = new ExpressionPrinter(); - return "while (" + printer.getValue(loop.condition) + ") { " + visit(loop.program) + " }"; + return "while (" + printer.print(loop.condition) + ") { " + visit(loop.program) + " }"; } /*! - The `getValue` function takes a `Program` instance as an argument and returns - the string serialisation of the given program. + The `print` function takes a `Program` instance as an argument and returns + the string serialization of the given program. */ - public String getValue(Program program) { + public String print(Program program) { return visit(program); } } diff --git a/src/test/java/printer/ExpressionPrinterTest.java b/src/test/java/printer/ExpressionPrinterTest.java index d4bfa2d..b457766 100644 --- a/src/test/java/printer/ExpressionPrinterTest.java +++ b/src/test/java/printer/ExpressionPrinterTest.java @@ -18,29 +18,26 @@ public class ExpressionPrinterTest { final String subtractionCode = "1 - a"; final Subtraction subtraction = new Subtraction(new Int(1), new Identifier("a")); + final ExpressionPrinter printer = new ExpressionPrinter(); @Test public void testVisitAddition() { - ExpressionPrinter printer = new ExpressionPrinter(); - assertEquals(additionCode, printer.getValue(addition)); + assertEquals(additionCode, printer.print(addition)); } @Test public void testVisitIdentifier() { - ExpressionPrinter printer = new ExpressionPrinter(); - assertEquals(identifierCode, printer.getValue(identifier)); + assertEquals(identifierCode, printer.print(identifier)); } @Test public void testVisitInt() { - ExpressionPrinter printer = new ExpressionPrinter(); - assertEquals(integerCode, printer.getValue(integer)); + assertEquals(integerCode, printer.print(integer)); } @Test public void testVisitSubtraction() { - ExpressionPrinter printer = new ExpressionPrinter(); - assertEquals(subtractionCode, printer.getValue(subtraction)); + assertEquals(subtractionCode, printer.print(subtraction)); } } \ No newline at end of file diff --git a/src/test/java/printer/ProgramPrinterTest.java b/src/test/java/printer/ProgramPrinterTest.java index 107f5e2..866c6a8 100644 --- a/src/test/java/printer/ProgramPrinterTest.java +++ b/src/test/java/printer/ProgramPrinterTest.java @@ -25,34 +25,31 @@ public class ProgramPrinterTest { final String programCode = compositionCode + " ; " + loopCode + " ; " + conditionalCode; final Program program = new Composition(new Composition(composition, loop), conditional); + final ProgramPrinter printer = new ProgramPrinter(); + @Test public void testVisitAssignment() { - ProgramPrinter printer = new ProgramPrinter(); - assertEquals(assignmentCode, printer.getValue(assignment)); + assertEquals(assignmentCode, printer.print(assignment)); } @Test public void testVisitComposition() { - ProgramPrinter printer = new ProgramPrinter(); - assertEquals(compositionCode, printer.getValue(composition)); + assertEquals(compositionCode, printer.print(composition)); } @Test public void testVisitConditional() { - ProgramPrinter printer = new ProgramPrinter(); - assertEquals(conditionalCode, printer.getValue(conditional)); + assertEquals(conditionalCode, printer.print(conditional)); } @Test public void testVisitLoop() { - ProgramPrinter printer = new ProgramPrinter(); - assertEquals(loopCode, printer.getValue(loop)); + assertEquals(loopCode, printer.print(loop)); } @Test public void testVisitProgram() { - ProgramPrinter printer = new ProgramPrinter(); - assertEquals(programCode, printer.getValue(program)); + assertEquals(programCode, printer.print(program)); } } \ No newline at end of file