mirror of
https://github.com/JonathanFleischmann/CompilerULTIMATE.git
synced 2024-12-26 17:58: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
|
||||
- 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)
|
||||
- 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 static HelpFiles.TestFileTester.run;
|
||||
import static HelpClasses.TestFileTester.run;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
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 {
|
||||
char ZZ;
|
||||
import E2ETests.Features.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public E2ETests() {
|
||||
this.ZZ = 'z';
|
||||
// if (stuff1) {
|
||||
// ifcontent
|
||||
// } else if (stuff2) {
|
||||
// content2
|
||||
// } else if (stuffs3) {
|
||||
// content3
|
||||
// } else {
|
||||
// contents4
|
||||
// }
|
||||
import static HelpClasses.TestFileTester.run;
|
||||
|
||||
|
||||
class E2ETests {
|
||||
|
||||
// @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");
|
||||
//
|
||||
// if (stuff1) {
|
||||
// ifcontent
|
||||
// } else {
|
||||
// if (stuff2) {
|
||||
// content2
|
||||
// } else {
|
||||
// if (stuff3) {
|
||||
// content3
|
||||
// } else {
|
||||
// content4
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// 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);
|
||||
// } 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;
|
||||
|
||||
@ -31,7 +31,7 @@ public class BytecodeTestUtil {
|
||||
clazz = classLoader.loadClass(className);
|
||||
this.instance = clazz.getDeclaredConstructor().newInstance();
|
||||
} catch (ClassNotFoundException | SecurityException | NoSuchMethodException e) {
|
||||
LOGGER.log(Level.SEVERE, "Exception occur", e);
|
||||
LOGGER.log(Level.SEVERE, "Exception occurred", 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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_Break {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_Class {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_ClassObjects {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -19,7 +14,7 @@ public class ByteCode_Comment {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_CompAssign {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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 E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -16,7 +14,7 @@ public class ByteCode_ComplexCalls {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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 E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -17,7 +14,7 @@ public class ByteCode_Constructor {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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 E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -17,7 +14,7 @@ public class ByteCode_Continue {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -16,7 +14,7 @@ public class ByteCode_DataTypes {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -16,7 +14,7 @@ public class ByteCode_Field {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -17,7 +14,7 @@ public class ByteCode_For {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_If {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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 E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -17,7 +14,7 @@ public class ByteCode_LogicExpr {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.util.List;
|
||||
|
||||
public class ByteCode_Main {
|
||||
@ -13,7 +15,7 @@ public class ByteCode_Main {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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 de.maishai.typedast.typedclass.*;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -16,7 +14,7 @@ public class ByteCode_Method {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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 E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -17,7 +14,7 @@ public class ByteCode_MethodCall {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,8 +15,8 @@ public class ByteCode_MultipleClasses {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
try {
|
||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/MultipleClasses1.java",
|
||||
"src/test/testFiles/CodeGenFeatures/MultipleClasses2.java"), "MultipleClasses1");
|
||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/MultipleClasses1.java",
|
||||
"src/test/testFiles/E2EFeatures/MultipleClasses2.java"), "MultipleClasses1");
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@ -116,4 +117,9 @@ public class ByteCode_MultipleClasses {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -15,7 +15,7 @@ public class ByteCode_Operators {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_Overloaded {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
@ -16,7 +16,7 @@ public class ByteCode_Print {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_Return {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
@ -1,12 +1,9 @@
|
||||
package testResources.CodeGen.Features;
|
||||
package E2ETests.Features;
|
||||
|
||||
import de.maishai.ast.UnaryOperator;
|
||||
import de.maishai.typedast.Type;
|
||||
import de.maishai.typedast.typedclass.*;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -17,7 +14,7 @@ public class ByteCode_Unary {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_VariableDefWithDecl {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
try {
|
||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/CodeGenFeatures/VariableDefWithDecl.java"),
|
||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/VariableDefWithDecl.java"),
|
||||
"VariableDefWithDecl");
|
||||
} catch (Exception 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.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import testResources.CodeGen.BytecodeTestUtil;
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@ public class ByteCode_While {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
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) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.Constructor;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.records.*;
|
||||
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.Class;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.Class;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.records.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.records.*;
|
||||
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.Class;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.Class;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.records.*;
|
||||
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.records.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.records.*;
|
||||
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.records.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.records.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.records.*;
|
||||
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.records.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTFeatures;
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.records.*;
|
||||
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.records.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.typedclass.TypedBlock;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.typedast.Type;
|
||||
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.typedclass.TypedBlock;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.typedclass.*;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.typedast.Type;
|
||||
@ -130,7 +130,6 @@ public class TypedAST_Continue {
|
||||
Type.VOID
|
||||
),
|
||||
Type.VOID,
|
||||
// TODO: ist Konstruktor nicht immer vom Typ der Klasse?
|
||||
List.of()
|
||||
)
|
||||
),
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.typedast.Type;
|
||||
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.typedclass.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.typedclass.*;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.typedclass.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.typedast.Type;
|
||||
import de.maishai.typedast.typedclass.*;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.typedclass.*;
|
||||
@ -17,7 +17,34 @@ public class TypedAST_MultipleClasses {
|
||||
Type.REFERENCE("MultipleClasses2")
|
||||
)
|
||||
),
|
||||
List.of(),
|
||||
List.of(
|
||||
new TypedMethod(
|
||||
"getIFromAnotherClass",
|
||||
Type.INT,
|
||||
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(
|
||||
new TypedConstructor(
|
||||
"MultipleClasses1",
|
@ -1,7 +1,6 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.ast.records.FieldVarAccess;
|
||||
import de.maishai.typedast.Type;
|
||||
import de.maishai.typedast.typedclass.*;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.typedast.Type;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
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.typedclass.*;
|
||||
|
@ -1,8 +1,6 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
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.typedclass.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.typedclass.*;
|
||||
|
@ -1,8 +1,6 @@
|
||||
package testResources.TypedAST.TypedASTFeatures;
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
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.typedclass.*;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package HelpFiles;
|
||||
package HelpClasses;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
@ -1,16 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithConstructor {
|
||||
// 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;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
package MoreTestResources.AST;
|
||||
|
||||
import de.maishai.ast.*;
|
||||
import de.maishai.ast.records.*;
|
||||
@ -33,6 +21,7 @@ public class AbstractSyntax_ClassWithConstructor {
|
||||
List.of(
|
||||
new Class(
|
||||
"ClassWithConstructor",
|
||||
null,
|
||||
declarations,
|
||||
methods,
|
||||
constructors
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithConstructorAndMethodCall {
|
||||
package MoreTestResources.AST;//public class ClassWithConstructorAndMethodCall {
|
||||
// int x;
|
||||
//
|
||||
// public ClassWithConstructorAndMethodCall() {
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithConstructorWithCodeInComments {
|
||||
package MoreTestResources.AST;//public class ClassWithConstructorWithCodeInComments {
|
||||
// int x;
|
||||
// public ClassWithConstructorWithCodeInComments() {
|
||||
// this.x = 10;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithConstructorWithParameters {
|
||||
package MoreTestResources.AST;//public class ClassWithConstructorWithParameters {
|
||||
// int x;
|
||||
// public ClassWithConstructorWithParameters(int startValue, int repetitions) {
|
||||
// this.x = startValue;
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithField {
|
||||
package MoreTestResources.AST;//public class ClassWithField {
|
||||
// int x;
|
||||
//}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithMethod {
|
||||
package MoreTestResources.AST;//public class ClassWithMethod {
|
||||
// public boolean method() {
|
||||
// return false;
|
||||
// }
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithMethodAndField {
|
||||
package MoreTestResources.AST;//public class ClassWithMethodAndField {
|
||||
// char c;
|
||||
//
|
||||
// public ClassWithMethodAndField(char character) {
|
||||
@ -16,7 +16,7 @@ import de.maishai.typedast.Type;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
class AbstractSyntax_ClassWithMethodAndField {
|
||||
public class AbstractSyntax_ClassWithMethodAndField {
|
||||
public static Program get() {
|
||||
List<Declaration> declarations = List.of(
|
||||
new Declaration(
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ClassWithMoreComplexMethodAndMain {
|
||||
package MoreTestResources.AST;//public class ClassWithMoreComplexMethodAndMain {
|
||||
// ClassWithMoreComplexMethodAndMain instance;
|
||||
//
|
||||
// public boolean moreComplexMethod() {
|
@ -1,92 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class ComplexClass {
|
||||
//
|
||||
// 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;
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
package MoreTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.ast.records.*;
|
||||
@ -710,7 +622,7 @@ public class AbstractSyntax_ComplexClass {
|
||||
true,
|
||||
new MethodCall(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
true,
|
||||
new FieldVarAccess(
|
||||
true,
|
||||
null,
|
@ -1,4 +1,4 @@
|
||||
package testResources.AST.ASTMore;//public class PublicClass {
|
||||
package MoreTestResources.AST;//public class PublicClass {
|
||||
//}
|
||||
|
||||
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;
|
||||
// public classWithConstructor() {
|
||||
// this.x = 10;
|
||||
@ -226,16 +226,7 @@ public class TypedAbstractSyntax_ClassWithConstructor {
|
||||
typedParameters,
|
||||
typedBlock,
|
||||
Type.VOID,
|
||||
List.of(
|
||||
new TypedLocalVariable(
|
||||
"i",
|
||||
Type.INT
|
||||
),
|
||||
new TypedLocalVariable(
|
||||
"j",
|
||||
Type.INT
|
||||
)
|
||||
)
|
||||
List.of()
|
||||
);
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorAndMethodCall {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithConstructorAndMethodCall {
|
||||
// int x;
|
||||
//
|
||||
// public ClassWithConstructorAndMethodCall() {
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorWithCodeInComments {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithConstructorWithCodeInComments {
|
||||
// int x;
|
||||
// public ClassWithConstructorWithCodeInComments() {
|
||||
// this.x = 10;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorWithParameters {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithConstructorWithParameters {
|
||||
// int x;
|
||||
// public classWithConstructorWithParameters(int startValue, int repetitions) {
|
||||
// this.x = startValue;
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithField {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithField {
|
||||
// int x;
|
||||
//}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithMethod {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithMethod {
|
||||
// public boolean method() {
|
||||
// return false;
|
||||
// }
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithMethodAndField {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithMethodAndField {
|
||||
// char c;
|
||||
//
|
||||
// public ClassWithMethodAndField(char character) {
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ClassWithMoreComplexMethodAndMain {
|
||||
package MoreTestResources.TypedAST;//public class ClassWithMoreComplexMethodAndMain {
|
||||
// ClassWithMoreComplexMethodAndMain instance;
|
||||
//
|
||||
// public boolean moreComplexMethod() {
|
@ -1,93 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class ComplexClass {
|
||||
//
|
||||
// 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;
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
package MoreTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.typedast.Type;
|
||||
@ -251,14 +162,14 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedIntLiteral(1, Type.INT),
|
||||
Operator.ADD,
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"j",
|
||||
Type.INT
|
||||
),
|
||||
Operator.ADD,
|
||||
new TypedIntLiteral(1, Type.INT),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
@ -454,6 +365,8 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
List.of(),
|
||||
List.of(
|
||||
new TypedReturn(
|
||||
null,
|
||||
Type.VOID
|
||||
)
|
||||
),
|
||||
Type.VOID
|
||||
@ -477,12 +390,8 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
"ComplexClass",
|
||||
List.of(),
|
||||
block,
|
||||
Type.REFERENCE("ComplexClass"),
|
||||
List.of(
|
||||
new TypedLocalVariable("i", Type.INT),
|
||||
new TypedLocalVariable("k", Type.INT),
|
||||
new TypedLocalVariable("j", Type.INT)
|
||||
)
|
||||
Type.VOID,
|
||||
List.of()
|
||||
);
|
||||
}
|
||||
|
||||
@ -511,7 +420,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
new TypedFieldVarAccess(
|
||||
true,
|
||||
null,
|
||||
"b",
|
||||
"c",
|
||||
Type.REFERENCE("ComplexClass")
|
||||
),
|
||||
Type.REFERENCE("ComplexClass")
|
||||
@ -532,7 +441,10 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedIntLiteral(7, Type.INT),
|
||||
new TypedIntLiteral(
|
||||
7,
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
true,
|
||||
new TypedFieldVarAccess(
|
||||
@ -656,9 +568,12 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
)
|
||||
),
|
||||
block,
|
||||
Type.REFERENCE("ComplexClass"),
|
||||
Type.VOID,
|
||||
List.of(
|
||||
new TypedLocalVariable("x", Type.INT)
|
||||
new TypedLocalVariable(
|
||||
"x",
|
||||
Type.INT
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -713,10 +628,16 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
)
|
||||
),
|
||||
block,
|
||||
Type.REFERENCE("ComplexClass"),
|
||||
Type.VOID,
|
||||
List.of(
|
||||
new TypedLocalVariable("x", Type.INT),
|
||||
new TypedLocalVariable("y", Type.INT)
|
||||
new TypedLocalVariable(
|
||||
"x",
|
||||
Type.INT
|
||||
),
|
||||
new TypedLocalVariable(
|
||||
"y",
|
||||
Type.INT
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -775,11 +696,20 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
)
|
||||
),
|
||||
block,
|
||||
Type.REFERENCE("ComplexClass"),
|
||||
Type.VOID,
|
||||
List.of(
|
||||
new TypedLocalVariable("x", Type.INT),
|
||||
new TypedLocalVariable("y", Type.INT),
|
||||
new TypedLocalVariable("z", Type.CHAR)
|
||||
new TypedLocalVariable(
|
||||
"x",
|
||||
Type.INT
|
||||
),
|
||||
new TypedLocalVariable(
|
||||
"y",
|
||||
Type.INT
|
||||
),
|
||||
new TypedLocalVariable(
|
||||
"z",
|
||||
Type.CHAR
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -933,7 +863,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
true,
|
||||
new TypedMethodCall(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
true,
|
||||
new TypedFieldVarAccess(
|
||||
true,
|
||||
null,
|
||||
@ -974,7 +904,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.REFERENCE("ComplexClass")
|
||||
)
|
||||
),
|
||||
Type.REFERENCE("ComplexClass")
|
||||
Type.VOID
|
||||
);
|
||||
return new TypedMethod(
|
||||
"initComplexClass",
|
||||
@ -985,10 +915,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.INT
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
new TypedLocalVariable("x", Type.INT),
|
||||
new TypedLocalVariable("a", Type.INT)
|
||||
),
|
||||
List.of(),
|
||||
block
|
||||
);
|
||||
}
|
||||
@ -1018,7 +945,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.REFERENCE("ComplexClass")
|
||||
)
|
||||
),
|
||||
Type.REFERENCE("ComplexClass")
|
||||
Type.VOID
|
||||
);
|
||||
return new TypedMethod(
|
||||
"init",
|
||||
@ -1033,10 +960,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.INT
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
new TypedLocalVariable("x", Type.INT),
|
||||
new TypedLocalVariable("y", Type.INT)
|
||||
),
|
||||
List.of(),
|
||||
block
|
||||
);
|
||||
}
|
||||
@ -1055,7 +979,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.INT
|
||||
)
|
||||
),
|
||||
Type.INT
|
||||
Type.VOID
|
||||
);
|
||||
return new TypedMethod(
|
||||
"getX",
|
||||
@ -1066,9 +990,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.CHAR
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
new TypedLocalVariable("z", Type.CHAR)
|
||||
),
|
||||
List.of(),
|
||||
block
|
||||
);
|
||||
}
|
||||
@ -1087,7 +1009,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.REFERENCE("ComplexClass")
|
||||
)
|
||||
),
|
||||
Type.REFERENCE("ComplexClass")
|
||||
Type.VOID
|
||||
);
|
||||
return new TypedMethod(
|
||||
"getC",
|
||||
@ -1112,7 +1034,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.INT
|
||||
)
|
||||
),
|
||||
Type.INT
|
||||
Type.VOID
|
||||
);
|
||||
return new TypedMethod(
|
||||
"getX",
|
||||
@ -1135,7 +1057,7 @@ public class TypedAbstractSyntax_ComplexClass {
|
||||
Type.BOOL
|
||||
)
|
||||
),
|
||||
Type.BOOL
|
||||
Type.VOID
|
||||
);
|
||||
return new TypedMethod(
|
||||
"methodCall",
|
@ -1,4 +1,4 @@
|
||||
package testResources.TypedAST.TypedASTMore;//public class PublicClass {
|
||||
package MoreTestResources.TypedAST;//public class PublicClass {
|
||||
//}
|
||||
|
||||
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