mirror of
https://github.com/JonathanFleischmann/CompilerULTIMATE.git
synced 2024-12-28 15:18:04 +00:00
added testcase for Continue in TypedAST
This commit is contained in:
parent
032e965495
commit
67963b61b2
@ -1,16 +1,14 @@
|
|||||||
import de.maishai.Compiler;
|
import de.maishai.Compiler;
|
||||||
import de.maishai.typedast.typedclass.TypedProgram;
|
import de.maishai.typedast.typedclass.TypedProgram;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import testResources.typedAST.TypedASTFeatures.*;
|
import testResources.TypedAST.TypedASTFeatures.*;
|
||||||
import testResources.AST.ASTFeatures.*;
|
import testResources.AST.ASTFeatures.*;
|
||||||
import testResources.AST.ASTMore.AbstractSyntax_ClassWithConstructor;
|
import testResources.AST.ASTMore.AbstractSyntax_ClassWithConstructor;
|
||||||
import testResources.AST.ASTMore.AbstractSyntax_ClassWithField;
|
import testResources.AST.ASTMore.AbstractSyntax_ClassWithField;
|
||||||
import testResources.AST.ASTMore.AbstractSyntax_ComplexClass;
|
|
||||||
import testResources.AST.ASTMore.AbstractSyntax_PublicClass;
|
import testResources.AST.ASTMore.AbstractSyntax_PublicClass;
|
||||||
import testResources.typedAST.TypedASTMore.TypedAbstractSyntax_ClassWithConstructor;
|
import testResources.TypedAST.TypedASTMore.TypedAbstractSyntax_ClassWithConstructor;
|
||||||
import testResources.typedAST.TypedASTMore.TypedAbstractSyntax_ClassWithField;
|
import testResources.TypedAST.TypedASTMore.TypedAbstractSyntax_ClassWithField;
|
||||||
import testResources.typedAST.TypedASTMore.TypedAbstractSyntax_ComplexClass;
|
import testResources.TypedAST.TypedASTMore.TypedAbstractSyntax_PublicClass;
|
||||||
import testResources.typedAST.TypedASTMore.TypedAbstractSyntax_PublicClass;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
@ -63,12 +61,12 @@ public class TypingTests {
|
|||||||
TypedProgram resultTypedAst = Compiler.generateTypedASTFromAst(AST_Constructor.get());
|
TypedProgram resultTypedAst = Compiler.generateTypedASTFromAst(AST_Constructor.get());
|
||||||
assertEquals(TypedAST_Constructor.get(), resultTypedAst);
|
assertEquals(TypedAST_Constructor.get(), resultTypedAst);
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// @Test
|
@Test
|
||||||
// public void testContinue() {
|
public void testContinue() {
|
||||||
// TypedProgram resultTypedAst = Compiler.generateTypedASTFromAst(AST_Continue.get());
|
TypedProgram resultTypedAst = Compiler.generateTypedASTFromAst(AST_Continue.get());
|
||||||
// assertEquals(TypedAST_Continue.get(), resultTypedAst);
|
assertEquals(TypedAST_Continue.get(), resultTypedAst);
|
||||||
// }
|
}
|
||||||
//
|
//
|
||||||
// @Test
|
// @Test
|
||||||
// public void testField() {
|
// public void testField() {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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 testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.*;
|
import de.maishai.typedast.typedclass.*;
|
@ -1,9 +1,5 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
import de.maishai.ast.records.Block;
|
|
||||||
import de.maishai.ast.records.Class;
|
|
||||||
import de.maishai.ast.records.Constructor;
|
|
||||||
import de.maishai.ast.records.Program;
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
import de.maishai.typedast.typedclass.TypedBlock;
|
import de.maishai.typedast.typedclass.TypedBlock;
|
||||||
import de.maishai.typedast.typedclass.TypedClass;
|
import de.maishai.typedast.typedclass.TypedClass;
|
@ -1,8 +1,6 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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,103 +1,147 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
||||||
import de.maishai.ast.records.*;
|
import de.maishai.ast.records.*;
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
||||||
|
import de.maishai.typedast.typedclass.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TypedAST_Continue {
|
public class TypedAST_Continue {
|
||||||
public static Program get() {
|
public static TypedProgram get() {
|
||||||
return new Program(
|
return new TypedProgram(
|
||||||
List.of(
|
List.of(
|
||||||
new Class(
|
new TypedClass(
|
||||||
"Continue",
|
"Continue",
|
||||||
List.of(),
|
List.of(),
|
||||||
List.of(
|
List.of(
|
||||||
new Method(
|
new TypedMethod(
|
||||||
Type.VOID,
|
|
||||||
"continueLoop",
|
"continueLoop",
|
||||||
|
Type.VOID,
|
||||||
List.of(),
|
List.of(),
|
||||||
new Block(
|
List.of(),
|
||||||
|
new TypedBlock(
|
||||||
List.of(
|
List.of(
|
||||||
new Declaration(
|
new TypedLocalVariable(
|
||||||
|
"i",
|
||||||
|
Type.INT
|
||||||
|
)),
|
||||||
|
List.of(
|
||||||
|
new TypedFor(
|
||||||
|
new TypedAssignment(
|
||||||
|
new TypedIntLiteral(
|
||||||
|
0,
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
|
new TypedFieldVarAccess(
|
||||||
|
false,
|
||||||
|
null,
|
||||||
"i",
|
"i",
|
||||||
Type.INT
|
Type.INT
|
||||||
),
|
),
|
||||||
new For(
|
Type.INT
|
||||||
new Assignment(
|
),
|
||||||
new FieldVarAccess(
|
new TypedBinary(
|
||||||
|
new TypedFieldVarAccess(
|
||||||
false,
|
false,
|
||||||
null,
|
null,
|
||||||
"i"
|
"i",
|
||||||
),
|
Type.INT
|
||||||
new IntLiteral(0)
|
|
||||||
),
|
|
||||||
new Binary(
|
|
||||||
new FieldVarAccess(
|
|
||||||
false,
|
|
||||||
null,
|
|
||||||
"i"
|
|
||||||
),
|
),
|
||||||
Operator.LT,
|
Operator.LT,
|
||||||
new IntLiteral(5)
|
new TypedIntLiteral(
|
||||||
|
5,
|
||||||
|
Type.INT
|
||||||
),
|
),
|
||||||
new Assignment(
|
Type.BOOL
|
||||||
new FieldVarAccess(
|
),
|
||||||
|
new TypedAssignment(
|
||||||
|
new TypedBinary(
|
||||||
|
new TypedFieldVarAccess(
|
||||||
false,
|
false,
|
||||||
null,
|
null,
|
||||||
"i"
|
"i",
|
||||||
),
|
Type.INT
|
||||||
new Binary(
|
|
||||||
new FieldVarAccess(
|
|
||||||
false,
|
|
||||||
null,
|
|
||||||
"i"
|
|
||||||
),
|
),
|
||||||
Operator.ADD,
|
Operator.ADD,
|
||||||
new IntLiteral(1)
|
new TypedIntLiteral(
|
||||||
)
|
1,
|
||||||
|
Type.INT
|
||||||
),
|
),
|
||||||
new Block(
|
Type.INT
|
||||||
List.of(
|
),
|
||||||
new IfElse(
|
new TypedFieldVarAccess(
|
||||||
new Binary(
|
|
||||||
new FieldVarAccess(
|
|
||||||
false,
|
false,
|
||||||
null,
|
null,
|
||||||
"i"
|
"i",
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
|
Type.INT
|
||||||
|
),
|
||||||
|
new TypedBlock(
|
||||||
|
List.of(),
|
||||||
|
List.of(
|
||||||
|
new TypedIfElse(
|
||||||
|
new TypedBinary(
|
||||||
|
new TypedFieldVarAccess(
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
"i",
|
||||||
|
Type.INT
|
||||||
),
|
),
|
||||||
Operator.EQ,
|
Operator.EQ,
|
||||||
new IntLiteral(3)
|
new TypedIntLiteral(
|
||||||
|
3,
|
||||||
|
Type.INT
|
||||||
),
|
),
|
||||||
new Block(
|
Type.BOOL
|
||||||
|
),
|
||||||
|
new TypedBlock(
|
||||||
|
List.of(),
|
||||||
List.of(
|
List.of(
|
||||||
new Continue()
|
new TypedContinue()
|
||||||
|
),
|
||||||
|
Type.VOID
|
||||||
|
|
||||||
|
),
|
||||||
|
new TypedBlock(
|
||||||
|
List.of(),
|
||||||
|
List.of(),
|
||||||
|
Type.VOID
|
||||||
|
),
|
||||||
|
Type.VOID
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Type.VOID
|
||||||
|
),
|
||||||
|
Type.INT
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Type.VOID
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
List.of(
|
||||||
|
new TypedConstructor(
|
||||||
|
"Continue",
|
||||||
|
List.of(),
|
||||||
|
new TypedBlock(
|
||||||
|
List.of(),
|
||||||
|
List.of(),
|
||||||
|
Type.VOID
|
||||||
|
),
|
||||||
|
Type.VOID,
|
||||||
|
// TODO: ist Konstruktor nicht immer vom Typ der Klasse?
|
||||||
|
List.of()
|
||||||
|
)
|
||||||
|
),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
Type.REFERENCE("Continue")
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
null
|
null
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
List.of(
|
|
||||||
new Constructor(
|
|
||||||
"Continue",
|
|
||||||
List.of(),
|
|
||||||
new Block(
|
|
||||||
List.of(
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
import de.maishai.ast.Operator;
|
import de.maishai.ast.Operator;
|
||||||
import de.maishai.ast.records.Class;
|
import de.maishai.ast.records.Class;
|
@ -0,0 +1,5 @@
|
|||||||
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
|
public class TypedAST_MultipleClasses {
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTFeatures;
|
package testResources.TypedAST.TypedASTFeatures;
|
||||||
|
|
||||||
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.typedAST.TypedASTMore;//public class ClassWithConstructor {
|
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructor {
|
||||||
// int x;
|
// int x;
|
||||||
// public classWithConstructor() {
|
// public classWithConstructor() {
|
||||||
// this.x = 10;
|
// this.x = 10;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTMore;//public class ClassWithConstructorAndMethodCall {
|
package testResources.TypedAST.TypedASTMore;//public class ClassWithConstructorAndMethodCall {
|
||||||
// int x;
|
// int x;
|
||||||
//
|
//
|
||||||
// public ClassWithConstructorAndMethodCall() {
|
// public ClassWithConstructorAndMethodCall() {
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTMore;//public class ClassWithConstructorWithCodeInComments {
|
package testResources.TypedAST.TypedASTMore;//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 testResources.TypedAST.TypedASTMore;//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 testResources.TypedAST.TypedASTMore;//public class ClassWithField {
|
||||||
// int x;
|
// int x;
|
||||||
//}
|
//}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTMore;//public class ClassWithMethod {
|
package testResources.TypedAST.TypedASTMore;//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 testResources.TypedAST.TypedASTMore;//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 testResources.TypedAST.TypedASTMore;//public class ClassWithMoreComplexMethodAndMain {
|
||||||
// ClassWithMoreComplexMethodAndMain instance;
|
// ClassWithMoreComplexMethodAndMain instance;
|
||||||
//
|
//
|
||||||
// public boolean moreComplexMethod() {
|
// public boolean moreComplexMethod() {
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTMore;//public class ComplexClass {
|
package testResources.TypedAST.TypedASTMore;//public class ComplexClass {
|
||||||
//
|
//
|
||||||
// int x;
|
// int x;
|
||||||
// int y;
|
// int y;
|
@ -1,4 +1,4 @@
|
|||||||
package testResources.typedAST.TypedASTMore;//public class PublicClass {
|
package testResources.TypedAST.TypedASTMore;//public class PublicClass {
|
||||||
//}
|
//}
|
||||||
|
|
||||||
import de.maishai.typedast.Type;
|
import de.maishai.typedast.Type;
|
@ -1,5 +0,0 @@
|
|||||||
package testResources.typedAST.TypedASTFeatures;
|
|
||||||
|
|
||||||
public class TypedAST_MultipleClasses {
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user