From 0a9cc7655aa7b9da8db70631cec18fa48029c996 Mon Sep 17 00:00:00 2001 From: i22035 Date: Thu, 4 Jul 2024 23:07:54 +0200 Subject: [PATCH] Changed For Structure --- .../java/parser/astBuilder/ASTBuilder.java | 14 +-------- src/test/java/parser/AstBuilderTest.java | 31 ++----------------- .../input/singleFeatureTests/Null.java | 8 ----- 3 files changed, 4 insertions(+), 49 deletions(-) delete mode 100644 src/test/resources/input/singleFeatureTests/Null.java diff --git a/src/main/java/parser/astBuilder/ASTBuilder.java b/src/main/java/parser/astBuilder/ASTBuilder.java index b9cde7f..05d6b7a 100644 --- a/src/main/java/parser/astBuilder/ASTBuilder.java +++ b/src/main/java/parser/astBuilder/ASTBuilder.java @@ -332,15 +332,8 @@ public class ASTBuilder extends SimpleJavaBaseVisitor { // Inkrement IStatementExpressionNode crement = null; - boolean isPrefix = false; if (ctx.statementExpression(i) != null) { crement = (IStatementExpressionNode) visit(ctx.statementExpression(i)); - - if (crement instanceof IncrementNode) { - isPrefix = ((IncrementNode) crement).crementType == CrementType.PREFIX; - } else if (crement instanceof DecrementNode) { - isPrefix = ((DecrementNode) crement).crementType == CrementType.PREFIX; - } } BlockNode forBlock = (BlockNode) visit(ctx.blockStatement()); @@ -348,18 +341,13 @@ public class ASTBuilder extends SimpleJavaBaseVisitor { // While-Schleife BlockNode whileBody = new BlockNode(); - // Prä-Inkrement: Das Inkrement kommt vor dem Block - if (crement != null && isPrefix) { - whileBody.addStatement(crement); - } - // Block Statements der For-Schleife in den While-Block kopieren for (IStatementNode statement : forBlock.statements) { whileBody.addStatement(statement); } // Post-Inkrement: Das Inkrement kommt nach dem Block - if (crement != null && !isPrefix) { + if (crement != null) { whileBody.addStatement(crement); } diff --git a/src/test/java/parser/AstBuilderTest.java b/src/test/java/parser/AstBuilderTest.java index 335215f..26f1b07 100644 --- a/src/test/java/parser/AstBuilderTest.java +++ b/src/test/java/parser/AstBuilderTest.java @@ -308,31 +308,6 @@ class AstBuilderTest { assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); } - @Test - @DisplayName("Null Test") - public void nullTest() { - BlockNode blockCon = new BlockNode(); - MemberAccessNode memberAccess = new MemberAccessNode(true); - memberAccess.addIdentifier("a"); - - AssignableNode assignable = new AssignableNode(memberAccess); - - blockCon.addStatement(new AssignNode(assignable, new UnaryNode(new ValueNode(EnumValueNode.NULL_VALUE, "null")))); - blockCon.addStatement(new ReturnNode(null)); - ConstructorNode constructor = new ConstructorNode("public", "Null", blockCon); - - ClassNode class1 = new ClassNode("public", "Null"); - class1.addMember(new FieldNode(new AccessModifierNode("public"), new ReferenceType("Null"), "a")); - class1.addMember(constructor); - - ProgramNode expected = new ProgramNode(); - expected.addClass(class1); - - ASTNode actual = Helper.generateAST(directoryPath + "Null.java"); - - assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); - } - @Test @DisplayName("If Test") public void ifTest() { @@ -608,7 +583,7 @@ class AstBuilderTest { blockCon.addStatement(new LocalVariableDeclarationNode(new BaseType(TypeEnum.INT), "i", "=", new UnaryNode(new ValueNode(EnumValueNode.INT_VALUE, "10")))); blockCon.addStatement(whileStatement); blockCon.addStatement(new ReturnNode(null)); - ConstructorNode constructor = new ConstructorNode("public", "TestClass", blockCon); + ConstructorNode constructor = new ConstructorNode("public", "While", blockCon); ClassNode class1 = new ClassNode("public", "While"); class1.addMember(constructor); @@ -639,7 +614,7 @@ class AstBuilderTest { blockCon.addStatement(new LocalVariableDeclarationNode(new BaseType(TypeEnum.INT), "i", "=", new UnaryNode(new ValueNode(EnumValueNode.INT_VALUE, "0")))); blockCon.addStatement(blockDoWhile); blockCon.addStatement(new ReturnNode(null)); - ConstructorNode constructor = new ConstructorNode("public", "TestClass", blockCon); + ConstructorNode constructor = new ConstructorNode("public", "DoWhile", blockCon); ClassNode class1 = new ClassNode("public", "DoWhile"); class1.addMember(constructor); @@ -675,7 +650,7 @@ class AstBuilderTest { BlockNode blockCon = new BlockNode(); blockCon.addStatement(forStatement); blockCon.addStatement(new ReturnNode(null)); - ConstructorNode constructor = new ConstructorNode("public", "TestClass", blockCon); + ConstructorNode constructor = new ConstructorNode("public", "For", blockCon); ClassNode class1 = new ClassNode("public", "For"); class1.addMember(constructor); diff --git a/src/test/resources/input/singleFeatureTests/Null.java b/src/test/resources/input/singleFeatureTests/Null.java deleted file mode 100644 index 0eb2c8a..0000000 --- a/src/test/resources/input/singleFeatureTests/Null.java +++ /dev/null @@ -1,8 +0,0 @@ -class Null{ - - int a; - - public Null(){ - this.a = 1; - } -} \ No newline at end of file