diff --git a/src/test/java/MoreTestResources/AST/AbstractSyntax_ClassCanBeBytecoded.java b/src/test/java/MoreTestResources/AST/AbstractSyntax_ClassCanBeBytecoded.java new file mode 100644 index 0000000..0c88c68 --- /dev/null +++ b/src/test/java/MoreTestResources/AST/AbstractSyntax_ClassCanBeBytecoded.java @@ -0,0 +1,90 @@ +package MoreTestResources.AST; + +import de.maishai.ast.records.Class; +import de.maishai.ast.records.*; +import de.maishai.typedast.Type; + +import java.util.List; + +public class AbstractSyntax_ClassCanBeBytecoded { + public static Program get() { + List declarations = List.of( + new Declaration( + "c", + Type.REFERENCE("ClassCanBeBytecoded") + ), + new Declaration( + "x", + Type.INT + ) + ); + List methods = getMethods(); + List constructors = getConstructors(); + return new Program( + List.of( + new Class( + "ClassCanBeBytecoded", + null, + declarations, + methods, + constructors + ) + ) + ); + } + + private static List getConstructors() { + return List.of(getConstructor1()); + } + + private static Constructor getConstructor1() { + List parameters = List.of(); + List statementList = List.of(); + Block block = new Block( + statementList + ); + return new Constructor( + "ClassCanBeBytecoded", + parameters, + block + ); + } + + private static List getMethods() { + return List.of(getMethod1()); + } + + private static Method getMethod1() { + List parameters = List.of( + new Parameter( + "var1", + Type.INT + ) + ); + List statementList = List.of( + new Print( + new FieldVarAccess( + false, + null, + "var1" + ) + ), + new Return( + new FieldVarAccess( + false, + null, + "var1" + ) + ) + ); + Block block = new Block( + statementList + ); + return new Method( + Type.INT, + "test", + parameters, + block + ); + } +} \ No newline at end of file diff --git a/src/test/java/ScannerParserTests.java b/src/test/java/ScannerParserTests.java index a730c98..5b4d51c 100644 --- a/src/test/java/ScannerParserTests.java +++ b/src/test/java/ScannerParserTests.java @@ -179,15 +179,9 @@ class ScannerParserTests { // -> Corresponding Test files in src/test/testFiles/MoreTestFiles @Test - void testPublicClass() { - Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/PublicClass.java")); - assertEquals(AbstractSyntax_PublicClass.get(), resultAst); - } - - @Test - void testClassWithField() { - Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithField.java")); - assertEquals(AbstractSyntax_ClassWithField.get(), resultAst); + void testClassCanBeBytecoded() { + Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassCanBeBytecoded.java")); + assertEquals(AbstractSyntax_ClassCanBeBytecoded.get(), resultAst); } @Test @@ -197,9 +191,9 @@ class ScannerParserTests { } @Test - void testClassWithMethod() { - Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithMethod.java")); - assertEquals(AbstractSyntax_ClassWithMethod.get(), resultAst); + void testClassWithConstructorAndMethodCall() { + Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithConstructorAndMethodCall.java")); + assertEquals(AbstractSyntax_ClassWithConstructorAndMethodCall.get(), resultAst); } @Test @@ -214,22 +208,33 @@ class ScannerParserTests { assertEquals(AbstractSyntax_ClassWithConstructorWithParameters.get(), resultAst); } + @Test + void testClassWithField() { + Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithField.java")); + assertEquals(AbstractSyntax_ClassWithField.get(), resultAst); + } + + @Test + void testClassWithMethod() { + Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithMethod.java")); + assertEquals(AbstractSyntax_ClassWithMethod.get(), resultAst); + } + @Test void testClassWithMethodAndField() { Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithMethodAndField.java")); assertEquals(AbstractSyntax_ClassWithMethodAndField.get(), resultAst); } - - @Test - void testClassWithConstructorAndMethodCall() { - Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ClassWithConstructorAndMethodCall.java")); - assertEquals(AbstractSyntax_ClassWithConstructorAndMethodCall.get(), resultAst); - } - @Test void testComplexClass() { Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/ComplexClass.java")); assertEquals(AbstractSyntax_ComplexClass.get(), resultAst); } + + @Test + void testPublicClass() { + Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/MoreTestFiles/PublicClass.java")); + assertEquals(AbstractSyntax_PublicClass.get(), resultAst); + } }