diff --git a/src/main/java/Main.java b/src/main/java/Main.java index acea692..6f6517f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -19,7 +19,7 @@ public class Main { System.out.println("Main file has args: " + args[0]); } else { try { - CharStream codeCharStream = CharStreams.fromPath(Paths.get("src/main/resources/CompilerInput.java")); + CharStream codeCharStream = CharStreams.fromPath(Paths.get("src/main/resources/input/CompilerInput.java")); parseFile(codeCharStream); } catch (IOException e) { System.err.println("Error reading the file: " + e.getMessage()); @@ -78,7 +78,6 @@ public class Main { ByteCodeGenerator byteCodeGenerator = new ByteCodeGenerator(); byteCodeGenerator.visit(typedAst); System.out.println("Bytecode generated"); - } diff --git a/src/main/java/bytecode/ClassCodeGen.java b/src/main/java/bytecode/ClassCodeGen.java index 6bddd61..d91b17b 100644 --- a/src/main/java/bytecode/ClassCodeGen.java +++ b/src/main/java/bytecode/ClassCodeGen.java @@ -52,7 +52,7 @@ public class ClassCodeGen implements ClassVisitor { } private void printIntoClassFile(byte[] byteCode, String name) { - String directoryPath = "src/main/resources/classFileOutput"; + String directoryPath = "src/main/resources/output"; File directory = new File(directoryPath); if (!directory.exists()) { directory.mkdirs(); diff --git a/src/main/resources/CompilerInput.java b/src/main/resources/input/CompilerInput.java similarity index 100% rename from src/main/resources/CompilerInput.java rename to src/main/resources/input/CompilerInput.java diff --git a/src/test/Makefile b/src/test/Makefile index da39d6b..68b9dd2 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -5,7 +5,7 @@ all: delete compile-javac compile-raupenpiler compile-javac: - javac -d .\resources\output\javac .\resources\CompilerInput.java + javac -d .\resources\output\javac .\resources\input\CompilerInput.java compile-raupenpiler: ## funktioniert bisher nicht, das will die Klasse nicht laden, der traditionelle Weg findet externe Libraries (antlr) nicht, maven hat andere Probleme @@ -19,6 +19,5 @@ delete: rm -f ./resources/output/javac/*.class rm -f ./resources/output/raupenpiler/*.class rm -f ./java/*.class - rm -f ../main/resources/classFileOutput/*.class - + rm -f ../main/resources/output/*.class diff --git a/src/test/java/TestCompilerOutput.java b/src/test/java/TestCompilerOutput.java index cf6aac0..567ebde 100644 --- a/src/test/java/TestCompilerOutput.java +++ b/src/test/java/TestCompilerOutput.java @@ -1,16 +1,18 @@ /** * This class is used to test the output of the compiler. - *

- * Im gleichen Ordner wie die diese Datei (TestCompilerOutput.java) muss die selbstkompilierte CompilerInput.java Datei sein. - * --->>>> Diese muss man also vom Ordner classFileOutput in diesen ordner hier (test/java) rein kopieren. (bis es eine bessere Lösung gibt) <<<<--- - * Die selbstkompilierte .class Datei wird dann hier drin geladen und eine Instanz von ihr erstellt, es können auch Methoden aufgerufen werden. - * Diese TestCompilerOutput.java Datei wird dann mit "javac .\TestCompilerOutput.java" kompiliert und mit "java TestCompilerOutput" ausgeführt. + * + *

Im gleichen Ordner wie diese Datei (TestCompilerOutput.java) muss die selbstkompilierte CompilerInput.java Datei sein. + *
Hinweis: Diese muss man also vom Ordner classFileOutput in diesen Ordner hier (test/java) rein kopieren. (bis es eine bessere Lösung gibt)

+ * + *

Die selbstkompilierte .class Datei wird dann hier drin geladen und eine Instanz von ihr erstellt, es können auch Methoden aufgerufen werden. + *

Diese TestCompilerOutput.java Datei wird dann in \src\test\java> mit javac .\TestCompilerOutput.java kompiliert und mit java TestCompilerOutput ausgeführt. * Wenn unser Compiler funktioniert, sollten keine Errors kommen (sondern nur die Ausgaben, die wir in der CompilerInput.java Datei gemacht haben, - * oder Methoden, die wir hier aufrufen). - * PROBLEM: hier kommen errors, was eigentlich heißt, dass der Compiler nicht funktioniert, der der Test sollt eigentlich passen + * oder Methoden, die wir hier aufrufen).

+ * + *

PROBLEM: Hier kommen Errors, was eigentlich heißt, dass der Compiler nicht funktioniert, der Test sollte eigentlich passen. + *
DENN: Wenn ich statt unserem CompilerInput.class die CompilerInput.class von javac verwende (aus src/test/resources/output/javac ), dann funktioniert es.

*/ public class TestCompilerOutput { - public static void main(String[] args) { try { // Try to load the class named "CompilerInput" diff --git a/src/test/resources/AllFeaturesClassExample.java b/src/test/resources/input/AllFeaturesClassExample.java similarity index 100% rename from src/test/resources/AllFeaturesClassExample.java rename to src/test/resources/input/AllFeaturesClassExample.java diff --git a/src/test/resources/CombinedExample.java b/src/test/resources/input/CombinedExample.java similarity index 100% rename from src/test/resources/CombinedExample.java rename to src/test/resources/input/CombinedExample.java diff --git a/src/test/resources/CompilerInput.java b/src/test/resources/input/CompilerInput.java similarity index 50% rename from src/test/resources/CompilerInput.java rename to src/test/resources/input/CompilerInput.java index 91b2625..d850a3e 100644 --- a/src/test/resources/CompilerInput.java +++ b/src/test/resources/input/CompilerInput.java @@ -5,5 +5,12 @@ public class CompilerInput { public static int testMethod(char x){ return 0; } + + public class Test { + + public static int testMethod(char x, int a){ + return 0; + } + } } diff --git a/src/test/resources/MoreFeaturesClassExample.java b/src/test/resources/input/MoreFeaturesClassExample.java similarity index 100% rename from src/test/resources/MoreFeaturesClassExample.java rename to src/test/resources/input/MoreFeaturesClassExample.java diff --git a/src/test/resources/failureTests/TestClass1.java b/src/test/resources/input/failureTests/TestClass1.java similarity index 100% rename from src/test/resources/failureTests/TestClass1.java rename to src/test/resources/input/failureTests/TestClass1.java diff --git a/src/test/resources/failureTests/TestClass10.java b/src/test/resources/input/failureTests/TestClass10.java similarity index 100% rename from src/test/resources/failureTests/TestClass10.java rename to src/test/resources/input/failureTests/TestClass10.java diff --git a/src/test/resources/failureTests/TestClass11.java b/src/test/resources/input/failureTests/TestClass11.java similarity index 100% rename from src/test/resources/failureTests/TestClass11.java rename to src/test/resources/input/failureTests/TestClass11.java diff --git a/src/test/resources/failureTests/TestClass2.java b/src/test/resources/input/failureTests/TestClass2.java similarity index 100% rename from src/test/resources/failureTests/TestClass2.java rename to src/test/resources/input/failureTests/TestClass2.java diff --git a/src/test/resources/failureTests/TestClass3.java b/src/test/resources/input/failureTests/TestClass3.java similarity index 100% rename from src/test/resources/failureTests/TestClass3.java rename to src/test/resources/input/failureTests/TestClass3.java diff --git a/src/test/resources/failureTests/TestClass4.java b/src/test/resources/input/failureTests/TestClass4.java similarity index 100% rename from src/test/resources/failureTests/TestClass4.java rename to src/test/resources/input/failureTests/TestClass4.java diff --git a/src/test/resources/failureTests/TestClass5.java b/src/test/resources/input/failureTests/TestClass5.java similarity index 100% rename from src/test/resources/failureTests/TestClass5.java rename to src/test/resources/input/failureTests/TestClass5.java diff --git a/src/test/resources/failureTests/TestClass6.java b/src/test/resources/input/failureTests/TestClass6.java similarity index 100% rename from src/test/resources/failureTests/TestClass6.java rename to src/test/resources/input/failureTests/TestClass6.java diff --git a/src/test/resources/failureTests/TestClass7.java b/src/test/resources/input/failureTests/TestClass7.java similarity index 100% rename from src/test/resources/failureTests/TestClass7.java rename to src/test/resources/input/failureTests/TestClass7.java diff --git a/src/test/resources/failureTests/TestClass8.java b/src/test/resources/input/failureTests/TestClass8.java similarity index 100% rename from src/test/resources/failureTests/TestClass8.java rename to src/test/resources/input/failureTests/TestClass8.java diff --git a/src/test/resources/failureTests/TestClass9.java b/src/test/resources/input/failureTests/TestClass9.java similarity index 100% rename from src/test/resources/failureTests/TestClass9.java rename to src/test/resources/input/failureTests/TestClass9.java diff --git a/src/test/resources/featureTests/BooleanOperations.java b/src/test/resources/input/featureTests/BooleanOperations.java similarity index 100% rename from src/test/resources/featureTests/BooleanOperations.java rename to src/test/resources/input/featureTests/BooleanOperations.java diff --git a/src/test/resources/featureTests/CharManipulation.java b/src/test/resources/input/featureTests/CharManipulation.java similarity index 100% rename from src/test/resources/featureTests/CharManipulation.java rename to src/test/resources/input/featureTests/CharManipulation.java diff --git a/src/test/resources/featureTests/ConditionalStatements.java b/src/test/resources/input/featureTests/ConditionalStatements.java similarity index 100% rename from src/test/resources/featureTests/ConditionalStatements.java rename to src/test/resources/input/featureTests/ConditionalStatements.java diff --git a/src/test/resources/featureTests/LoopExamples.java b/src/test/resources/input/featureTests/LoopExamples.java similarity index 100% rename from src/test/resources/featureTests/LoopExamples.java rename to src/test/resources/input/featureTests/LoopExamples.java diff --git a/src/test/resources/featureTests/MethodOverloading.java b/src/test/resources/input/featureTests/MethodOverloading.java similarity index 100% rename from src/test/resources/featureTests/MethodOverloading.java rename to src/test/resources/input/featureTests/MethodOverloading.java