mirror of
https://github.com/JonathanFleischmann/CompilerULTIMATE.git
synced 2024-12-28 01:38:03 +00:00
fixed some tests, cleaned up, etc
This commit is contained in:
parent
a5d13fd2a9
commit
cc674625b0
@ -34,4 +34,5 @@
|
|||||||
- keine Accessmodifier/alles ist public
|
- keine Accessmodifier/alles ist public
|
||||||
- logische Statements MÜSSEN geklammert werden, ansonsten wird ununterbrochen von links nach rechts berechnet
|
- logische Statements MÜSSEN geklammert werden, ansonsten wird ununterbrochen von links nach rechts berechnet
|
||||||
(so würde z.B. (true || false == false) false zurückgeben)
|
(so würde z.B. (true || false == false) false zurückgeben)
|
||||||
- i++ und i-- sind nicht erlaubt, stattdessen i = i + 1 und i = i - 1 bzw i += 1 und i -= 1
|
- i++ und i-- sind nur in for-Schleifen oder Statements erlaubt, --i und ++i sind generell nicht erlaubt
|
||||||
|
- ein File kann nur eine Klasse enthalten
|
||||||
|
@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static HelpFiles.TestFileTester.run;
|
import static HelpClasses.TestFileTester.run;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
class AllNegativeTests {
|
class AllNegativeTests {
|
||||||
|
@ -1,148 +0,0 @@
|
|||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import testResources.CodeGen.Features.*;
|
|
||||||
|
|
||||||
import static HelpFiles.TestFileTester.run;
|
|
||||||
|
|
||||||
|
|
||||||
class CodegeneratorTests {
|
|
||||||
|
|
||||||
// @Test
|
|
||||||
// void testPublicClass() {
|
|
||||||
// byte[] resultBytecode = Compiler.generateByteCodeArrayFromTypedAst();
|
|
||||||
// assertEquals(AbstractSyntax_PublicClass.get(), resultBytecode);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Test
|
|
||||||
// void testMethodCall() {
|
|
||||||
// assertDoesNotThrow(() -> {
|
|
||||||
// BytecodeTestUtil testUtility = new BytecodeTestUtil("src/test/testFiles/ASTandTypedASTFeatures/MethodCall.java", "MethodCall");
|
|
||||||
//
|
|
||||||
// assertEquals(0, testUtility.invokeMethod("method", null));
|
|
||||||
// assertEquals(1, testUtility.invokeMethod("method1", new Class<?>[]{int.class}, 1));
|
|
||||||
// assertEquals(3, testUtility.invokeMethod("method2", new Class<?>[]{int.class, int.class}, 1, 2));
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeBreakTests() {
|
|
||||||
run(ByteCode_Break.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeClassTests() {
|
|
||||||
run(ByteCode_Class.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeClassObjectsTests() {
|
|
||||||
run(ByteCode_ClassObjects.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeCommentTests() {
|
|
||||||
run(ByteCode_Comment.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeCompAssignTests() {
|
|
||||||
run(ByteCode_CompAssign.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeComplexCallsTests() {
|
|
||||||
run(ByteCode_ComplexCalls.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeConstructorTests() {
|
|
||||||
run(ByteCode_Constructor.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeContinueTests() {
|
|
||||||
run(ByteCode_Continue.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeDataTypesTests() {
|
|
||||||
run(ByteCode_DataTypes.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeFieldTests() {
|
|
||||||
run(ByteCode_Field.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeForTests() {
|
|
||||||
run(ByteCode_For.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeIfTests() {
|
|
||||||
run(ByteCode_If.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeLogicExprTests() {
|
|
||||||
run(ByteCode_LogicExpr.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeMainTests() {
|
|
||||||
run(ByteCode_Main.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeMethodTests() {
|
|
||||||
run(ByteCode_Method.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeMethodCallTests() {
|
|
||||||
run(ByteCode_MethodCall.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeMultipleClassesTests() {
|
|
||||||
run(ByteCode_MultipleClasses.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeOperatorsTests() {
|
|
||||||
run(ByteCode_Operators.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeOverloadedTests() {
|
|
||||||
run(ByteCode_Overloaded.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodePrintTests() {
|
|
||||||
run(ByteCode_Print.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeReturnTests() {
|
|
||||||
run(ByteCode_Return.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeUnaryTests() {
|
|
||||||
run(ByteCode_Unary.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeVariableDefWithDeclTests() {
|
|
||||||
run(ByteCode_VariableDefWithDecl.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void runByteCodeWhileTests() {
|
|
||||||
run(ByteCode_While.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,30 +1,145 @@
|
|||||||
public class E2ETests {
|
import E2ETests.Features.*;
|
||||||
char ZZ;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
public E2ETests() {
|
import static HelpClasses.TestFileTester.run;
|
||||||
this.ZZ = 'z';
|
|
||||||
// if (stuff1) {
|
|
||||||
// ifcontent
|
class E2ETests {
|
||||||
// } else if (stuff2) {
|
|
||||||
// content2
|
// @Test
|
||||||
// } else if (stuffs3) {
|
// void testPublicClass() {
|
||||||
// content3
|
// byte[] resultBytecode = Compiler.generateByteCodeArrayFromTypedAst();
|
||||||
// } else {
|
// assertEquals(AbstractSyntax_PublicClass.get(), resultBytecode);
|
||||||
// contents4
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
// void testMethodCall() {
|
||||||
|
// assertDoesNotThrow(() -> {
|
||||||
|
// BytecodeTestUtil testUtility = new BytecodeTestUtil("src/test/testFiles/ASTandTypedASTFeatures/MethodCall.java", "MethodCall");
|
||||||
//
|
//
|
||||||
// if (stuff1) {
|
// assertEquals(0, testUtility.invokeMethod("method", null));
|
||||||
// ifcontent
|
// assertEquals(1, testUtility.invokeMethod("method1", new Class<?>[]{int.class}, 1));
|
||||||
// } else {
|
// assertEquals(3, testUtility.invokeMethod("method2", new Class<?>[]{int.class, int.class}, 1, 2));
|
||||||
// if (stuff2) {
|
// });
|
||||||
// content2
|
|
||||||
// } else {
|
|
||||||
// if (stuff3) {
|
|
||||||
// content3
|
|
||||||
// } else {
|
|
||||||
// content4
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeBreakTests() {
|
||||||
|
run(ByteCode_Break.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeClassTests() {
|
||||||
|
run(ByteCode_Class.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeClassObjectsTests() {
|
||||||
|
run(ByteCode_ClassObjects.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeCommentTests() {
|
||||||
|
run(ByteCode_Comment.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeCompAssignTests() {
|
||||||
|
run(ByteCode_CompAssign.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeComplexCallsTests() {
|
||||||
|
run(ByteCode_ComplexCalls.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeConstructorTests() {
|
||||||
|
run(ByteCode_Constructor.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeContinueTests() {
|
||||||
|
run(ByteCode_Continue.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeDataTypesTests() {
|
||||||
|
run(ByteCode_DataTypes.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeFieldTests() {
|
||||||
|
run(ByteCode_Field.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeForTests() {
|
||||||
|
run(ByteCode_For.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeIfTests() {
|
||||||
|
run(ByteCode_If.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeLogicExprTests() {
|
||||||
|
run(ByteCode_LogicExpr.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeMainTests() {
|
||||||
|
run(ByteCode_Main.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeMethodTests() {
|
||||||
|
run(ByteCode_Method.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeMethodCallTests() {
|
||||||
|
run(ByteCode_MethodCall.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
// void runByteCodeMultipleClassesTests() {
|
||||||
|
// run(ByteCode_MultipleClasses.class);
|
||||||
|
// } TODO: Fix this test or remove it
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeOperatorsTests() {
|
||||||
|
run(ByteCode_Operators.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeOverloadedTests() {
|
||||||
|
run(ByteCode_Overloaded.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodePrintTests() {
|
||||||
|
run(ByteCode_Print.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeReturnTests() {
|
||||||
|
run(ByteCode_Return.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeUnaryTests() {
|
||||||
|
run(ByteCode_Unary.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeVariableDefWithDeclTests() {
|
||||||
|
run(ByteCode_VariableDefWithDecl.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void runByteCodeWhileTests() {
|
||||||
|
run(ByteCode_While.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
28
src/test/java/E2ETests/ByteClassLoader.java
Normal file
28
src/test/java/E2ETests/ByteClassLoader.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package E2ETests;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ByteClassLoader extends ClassLoader {
|
||||||
|
|
||||||
|
// Map to store the class name and its corresponding byte array
|
||||||
|
private final Map<String, byte[]> classesBytes = new HashMap<>();
|
||||||
|
|
||||||
|
public ByteClassLoader() {
|
||||||
|
super(ClassLoader.getSystemClassLoader());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method to add a class byte array to the loader
|
||||||
|
public void addClass(String name, byte[] classData) {
|
||||||
|
classesBytes.put(name, classData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?> findClass(String name) throws ClassNotFoundException {
|
||||||
|
byte[] classData = classesBytes.get(name);
|
||||||
|
if (classData == null) {
|
||||||
|
return super.findClass(name);
|
||||||
|
}
|
||||||
|
return defineClass(name, classData, 0, classData.length);
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.CodeGen;
|
package E2ETests;
|
||||||
|
|
||||||
import de.maishai.Compiler;
|
import de.maishai.Compiler;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ public class BytecodeTestUtil {
|
|||||||
clazz = classLoader.loadClass(className);
|
clazz = classLoader.loadClass(className);
|
||||||
this.instance = clazz.getDeclaredConstructor().newInstance();
|
this.instance = clazz.getDeclaredConstructor().newInstance();
|
||||||
} catch (ClassNotFoundException | SecurityException | NoSuchMethodException e) {
|
} catch (ClassNotFoundException | SecurityException | NoSuchMethodException e) {
|
||||||
LOGGER.log(Level.SEVERE, "Exception occur", e);
|
LOGGER.log(Level.SEVERE, "Exception occurred", e);
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
32
src/test/java/E2ETests/ClassNameExtractor.java
Normal file
32
src/test/java/E2ETests/ClassNameExtractor.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package E2ETests;
|
||||||
|
|
||||||
|
import org.objectweb.asm.ClassReader;
|
||||||
|
import org.objectweb.asm.ClassVisitor;
|
||||||
|
import org.objectweb.asm.Opcodes;
|
||||||
|
|
||||||
|
public class ClassNameExtractor {
|
||||||
|
|
||||||
|
public static String getClassName(byte[] classBytes) {
|
||||||
|
ClassReader classReader = new ClassReader(classBytes);
|
||||||
|
ClassNameVisitor classNameVisitor = new ClassNameVisitor();
|
||||||
|
classReader.accept(classNameVisitor, 0);
|
||||||
|
return classNameVisitor.getClassName();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ClassNameVisitor extends ClassVisitor {
|
||||||
|
private String className;
|
||||||
|
|
||||||
|
public ClassNameVisitor() {
|
||||||
|
super(Opcodes.ASM9);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
|
||||||
|
this.className = name.replace('/', '.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClassName() {
|
||||||
|
return className;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_Break {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Break.java"), "Break");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Break.java"), "Break");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_Class {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Class.java"), "Class");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Class.java"), "Class");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
|
import E2ETests.BytecodeTestUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_ClassObjects {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/ClassObjects.java"), "ClassObjects");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/ClassObjects.java"), "ClassObjects");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,14 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.TypedBlock;
|
|
||||||
import de.maishai.typedast.typedclass.TypedClass;
|
|
||||||
import de.maishai.typedast.typedclass.TypedConstructor;
|
|
||||||
import de.maishai.typedast.typedclass.TypedProgram;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -19,7 +14,7 @@ public class ByteCode_Comment {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Comment.java"), "Comment");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Comment.java"), "Comment");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
|
import E2ETests.BytecodeTestUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_CompAssign {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/CompAssign.java"), "CompAssign");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/CompAssign.java"), "CompAssign");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,11 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -16,7 +14,7 @@ public class ByteCode_ComplexCalls {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/ComplexCalls.java"), "ComplexCalls");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/ComplexCalls.java"), "ComplexCalls");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,12 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -17,7 +14,7 @@ public class ByteCode_Constructor {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Constructor.java"), "Constructor");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Constructor.java"), "Constructor");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,12 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -17,7 +14,7 @@ public class ByteCode_Continue {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Continue.java"), "Continue");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Continue.java"), "Continue");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,11 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -16,7 +14,7 @@ public class ByteCode_DataTypes {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/DataTypes.java"), "DataTypes");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/DataTypes.java"), "DataTypes");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,11 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -16,7 +14,7 @@ public class ByteCode_Field {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Field.java"), "Field");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Field.java"), "Field");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,12 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -17,7 +14,7 @@ public class ByteCode_For {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/For.java"), "For");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/For.java"), "For");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_If {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/If.java"), "If");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/If.java"), "If");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,12 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -17,7 +14,7 @@ public class ByteCode_LogicExpr {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/LogicExpr.java"), "LogicExpr");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/LogicExpr.java"), "LogicExpr");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,10 +1,12 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
|
import E2ETests.BytecodeTestUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ByteCode_Main {
|
public class ByteCode_Main {
|
||||||
@ -13,7 +15,7 @@ public class ByteCode_Main {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Main.java"), "Main");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Main.java"), "Main");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@ -102,5 +104,23 @@ public class ByteCode_Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Add test for invoking main method, how to?
|
@Test
|
||||||
|
public void testInvokeMainMethod() {
|
||||||
|
try {
|
||||||
|
PrintStream originalOut = System.out;
|
||||||
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||||
|
PrintStream newOut = new PrintStream(byteArrayOutputStream);
|
||||||
|
System.setOut(newOut);
|
||||||
|
Object returnValue = util.invokeMethod("main", new Class<?>[]{String[].class}, new Object[]{new String[0]});
|
||||||
|
Assertions.assertNull(returnValue);
|
||||||
|
Assertions.assertEquals(3, byteArrayOutputStream.toString().length());
|
||||||
|
// durch die newline wird die Ausgabe um 2 Zeichen länger
|
||||||
|
Assertions.assertEquals("3", byteArrayOutputStream.toString().substring(0, byteArrayOutputStream.toString().length() - 2));
|
||||||
|
System.setOut(originalOut);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Assertions.fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: Add test for invoking main method by starting the compiled class file?
|
||||||
}
|
}
|
@ -1,11 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -16,7 +14,7 @@ public class ByteCode_Method {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Method.java"), "Method");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Method.java"), "Method");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,12 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -17,7 +14,7 @@ public class ByteCode_MethodCall {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/MethodCall.java"), "MethodCall");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/MethodCall.java"), "MethodCall");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,10 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
import de.maishai.Compiler;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,8 +15,8 @@ public class ByteCode_MultipleClasses {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/MultipleClasses1.java",
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/MultipleClasses1.java",
|
||||||
"src/test/testFiles/CodeGenFeatures/MultipleClasses2.java"), "MultipleClasses1");
|
"src/test/testFiles/E2EFeatures/MultipleClasses2.java"), "MultipleClasses1");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@ -116,4 +117,9 @@ public class ByteCode_MultipleClasses {
|
|||||||
Assertions.fail();
|
Assertions.fail();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Compiler.generateByteCodeFilesFromFiles(List.of("src/test/testFiles/E2EFeatures/MultipleClasses1.java",
|
||||||
|
"src/test/testFiles/E2EFeatures/MultipleClasses2.java"));
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
|
import E2ETests.BytecodeTestUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ public class ByteCode_Operators {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Operators.java"), "Operators");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Operators.java"), "Operators");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
|
import E2ETests.BytecodeTestUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_Overloaded {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Overloaded.java"), "Overloaded");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Overloaded.java"), "Overloaded");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
@ -16,7 +16,7 @@ public class ByteCode_Print {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Print.java"), "Print");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Print.java"), "Print");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_Return {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Return.java"), "Return");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Return.java"), "Return");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,12 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import de.maishai.ast.UnaryOperator;
|
import E2ETests.BytecodeTestUtil;
|
||||||
import de.maishai.typedast.Type;
|
|
||||||
import de.maishai.typedast.typedclass.*;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -17,7 +14,7 @@ public class ByteCode_Unary {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/Unary.java"), "Unary");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/Unary.java"), "Unary");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_VariableDefWithDecl {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/VariableDefWithDecl.java"),
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/VariableDefWithDecl.java"),
|
||||||
"VariableDefWithDecl");
|
"VariableDefWithDecl");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
@ -1,9 +1,9 @@
|
|||||||
package testResources.CodeGen.Features;
|
package E2ETests.Features;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.CodeGen.BytecodeTestUtil;
|
import E2ETests.BytecodeTestUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class ByteCode_While {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
try {
|
try {
|
||||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/While.java"), "While");
|
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/While.java"), "While");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.Block;
|
import de.maishai.ast.records.Block;
|
||||||
import de.maishai.ast.records.Constructor;
|
import de.maishai.ast.records.Constructor;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.Block;
|
import de.maishai.ast.records.Block;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.UnaryOperator;
|
import de.maishai.ast.UnaryOperator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTFeatures;
|
package FeatureTestResources.AST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.TypedBlock;
|
import de.maishai.typedast.typedclass.TypedBlock;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.TypedBlock;
|
import de.maishai.typedast.typedclass.TypedBlock;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,7 +1,5 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.records.Class;
|
|
||||||
import de.maishai.ast.records.*;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
@ -130,7 +130,6 @@ public class TypedAST_Continue {
|
|||||||
Type.VOID
|
Type.VOID
|
||||||
),
|
),
|
||||||
Type.VOID,
|
Type.VOID,
|
||||||
// TODO: ist Konstruktor nicht immer vom Typ der Klasse?
|
|
||||||
List.of()
|
List.of()
|
||||||
)
|
)
|
||||||
),
|
),
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,7 +1,5 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.records.Class;
|
|
||||||
import de.maishai.ast.records.*;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
@ -17,7 +17,34 @@ public class TypedAST_MultipleClasses {
|
|||||||
Type.REFERENCE("MultipleClasses2")
|
Type.REFERENCE("MultipleClasses2")
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
List.of(
|
||||||
|
new TypedMethod(
|
||||||
|
"getIFromAnotherClass",
|
||||||
|
Type.INT,
|
||||||
List.of(),
|
List.of(),
|
||||||
|
List.of(),
|
||||||
|
new TypedBlock(
|
||||||
|
List.of(),
|
||||||
|
List.of(
|
||||||
|
new TypedReturn(
|
||||||
|
new TypedFieldVarAccess(
|
||||||
|
true,
|
||||||
|
new TypedFieldVarAccess(
|
||||||
|
true,
|
||||||
|
null,
|
||||||
|
"anotherClass",
|
||||||
|
Type.REFERENCE("MultipleClasses2")
|
||||||
|
),
|
||||||
|
"i",
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
|
Type.INT
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Type.INT
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
List.of(
|
List.of(
|
||||||
new TypedConstructor(
|
new TypedConstructor(
|
||||||
"MultipleClasses1",
|
"MultipleClasses1",
|
@ -1,7 +1,6 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.FieldVarAccess;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,6 +1,5 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.records.*;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
@ -1,8 +1,6 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.UnaryOperator;
|
import de.maishai.ast.UnaryOperator;
|
||||||
import de.maishai.ast.records.Class;
|
|
||||||
import de.maishai.ast.records.*;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.TypedClass;
|
import de.maishai.typedast.typedclass.TypedClass;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,7 +1,5 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.records.Class;
|
|
||||||
import de.maishai.ast.records.*;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
@ -1,8 +1,6 @@
|
|||||||
package testResources.TypedAST.TypedASTFeatures;
|
package FeatureTestResources.TypedAST;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.Class;
|
|
||||||
import de.maishai.ast.records.*;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package HelpFiles;
|
package HelpClasses;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
@ -1,16 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithConstructor {
|
package MoreTestResources.AST;
|
||||||
// int x;
|
|
||||||
// public classWithConstructor() {
|
|
||||||
// this.x = 10;
|
|
||||||
// int i;
|
|
||||||
// for (i = 0; i < 6; i = i + 1) {
|
|
||||||
// int j;
|
|
||||||
// for (j = 0; j < this.x; j += 1) {
|
|
||||||
// this.x = this.x * this.x;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
import de.maishai.ast.*;
|
import de.maishai.ast.*;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
@ -33,6 +21,7 @@ public class AbstractSyntax_ClassWithConstructor {
|
|||||||
List.of(
|
List.of(
|
||||||
new Class(
|
new Class(
|
||||||
"ClassWithConstructor",
|
"ClassWithConstructor",
|
||||||
|
null,
|
||||||
declarations,
|
declarations,
|
||||||
methods,
|
methods,
|
||||||
constructors
|
constructors
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithConstructorAndMethodCall {
|
package MoreTestResources.AST;//public class ClassWithConstructorAndMethodCall {
|
||||||
// int x;
|
// int x;
|
||||||
//
|
//
|
||||||
// public ClassWithConstructorAndMethodCall() {
|
// public ClassWithConstructorAndMethodCall() {
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithConstructorWithCodeInComments {
|
package MoreTestResources.AST;//public class ClassWithConstructorWithCodeInComments {
|
||||||
// int x;
|
// int x;
|
||||||
// public ClassWithConstructorWithCodeInComments() {
|
// public ClassWithConstructorWithCodeInComments() {
|
||||||
// this.x = 10;
|
// this.x = 10;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithConstructorWithParameters {
|
package MoreTestResources.AST;//public class ClassWithConstructorWithParameters {
|
||||||
// int x;
|
// int x;
|
||||||
// public ClassWithConstructorWithParameters(int startValue, int repetitions) {
|
// public ClassWithConstructorWithParameters(int startValue, int repetitions) {
|
||||||
// this.x = startValue;
|
// this.x = startValue;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithField {
|
package MoreTestResources.AST;//public class ClassWithField {
|
||||||
// int x;
|
// int x;
|
||||||
//}
|
//}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithMethod {
|
package MoreTestResources.AST;//public class ClassWithMethod {
|
||||||
// public boolean method() {
|
// public boolean method() {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithMethodAndField {
|
package MoreTestResources.AST;//public class ClassWithMethodAndField {
|
||||||
// char c;
|
// char c;
|
||||||
//
|
//
|
||||||
// public ClassWithMethodAndField(char character) {
|
// public ClassWithMethodAndField(char character) {
|
||||||
@ -16,7 +16,7 @@ import de.maishai.typedast.Type;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
class AbstractSyntax_ClassWithMethodAndField {
|
public class AbstractSyntax_ClassWithMethodAndField {
|
||||||
public static Program get() {
|
public static Program get() {
|
||||||
List<Declaration> declarations = List.of(
|
List<Declaration> declarations = List.of(
|
||||||
new Declaration(
|
new Declaration(
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ClassWithMoreComplexMethodAndMain {
|
package MoreTestResources.AST;//public class ClassWithMoreComplexMethodAndMain {
|
||||||
// ClassWithMoreComplexMethodAndMain instance;
|
// ClassWithMoreComplexMethodAndMain instance;
|
||||||
//
|
//
|
||||||
// public boolean moreComplexMethod() {
|
// public boolean moreComplexMethod() {
|
@ -1,92 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class ComplexClass {
|
package MoreTestResources.AST;
|
||||||
//
|
|
||||||
// int x;
|
|
||||||
// int y;
|
|
||||||
// ComplexClass b;
|
|
||||||
// ComplexClass c;
|
|
||||||
//
|
|
||||||
// public ComplexClass() {
|
|
||||||
// this.y = 10;
|
|
||||||
// this.x = 2;
|
|
||||||
// int i;
|
|
||||||
// for (i = 0; i < (this.y + 1); i = i + 1) {
|
|
||||||
// int j;
|
|
||||||
// for (j = 0; j < this.y; j += 1) {
|
|
||||||
// this.x = this.x * this.x;
|
|
||||||
// if (this.x == 100) {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// this.y = 2;
|
|
||||||
// do {
|
|
||||||
// this.y = this.y + 1;
|
|
||||||
// } while (this.y < 10);
|
|
||||||
//
|
|
||||||
// int k = 0;
|
|
||||||
// for (k = 0; k < 10; k = k + 1) {
|
|
||||||
// if (k == 5) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass(int x) {
|
|
||||||
// this.b = new ComplexClass();
|
|
||||||
// this.c = new ComplexClass();
|
|
||||||
// this.x = x;
|
|
||||||
// this.b.x = 7;
|
|
||||||
// this.b.y = 13;
|
|
||||||
// this.c.x = this.b.getX() * this.b.y * this.b.getX('g');
|
|
||||||
// this.c.y = 25;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass(int x, int y) {
|
|
||||||
// this.x = x;
|
|
||||||
// this.y = y;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass initComplexClass(int x) {
|
|
||||||
// int a;
|
|
||||||
// a = 10;
|
|
||||||
// this.b = new ComplexClass(x);
|
|
||||||
// this.b.x = 10 + a;
|
|
||||||
// this.b.y = 20;
|
|
||||||
// this.b.c.x = 20 + a;
|
|
||||||
// if (methodCall()) {
|
|
||||||
// this.b.getC().b.y = this.b.x;
|
|
||||||
// }
|
|
||||||
// return this.b;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass init(int x, int y) {
|
|
||||||
// return new ComplexClass(x, y);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass(int x, int y, char z) {
|
|
||||||
// this.x = x;
|
|
||||||
// this.y = y;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getX(char z) {
|
|
||||||
// return this.x;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass getC() {
|
|
||||||
// return this.c;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getX() {
|
|
||||||
// return this.x;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public boolean methodCall() {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
@ -710,7 +622,7 @@ public class AbstractSyntax_ComplexClass {
|
|||||||
true,
|
true,
|
||||||
new MethodCall(
|
new MethodCall(
|
||||||
new FieldVarAccess(
|
new FieldVarAccess(
|
||||||
false,
|
true,
|
||||||
new FieldVarAccess(
|
new FieldVarAccess(
|
||||||
true,
|
true,
|
||||||
null,
|
null,
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.AST.ASTMore;//public class PublicClass {
|
package MoreTestResources.AST;//public class PublicClass {
|
||||||
//}
|
//}
|
||||||
|
|
||||||
import de.maishai.ast.records.Block;
|
import de.maishai.ast.records.Block;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructor {
|
package MoreTestResources.TypedAST;//public class ClassWithConstructor {
|
||||||
// int x;
|
// int x;
|
||||||
// public classWithConstructor() {
|
// public classWithConstructor() {
|
||||||
// this.x = 10;
|
// this.x = 10;
|
||||||
@ -226,16 +226,7 @@ public class TypedAbstractSyntax_ClassWithConstructor {
|
|||||||
typedParameters,
|
typedParameters,
|
||||||
typedBlock,
|
typedBlock,
|
||||||
Type.VOID,
|
Type.VOID,
|
||||||
List.of(
|
List.of()
|
||||||
new TypedLocalVariable(
|
|
||||||
"i",
|
|
||||||
Type.INT
|
|
||||||
),
|
|
||||||
new TypedLocalVariable(
|
|
||||||
"j",
|
|
||||||
Type.INT
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorAndMethodCall {
|
package MoreTestResources.TypedAST;//public class ClassWithConstructorAndMethodCall {
|
||||||
// int x;
|
// int x;
|
||||||
//
|
//
|
||||||
// public ClassWithConstructorAndMethodCall() {
|
// public ClassWithConstructorAndMethodCall() {
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorWithCodeInComments {
|
package MoreTestResources.TypedAST;//public class ClassWithConstructorWithCodeInComments {
|
||||||
// int x;
|
// int x;
|
||||||
// public ClassWithConstructorWithCodeInComments() {
|
// public ClassWithConstructorWithCodeInComments() {
|
||||||
// this.x = 10;
|
// this.x = 10;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorWithParameters {
|
package MoreTestResources.TypedAST;//public class ClassWithConstructorWithParameters {
|
||||||
// int x;
|
// int x;
|
||||||
// public classWithConstructorWithParameters(int startValue, int repetitions) {
|
// public classWithConstructorWithParameters(int startValue, int repetitions) {
|
||||||
// this.x = startValue;
|
// this.x = startValue;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithField {
|
package MoreTestResources.TypedAST;//public class ClassWithField {
|
||||||
// int x;
|
// int x;
|
||||||
//}
|
//}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithMethod {
|
package MoreTestResources.TypedAST;//public class ClassWithMethod {
|
||||||
// public boolean method() {
|
// public boolean method() {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithMethodAndField {
|
package MoreTestResources.TypedAST;//public class ClassWithMethodAndField {
|
||||||
// char c;
|
// char c;
|
||||||
//
|
//
|
||||||
// public ClassWithMethodAndField(char character) {
|
// public ClassWithMethodAndField(char character) {
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithMoreComplexMethodAndMain {
|
package MoreTestResources.TypedAST;//public class ClassWithMoreComplexMethodAndMain {
|
||||||
// ClassWithMoreComplexMethodAndMain instance;
|
// ClassWithMoreComplexMethodAndMain instance;
|
||||||
//
|
//
|
||||||
// public boolean moreComplexMethod() {
|
// public boolean moreComplexMethod() {
|
@ -1,93 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class ComplexClass {
|
package MoreTestResources.TypedAST;
|
||||||
//
|
|
||||||
// int x;
|
|
||||||
// int y;
|
|
||||||
// ComplexClass b;
|
|
||||||
// ComplexClass c;
|
|
||||||
//
|
|
||||||
// public ComplexClass() {
|
|
||||||
// this.y = 10;
|
|
||||||
// this.x = 2;
|
|
||||||
// int i;
|
|
||||||
// for (i = 0; i < (this.y + 1); i = i + 1) {
|
|
||||||
// int j;
|
|
||||||
// for (j = 0; j < this.y; j += 1) {
|
|
||||||
// this.x = this.x * this.x;
|
|
||||||
// if (this.x == 100) {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// this.y = 2;
|
|
||||||
// do {
|
|
||||||
// this.y = this.y + 1;
|
|
||||||
// } while (this.y < 10);
|
|
||||||
//
|
|
||||||
// int k;
|
|
||||||
// k = 0;
|
|
||||||
// for (k = 0; k < 10; k = k + 1) {
|
|
||||||
// if (k == 5) {
|
|
||||||
// return this;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass(int x) {
|
|
||||||
// this.b = new ComplexClass();
|
|
||||||
// this.c = new ComplexClass();
|
|
||||||
// this.x = x;
|
|
||||||
// this.b.x = 7;
|
|
||||||
// this.b.y = 13;
|
|
||||||
// this.c.x = this.b.getX() * this.b.y * this.b.getX('g');
|
|
||||||
// this.c.y = 25;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass(int x, int y) {
|
|
||||||
// this.x = x;
|
|
||||||
// this.y = y;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass initComplexClass(int x) {
|
|
||||||
// int a;
|
|
||||||
// a = 10;
|
|
||||||
// this.b = new ComplexClass(x);
|
|
||||||
// this.b.x = 10 + a;
|
|
||||||
// this.b.y = 20;
|
|
||||||
// this.b.c.x = 20 + a;
|
|
||||||
// if (methodCall()) {
|
|
||||||
// this.b.getC().b.y = this.b.x;
|
|
||||||
// }
|
|
||||||
// return this.b;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass init(int x, int y) {
|
|
||||||
// return new ComplexClass(x, y);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass(int x, int y, char z) {
|
|
||||||
// this.x = x;
|
|
||||||
// this.y = y;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getX(char z) {
|
|
||||||
// return this.x;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public ComplexClass getC() {
|
|
||||||
// return this.c;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getX() {
|
|
||||||
// return this.x;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public boolean methodCall() {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
@ -251,14 +162,14 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
),
|
),
|
||||||
new TypedAssignment(
|
new TypedAssignment(
|
||||||
new TypedBinary(
|
new TypedBinary(
|
||||||
new TypedIntLiteral(1, Type.INT),
|
|
||||||
Operator.ADD,
|
|
||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
false,
|
false,
|
||||||
null,
|
null,
|
||||||
"j",
|
"j",
|
||||||
Type.INT
|
Type.INT
|
||||||
),
|
),
|
||||||
|
Operator.ADD,
|
||||||
|
new TypedIntLiteral(1, Type.INT),
|
||||||
Type.INT
|
Type.INT
|
||||||
),
|
),
|
||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
@ -454,6 +365,8 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
List.of(),
|
List.of(),
|
||||||
List.of(
|
List.of(
|
||||||
new TypedReturn(
|
new TypedReturn(
|
||||||
|
null,
|
||||||
|
Type.VOID
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.VOID
|
Type.VOID
|
||||||
@ -477,12 +390,8 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
"ComplexClass",
|
"ComplexClass",
|
||||||
List.of(),
|
List.of(),
|
||||||
block,
|
block,
|
||||||
Type.REFERENCE("ComplexClass"),
|
Type.VOID,
|
||||||
List.of(
|
List.of()
|
||||||
new TypedLocalVariable("i", Type.INT),
|
|
||||||
new TypedLocalVariable("k", Type.INT),
|
|
||||||
new TypedLocalVariable("j", Type.INT)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -511,7 +420,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
true,
|
true,
|
||||||
null,
|
null,
|
||||||
"b",
|
"c",
|
||||||
Type.REFERENCE("ComplexClass")
|
Type.REFERENCE("ComplexClass")
|
||||||
),
|
),
|
||||||
Type.REFERENCE("ComplexClass")
|
Type.REFERENCE("ComplexClass")
|
||||||
@ -532,7 +441,10 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.INT
|
Type.INT
|
||||||
),
|
),
|
||||||
new TypedAssignment(
|
new TypedAssignment(
|
||||||
new TypedIntLiteral(7, Type.INT),
|
new TypedIntLiteral(
|
||||||
|
7,
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
true,
|
true,
|
||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
@ -656,9 +568,12 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
block,
|
block,
|
||||||
Type.REFERENCE("ComplexClass"),
|
Type.VOID,
|
||||||
List.of(
|
List.of(
|
||||||
new TypedLocalVariable("x", Type.INT)
|
new TypedLocalVariable(
|
||||||
|
"x",
|
||||||
|
Type.INT
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -713,10 +628,16 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
block,
|
block,
|
||||||
Type.REFERENCE("ComplexClass"),
|
Type.VOID,
|
||||||
List.of(
|
List.of(
|
||||||
new TypedLocalVariable("x", Type.INT),
|
new TypedLocalVariable(
|
||||||
new TypedLocalVariable("y", Type.INT)
|
"x",
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
|
new TypedLocalVariable(
|
||||||
|
"y",
|
||||||
|
Type.INT
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -775,11 +696,20 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
block,
|
block,
|
||||||
Type.REFERENCE("ComplexClass"),
|
Type.VOID,
|
||||||
List.of(
|
List.of(
|
||||||
new TypedLocalVariable("x", Type.INT),
|
new TypedLocalVariable(
|
||||||
new TypedLocalVariable("y", Type.INT),
|
"x",
|
||||||
new TypedLocalVariable("z", Type.CHAR)
|
Type.INT
|
||||||
|
),
|
||||||
|
new TypedLocalVariable(
|
||||||
|
"y",
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
|
new TypedLocalVariable(
|
||||||
|
"z",
|
||||||
|
Type.CHAR
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -933,7 +863,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
true,
|
true,
|
||||||
new TypedMethodCall(
|
new TypedMethodCall(
|
||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
false,
|
true,
|
||||||
new TypedFieldVarAccess(
|
new TypedFieldVarAccess(
|
||||||
true,
|
true,
|
||||||
null,
|
null,
|
||||||
@ -974,7 +904,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.REFERENCE("ComplexClass")
|
Type.REFERENCE("ComplexClass")
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.REFERENCE("ComplexClass")
|
Type.VOID
|
||||||
);
|
);
|
||||||
return new TypedMethod(
|
return new TypedMethod(
|
||||||
"initComplexClass",
|
"initComplexClass",
|
||||||
@ -985,10 +915,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.INT
|
Type.INT
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
List.of(
|
List.of(),
|
||||||
new TypedLocalVariable("x", Type.INT),
|
|
||||||
new TypedLocalVariable("a", Type.INT)
|
|
||||||
),
|
|
||||||
block
|
block
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1018,7 +945,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.REFERENCE("ComplexClass")
|
Type.REFERENCE("ComplexClass")
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.REFERENCE("ComplexClass")
|
Type.VOID
|
||||||
);
|
);
|
||||||
return new TypedMethod(
|
return new TypedMethod(
|
||||||
"init",
|
"init",
|
||||||
@ -1033,10 +960,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.INT
|
Type.INT
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
List.of(
|
List.of(),
|
||||||
new TypedLocalVariable("x", Type.INT),
|
|
||||||
new TypedLocalVariable("y", Type.INT)
|
|
||||||
),
|
|
||||||
block
|
block
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1055,7 +979,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.INT
|
Type.INT
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.INT
|
Type.VOID
|
||||||
);
|
);
|
||||||
return new TypedMethod(
|
return new TypedMethod(
|
||||||
"getX",
|
"getX",
|
||||||
@ -1066,9 +990,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.CHAR
|
Type.CHAR
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
List.of(
|
List.of(),
|
||||||
new TypedLocalVariable("z", Type.CHAR)
|
|
||||||
),
|
|
||||||
block
|
block
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1087,7 +1009,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.REFERENCE("ComplexClass")
|
Type.REFERENCE("ComplexClass")
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.REFERENCE("ComplexClass")
|
Type.VOID
|
||||||
);
|
);
|
||||||
return new TypedMethod(
|
return new TypedMethod(
|
||||||
"getC",
|
"getC",
|
||||||
@ -1112,7 +1034,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.INT
|
Type.INT
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.INT
|
Type.VOID
|
||||||
);
|
);
|
||||||
return new TypedMethod(
|
return new TypedMethod(
|
||||||
"getX",
|
"getX",
|
||||||
@ -1135,7 +1057,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
|||||||
Type.BOOL
|
Type.BOOL
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
Type.BOOL
|
Type.VOID
|
||||||
);
|
);
|
||||||
return new TypedMethod(
|
return new TypedMethod(
|
||||||
"methodCall",
|
"methodCall",
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.TypedAST.TypedASTMore;//public class PublicClass {
|
package MoreTestResources.TypedAST;//public class PublicClass {
|
||||||
//}
|
//}
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user