From c2c4974c7690c4ac1f3eb90f8254fd94349e24c0 Mon Sep 17 00:00:00 2001 From: i22035 Date: Thu, 4 Jul 2024 19:44:59 +0200 Subject: [PATCH] More Abgabe Tests working --- src/main/java/bytecode/MethodCodeGen.java | 6 ++--- src/main/java/main/Main.java | 8 ++++++ src/main/java/main/MiniCompilerLogger.java | 10 ++++---- .../input/endabgabeTests/Calculation.java | 25 +++++++++++++++++++ .../endabgabeTests/ControlStructures.java | 10 ++++---- .../input/endabgabeTests/EmptyClass.java | 1 + .../resources/input/endabgabeTests/Loops.java | 17 +++++++++++++ .../resources/input/endabgabeTests/Main.java | 5 ++++ 8 files changed, 69 insertions(+), 13 deletions(-) create mode 100644 src/test/resources/input/endabgabeTests/Calculation.java create mode 100644 src/test/resources/input/endabgabeTests/EmptyClass.java create mode 100644 src/test/resources/input/endabgabeTests/Loops.java create mode 100644 src/test/resources/input/endabgabeTests/Main.java diff --git a/src/main/java/bytecode/MethodCodeGen.java b/src/main/java/bytecode/MethodCodeGen.java index bcf9948..3f72de5 100644 --- a/src/main/java/bytecode/MethodCodeGen.java +++ b/src/main/java/bytecode/MethodCodeGen.java @@ -135,12 +135,12 @@ public class MethodCodeGen implements bytecode.visitor.MethodVisitor { @Override public void visit(CalculationNode calculationNode) { - if (calculationNode.dotExpression != null) { - calculationNode.dotExpression.accept(this); - } if (calculationNode.calculationExpression != null) { calculationNode.calculationExpression.accept(this); } + if (calculationNode.dotExpression != null) { + calculationNode.dotExpression.accept(this); + } if (calculationNode.operator != null) { switch (calculationNode.operator) { case PLUS: diff --git a/src/main/java/main/Main.java b/src/main/java/main/Main.java index a596fae..a0fe940 100644 --- a/src/main/java/main/Main.java +++ b/src/main/java/main/Main.java @@ -40,6 +40,14 @@ public class Main { System.err.println("Error reading the file: " + e.getMessage()); } } + else { + try { + CharStream codeCharStream = CharStreams.fromPath(Paths.get("src/test/resources/input/endabgabeTests/Person.java")); + compileFile(codeCharStream, "src/test/resources/input/endabgabeTests"); + } catch (IOException e) { + System.err.println("Error reading the file: " + e.getMessage()); + } + } } /** diff --git a/src/main/java/main/MiniCompilerLogger.java b/src/main/java/main/MiniCompilerLogger.java index f2314a1..21a7bb9 100644 --- a/src/main/java/main/MiniCompilerLogger.java +++ b/src/main/java/main/MiniCompilerLogger.java @@ -66,13 +66,13 @@ public class MiniCompilerLogger { logger.addHandler(consoleHandler); // Configure file handler - Handler fileHandler = new FileHandler("src/main/resources/logs/miniCompiler.log"); + //Handler fileHandler = new FileHandler("src/main/resources/logs/miniCompiler.log"); // Toggle file logging on/off - fileHandler.setLevel(Level.ALL); - fileHandler.setFormatter(new CustomFormatter()); - logger.addHandler(fileHandler); + //fileHandler.setLevel(Level.ALL); + //fileHandler.setFormatter(new CustomFormatter()); + //logger.addHandler(fileHandler); - } catch (SecurityException | IOException e) { + } catch (SecurityException e) { e.printStackTrace(); } } diff --git a/src/test/resources/input/endabgabeTests/Calculation.java b/src/test/resources/input/endabgabeTests/Calculation.java new file mode 100644 index 0000000..5131255 --- /dev/null +++ b/src/test/resources/input/endabgabeTests/Calculation.java @@ -0,0 +1,25 @@ +public class Calculation { + public int add(int a, int b) { + return a + b; + } + + public int sub(int a, int b) { + return a - b; + } + + public int mul(int a, int b) { + return a * b; + } + + public int div(int a, int b) { + return a / b; + } + + public int mod(int a, int b) { + return a % b; + } + + public int complexCalculation() { + return 3 - 2 * 2 + 5; + } +} \ No newline at end of file diff --git a/src/test/resources/input/endabgabeTests/ControlStructures.java b/src/test/resources/input/endabgabeTests/ControlStructures.java index 99af62f..6b83bc4 100644 --- a/src/test/resources/input/endabgabeTests/ControlStructures.java +++ b/src/test/resources/input/endabgabeTests/ControlStructures.java @@ -4,13 +4,13 @@ public class ControlStructures { return a + b; } - public cahr checkNumber(int num) { + public char checkNumber(int num) { if (num > 0) { - return "p"; + return 'p'; } else if (num < 0) { - return "n"; + return 'n'; } else { - return "z"; + return 'z'; } } @@ -19,7 +19,7 @@ public class ControlStructures { int uneven = 0; int i = 0; while (i < limit) { - if (i % 2 == 0) { + if ((i % 2) == 0) { even++; } else { uneven = uneven + 1; diff --git a/src/test/resources/input/endabgabeTests/EmptyClass.java b/src/test/resources/input/endabgabeTests/EmptyClass.java new file mode 100644 index 0000000..36b60bf --- /dev/null +++ b/src/test/resources/input/endabgabeTests/EmptyClass.java @@ -0,0 +1 @@ +public class EmptyClass {} \ No newline at end of file diff --git a/src/test/resources/input/endabgabeTests/Loops.java b/src/test/resources/input/endabgabeTests/Loops.java new file mode 100644 index 0000000..3b4f57e --- /dev/null +++ b/src/test/resources/input/endabgabeTests/Loops.java @@ -0,0 +1,17 @@ +public class Loops { + public boolean If(int a, int b) { + if(a == b) { + return true; + } else { + return false; + } + } + + public int While(int a) { + int count = 0; + while(count < a) { + count++; + } + return count; + } +} \ No newline at end of file diff --git a/src/test/resources/input/endabgabeTests/Main.java b/src/test/resources/input/endabgabeTests/Main.java new file mode 100644 index 0000000..a432c63 --- /dev/null +++ b/src/test/resources/input/endabgabeTests/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + Person testPerson = new Person(5); + } +} \ No newline at end of file