diff --git a/AlgebraicDataflowArchitectureModel/src/generators/JavaImplementationVisitor.java b/AlgebraicDataflowArchitectureModel/src/generators/JavaImplementationVisitor.java index 2d5603c..7438a44 100644 --- a/AlgebraicDataflowArchitectureModel/src/generators/JavaImplementationVisitor.java +++ b/AlgebraicDataflowArchitectureModel/src/generators/JavaImplementationVisitor.java @@ -18,16 +18,16 @@ String exp = components[1]; String receiver = ""; if (implParamOrder == null) { - receiver = term.getChildren().get(0).toImplementation(sideEffects); + receiver = term.getChildren().get(0).accept(this, sideEffects); exp = exp.replace(params[0], receiver); for (int i = 1; i < params.length; i++) { - exp = exp.replace(params[i], term.getChildren().get(i).toImplementation(sideEffects)); + exp = exp.replace(params[i], term.getChildren().get(i).accept(this, sideEffects)); } } else { - receiver = term.getChildren().get(implParamOrder[0]).toImplementation(sideEffects); + receiver = term.getChildren().get(implParamOrder[0]).accept(this, sideEffects); exp = exp.replace(params[0], receiver); for (int i = 1; i < params.length; i++) { - exp = exp.replace(params[i], term.getChildren().get(implParamOrder[i]).toImplementation(sideEffects)); + exp = exp.replace(params[i], term.getChildren().get(implParamOrder[i]).accept(this, sideEffects)); } } if (term.getSymbol().isImplWithSideEffect()) { @@ -49,7 +49,7 @@ childrenTypes[i] = ((Term) child).getType(); } String[] childSideEffect = new String[]{""}; - childrenImpl[i] = child.toImplementation(childSideEffect); + childrenImpl[i] = child.accept(this, childSideEffect); childrenSideEffects[i] = childSideEffect[0]; } String exp = term.getSymbol().generate(term.getType(), childrenTypes, childrenImpl, childrenSideEffects, sideEffects); @@ -67,7 +67,7 @@ childrenTypes[i] = ((Term) child).getType(); } String[] childSideEffect = new String[]{""}; - childrenImpl[i] = child.toImplementation(childSideEffect); + childrenImpl[i] = child.accept(this, childSideEffect); childrenSideEffects[i] = childSideEffect[0]; } String exp = term.getSymbol().generate(term.getType(), childrenTypes, childrenImpl, childrenSideEffects, sideEffects); @@ -80,9 +80,9 @@ } if (term.getArity() == 2 && term.getSymbol().isImplInfix()) { if (implParamOrder == null) { - return "(" + term.getChildren().get(0).toImplementation(sideEffects) + term.getSymbol().toImplementation() + term.getChildren().get(1).toImplementation(sideEffects) + ")"; + return "(" + term.getChildren().get(0).accept(this, sideEffects) + term.getSymbol().toImplementation() + term.getChildren().get(1).accept(this, sideEffects) + ")"; } else { - return "(" + term.getChildren().get(implParamOrder[0]).toImplementation(sideEffects) + term.getSymbol().toImplementation() + term.getChildren().get(implParamOrder[1]).toImplementation(sideEffects) + ")"; + return "(" + term.getChildren().get(implParamOrder[0]).accept(this, sideEffects) + term.getSymbol().toImplementation() + term.getChildren().get(implParamOrder[1]).accept(this, sideEffects) + ")"; } } if ((term.getArity() >= 1 || term.getArity() == -1) && term.getSymbol().isImplMethod()) { @@ -90,7 +90,7 @@ String exp = null; String receiver = ""; if (term.getChildren().size() > 0 && term.getChildren().get(0) != null) { - receiver = term.getChildren().get(0).toImplementation(sideEffects); + receiver = term.getChildren().get(0).accept(this, sideEffects); exp = receiver + "." + term.getSymbol().toImplementation() + "("; } else { exp = term.getSymbol().toImplementation() + "("; @@ -98,7 +98,7 @@ String delimiter = ""; for (int i = 1; i < term.getChildren().size(); i++) { Expression e = term.getChildren().get(i); - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } exp += ")"; @@ -108,12 +108,12 @@ } return exp; } else { - String receiver = term.getChildren().get(implParamOrder[0]).toImplementation(sideEffects); + String receiver = term.getChildren().get(implParamOrder[0]).accept(this, sideEffects); String exp = receiver + "." + term.getSymbol().toImplementation() + "("; String delimiter = ""; for (int i = 1; i < term.getChildren().size(); i++) { Expression e = term.getChildren().get(implParamOrder[i]); - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } exp += ")"; @@ -128,7 +128,7 @@ String exp = term.getSymbol().toImplementation() + "("; String delimiter = ""; for (Expression e : term.getChildren()) { - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } return exp + ")"; @@ -137,7 +137,7 @@ String delimiter = ""; for (int i = 0; i < term.getChildren().size(); i++) { Expression e = term.getChildren().get(implParamOrder[i]); - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } return exp + ")"; @@ -175,7 +175,7 @@ String impl = ""; impl += "Map " + temp + " = new HashMap<>();\n"; for (String key : jsonTerm.keySet()) { - impl += temp + ".put(\"" + key + "\", " + jsonTerm.get(key).toImplementation(sideEffects) + ");\n"; + impl += temp + ".put(\"" + key + "\", " + jsonTerm.get(key).accept(this, sideEffects) + ");\n"; } sideEffects[0] += impl; return temp; @@ -184,7 +184,7 @@ @Override public String visit(JsonAccessor jsonAccessor, String[] sideEffects) { if (jsonAccessor.getSymbol().equals(DataConstraintModel.dotParam)) { - return jsonAccessor.getChildren().get(0).toImplementation(sideEffects) + "." + jsonAccessor.getSymbol().toImplementation() + "(" + jsonAccessor.getChildren().get(1).toImplementation(sideEffects) + ")"; + return jsonAccessor.getChildren().get(0).accept(this, sideEffects) + "." + jsonAccessor.getSymbol().toImplementation() + "(" + jsonAccessor.getChildren().get(1).accept(this, sideEffects) + ")"; } // Same logic of JavaImplementationVisitor#visit(Term, String[[]) @@ -196,16 +196,16 @@ String exp = components[1]; String receiver = ""; if (implParamOrder == null) { - receiver = jsonAccessor.getChildren().get(0).toImplementation(sideEffects); + receiver = jsonAccessor.getChildren().get(0).accept(this, sideEffects); exp = exp.replace(params[0], receiver); for (int i = 1; i < params.length; i++) { - exp = exp.replace(params[i], jsonAccessor.getChildren().get(i).toImplementation(sideEffects)); + exp = exp.replace(params[i], jsonAccessor.getChildren().get(i).accept(this, sideEffects)); } } else { - receiver = jsonAccessor.getChildren().get(implParamOrder[0]).toImplementation(sideEffects); + receiver = jsonAccessor.getChildren().get(implParamOrder[0]).accept(this, sideEffects); exp = exp.replace(params[0], receiver); for (int i = 1; i < params.length; i++) { - exp = exp.replace(params[i], jsonAccessor.getChildren().get(implParamOrder[i]).toImplementation(sideEffects)); + exp = exp.replace(params[i], jsonAccessor.getChildren().get(implParamOrder[i]).accept(this, sideEffects)); } } if (jsonAccessor.getSymbol().isImplWithSideEffect()) { @@ -227,7 +227,7 @@ childrenTypes[i] = ((Term) child).getType(); } String[] childSideEffect = new String[]{""}; - childrenImpl[i] = child.toImplementation(childSideEffect); + childrenImpl[i] = child.accept(this, childSideEffect); childrenSideEffects[i] = childSideEffect[0]; } String exp = jsonAccessor.getSymbol().generate(jsonAccessor.getType(), childrenTypes, childrenImpl, childrenSideEffects, sideEffects); @@ -245,7 +245,7 @@ childrenTypes[i] = ((Term) child).getType(); } String[] childSideEffect = new String[]{""}; - childrenImpl[i] = child.toImplementation(childSideEffect); + childrenImpl[i] = child.accept(this, childSideEffect); childrenSideEffects[i] = childSideEffect[0]; } String exp = jsonAccessor.getSymbol().generate(jsonAccessor.getType(), childrenTypes, childrenImpl, childrenSideEffects, sideEffects); @@ -258,9 +258,9 @@ } if (jsonAccessor.getArity() == 2 && jsonAccessor.getSymbol().isImplInfix()) { if (implParamOrder == null) { - return "(" + jsonAccessor.getChildren().get(0).toImplementation(sideEffects) + jsonAccessor.getSymbol().toImplementation() + jsonAccessor.getChildren().get(1).toImplementation(sideEffects) + ")"; + return "(" + jsonAccessor.getChildren().get(0).accept(this, sideEffects) + jsonAccessor.getSymbol().toImplementation() + jsonAccessor.getChildren().get(1).accept(this, sideEffects) + ")"; } else { - return "(" + jsonAccessor.getChildren().get(implParamOrder[0]).toImplementation(sideEffects) + jsonAccessor.getSymbol().toImplementation() + jsonAccessor.getChildren().get(implParamOrder[1]).toImplementation(sideEffects) + ")"; + return "(" + jsonAccessor.getChildren().get(implParamOrder[0]).accept(this, sideEffects) + jsonAccessor.getSymbol().toImplementation() + jsonAccessor.getChildren().get(implParamOrder[1]).accept(this, sideEffects) + ")"; } } if ((jsonAccessor.getArity() >= 1 || jsonAccessor.getArity() == -1) && jsonAccessor.getSymbol().isImplMethod()) { @@ -268,7 +268,7 @@ String exp = null; String receiver = ""; if (jsonAccessor.getChildren().size() > 0 && jsonAccessor.getChildren().get(0) != null) { - receiver = jsonAccessor.getChildren().get(0).toImplementation(sideEffects); + receiver = jsonAccessor.getChildren().get(0).accept(this, sideEffects); exp = receiver + "." + jsonAccessor.getSymbol().toImplementation() + "("; } else { exp = jsonAccessor.getSymbol().toImplementation() + "("; @@ -276,7 +276,7 @@ String delimiter = ""; for (int i = 1; i < jsonAccessor.getChildren().size(); i++) { Expression e = jsonAccessor.getChildren().get(i); - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } exp += ")"; @@ -286,12 +286,12 @@ } return exp; } else { - String receiver = jsonAccessor.getChildren().get(implParamOrder[0]).toImplementation(sideEffects); + String receiver = jsonAccessor.getChildren().get(implParamOrder[0]).accept(this, sideEffects); String exp = receiver + "." + jsonAccessor.getSymbol().toImplementation() + "("; String delimiter = ""; for (int i = 1; i < jsonAccessor.getChildren().size(); i++) { Expression e = jsonAccessor.getChildren().get(implParamOrder[i]); - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } exp += ")"; @@ -306,7 +306,7 @@ String exp = jsonAccessor.getSymbol().toImplementation() + "("; String delimiter = ""; for (Expression e : jsonAccessor.getChildren()) { - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } return exp + ")"; @@ -315,7 +315,7 @@ String delimiter = ""; for (int i = 0; i < jsonAccessor.getChildren().size(); i++) { Expression e = jsonAccessor.getChildren().get(implParamOrder[i]); - exp += (delimiter + e.toImplementation(sideEffects)); + exp += (delimiter + e.accept(this, sideEffects)); delimiter = ","; } return exp + ")";