diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/EnhancedForStatement.java b/AlgebraicDataflowArchitectureModel/src/code/ast/EnhancedForStatement.java index e1d1b42..a447d10 100644 --- a/AlgebraicDataflowArchitectureModel/src/code/ast/EnhancedForStatement.java +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/EnhancedForStatement.java @@ -3,14 +3,14 @@ public class EnhancedForStatement extends Statement { private VariableDeclaration singleVariableDeclaration; - private Statement expression; + private Expression expression; private Statement body; public VariableDeclaration getParameter() { return singleVariableDeclaration; } public void setParameter(VariableDeclaration parameter) { this.singleVariableDeclaration = parameter; } - public Statement getExpression() { return expression; } - public void setExpression(Statement expression) { this.expression = expression; } + public Expression getExpression() { return expression; } + public void setExpression(Expression expression) { this.expression = expression; } public Statement getBody() { return body; } public void setBody(Statement body) { this.body = body; } diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/ExpressionStatement.java b/AlgebraicDataflowArchitectureModel/src/code/ast/ExpressionStatement.java index 1d23a01..5784610 100644 --- a/AlgebraicDataflowArchitectureModel/src/code/ast/ExpressionStatement.java +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/ExpressionStatement.java @@ -1,10 +1,10 @@ package code.ast; public class ExpressionStatement extends Statement{ - private Statement expression; + private Expression expression; - public Statement getExpression() { return expression; } - public void setExpression(Statement expression) { this.expression = expression; } + public Expression getExpression() { return expression; } + public void setExpression(Expression expression) { this.expression = expression; } @Override public String toString() { diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/ForStatement.java b/AlgebraicDataflowArchitectureModel/src/code/ast/ForStatement.java index bf736a5..479d6b5 100644 --- a/AlgebraicDataflowArchitectureModel/src/code/ast/ForStatement.java +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/ForStatement.java @@ -6,7 +6,7 @@ public class ForStatement extends Statement { private List initializers = new ArrayList<>(); - private Statement condition; + private Expression optionalConditionExpression; private List updaters = new ArrayList<>(); private Statement body; @@ -18,12 +18,12 @@ this.initializers = initializers; } - public Statement getCondition() { - return condition; + public Expression getExpression() { + return optionalConditionExpression; } - public void setCondition(Statement condition) { - this.condition = condition; + public void setExpression(Expression expression) { + this.optionalConditionExpression = expression; } public List getUpdaters() { @@ -53,7 +53,7 @@ } sb.append("; "); - if (condition != null) sb.append(condition); + if (optionalConditionExpression != null) sb.append(optionalConditionExpression); sb.append("; "); for (int i = 0; i < updaters.size(); i++) { diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/IfStatement.java b/AlgebraicDataflowArchitectureModel/src/code/ast/IfStatement.java index e7521f1..d688700 100644 --- a/AlgebraicDataflowArchitectureModel/src/code/ast/IfStatement.java +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/IfStatement.java @@ -2,15 +2,15 @@ public class IfStatement extends Statement { - private Statement expression; + private Expression expression; private Statement thenStatement; private Statement elseStatement; - public Statement getExpression() { + public Expression getExpression() { return expression; } - public void setExpression(Statement expression) { + public void setExpression(Expression expression) { this.expression = expression; } diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/ReturnStatement.java b/AlgebraicDataflowArchitectureModel/src/code/ast/ReturnStatement.java index 501cd26..400de02 100644 --- a/AlgebraicDataflowArchitectureModel/src/code/ast/ReturnStatement.java +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/ReturnStatement.java @@ -1,13 +1,13 @@ package code.ast; public class ReturnStatement extends Statement{ - private Statement expression; + private Expression expression; - public Statement getExpression() { + public Expression getExpression() { return expression; } - public void setExpression(Statement expression) { + public void setExpression(Expression expression) { this.expression = expression; } diff --git a/AlgebraicDataflowArchitectureModel/src/tests/ASTTest.java b/AlgebraicDataflowArchitectureModel/src/tests/ASTTest.java index 1bb233e..90905dd 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/ASTTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/ASTTest.java @@ -1,72 +1,72 @@ -package tests; - -import code.ast.*; -import models.dataConstraintModel.DataConstraintModel; - -import java.util.Arrays; -import java.util.List; - -public class ASTTest { - public static void main(String[] args) { - - MethodDeclaration method = new MethodDeclaration("Test", false); - Block methodBody = new Block(); - - VariableDeclarationStatement varStmt = new VariableDeclarationStatement(); - varStmt.setModifiers(List.of(new PlainStatement("private"))); - //varStmt.setType(new PrimitiveType(new SimpleType("int"))); - varStmt.setFragments(List.of( - new VariableDeclaration(DataConstraintModel.typeInt, "x"), - new VariableDeclaration(DataConstraintModel.typeInt, "sum") - )); - methodBody.addStatement(varStmt); - - ForStatement forStmt = new ForStatement(); - forStmt.setInitializers(Arrays.asList(new PlainStatement("int j = 0"))); - forStmt.setCondition(new PlainStatement("j < 5")); - forStmt.setUpdaters(Arrays.asList(new PlainStatement("j++"))); - Block forBody = new Block(); - forBody.addStatement("sum += j;"); - forStmt.setBody(forBody); - methodBody.addStatement(forStmt); - - EnhancedForStatement enhancedFor = new EnhancedForStatement(); - enhancedFor.setParameter(new VariableDeclaration(DataConstraintModel.typeString, "s")); - enhancedFor.setExpression(new PlainStatement("list")); - Block eForBody = new Block(); - eForBody.addStatement("System.out.println(s);"); - enhancedFor.setBody(eForBody); - methodBody.addStatement(enhancedFor); - - WhileStatement whileStmt = new WhileStatement(); - whileStmt.setExpression(new PlainStatement("sum < 100")); - - Block whileBody = new Block(); - IfStatement ifStmt = new IfStatement(); - ifStmt.setExpression(new PlainStatement("sum % 2 == 0")); - - Block thenBlock = new Block(); - ExpressionStatement exprStmt = new ExpressionStatement(); - exprStmt.setExpression(new PlainStatement("sum += 10")); - thenBlock.addStatement(exprStmt); - - Block elseBlock = new Block(); - elseBlock.addStatement("sum += 5;"); - - ifStmt.setThenStatement(thenBlock); - ifStmt.setElseStatement(elseBlock); - - whileBody.addStatement(ifStmt); - whileStmt.setBody(whileBody); - methodBody.addStatement(whileStmt); - - ReturnStatement returnStmt = new ReturnStatement(); - returnStmt.setExpression(new PlainStatement("sum")); - methodBody.addStatement(returnStmt); - - method.setBody(methodBody); - - System.out.println("--- Generated Code ---"); - System.out.println(method.toString()); - } -} \ No newline at end of file +//package tests; +// +//import code.ast.*; +//import models.dataConstraintModel.DataConstraintModel; +// +//import java.util.Arrays; +//import java.util.List; +// +//public class ASTTest { +// public static void main(String[] args) { +// +// MethodDeclaration method = new MethodDeclaration("Test", false); +// Block methodBody = new Block(); +// +// VariableDeclarationStatement varStmt = new VariableDeclarationStatement(); +// varStmt.setModifiers(List.of(new PlainStatement("private"))); +// //varStmt.setType(new PrimitiveType(new SimpleType("int"))); +// varStmt.setFragments(List.of( +// new VariableDeclaration(DataConstraintModel.typeInt, "x"), +// new VariableDeclaration(DataConstraintModel.typeInt, "sum") +// )); +// methodBody.addStatement(varStmt); +// +// ForStatement forStmt = new ForStatement(); +// forStmt.setInitializers(Arrays.asList(new PlainStatement("int j = 0"))); +// forStmt.setExpression(new PlainStatement("j < 5")); +// forStmt.setUpdaters(Arrays.asList(new PlainStatement("j++"))); +// Block forBody = new Block(); +// forBody.addStatement("sum += j;"); +// forStmt.setBody(forBody); +// methodBody.addStatement(forStmt); +// +// EnhancedForStatement enhancedFor = new EnhancedForStatement(); +// enhancedFor.setParameter(new VariableDeclaration(DataConstraintModel.typeString, "s")); +// enhancedFor.setExpression(new PlainStatement("list")); +// Block eForBody = new Block(); +// eForBody.addStatement("System.out.println(s);"); +// enhancedFor.setBody(eForBody); +// methodBody.addStatement(enhancedFor); +// +// WhileStatement whileStmt = new WhileStatement(); +// whileStmt.setExpression(new PlainStatement("sum < 100")); +// +// Block whileBody = new Block(); +// IfStatement ifStmt = new IfStatement(); +// ifStmt.setExpression(new PlainStatement("sum % 2 == 0")); +// +// Block thenBlock = new Block(); +// ExpressionStatement exprStmt = new ExpressionStatement(); +// exprStmt.setExpression(new Expression("sum += 10")); +// thenBlock.addStatement(exprStmt); +// +// Block elseBlock = new Block(); +// elseBlock.addStatement("sum += 5;"); +// +// ifStmt.setThenStatement(thenBlock); +// ifStmt.setElseStatement(elseBlock); +// +// whileBody.addStatement(ifStmt); +// whileStmt.setBody(whileBody); +// methodBody.addStatement(whileStmt); +// +// ReturnStatement returnStmt = new ReturnStatement(); +// returnStmt.setExpression(new PlainStatement("sum")); +// methodBody.addStatement(returnStmt); +// +// method.setBody(methodBody); +// +// System.out.println("--- Generated Code ---"); +// System.out.println(method.toString()); +// } +//} \ No newline at end of file