diff --git a/src/main/java/de/tla2b/types/TupleType.java b/src/main/java/de/tla2b/types/TupleType.java index b28632a412cf131f39d209e2f3307ff4ef3ea46c..4a6500c1603eda951a80664c7638e311add58479 100644 --- a/src/main/java/de/tla2b/types/TupleType.java +++ b/src/main/java/de/tla2b/types/TupleType.java @@ -1,9 +1,9 @@ package de.tla2b.types; -import de.be4.classicalb.core.parser.node.AMultOrCartExpression; import de.be4.classicalb.core.parser.node.PExpression; import de.tla2b.exceptions.UnificationException; import de.tla2b.output.TypeVisitorInterface; +import de.tla2bAst.BAstCreator; import java.util.ArrayList; import java.util.List; @@ -25,7 +25,7 @@ public class TupleType extends AbstractHasFollowers { setTypes(list); } - public ArrayList<TLAType> getTypes() { + public List<TLAType> getTypes() { return new ArrayList<>(types); } @@ -95,7 +95,7 @@ public class TupleType extends AbstractHasFollowers { @Override public TLAType cloneTLAType() { - ArrayList<TLAType> list = new ArrayList<>(); + List<TLAType> list = new ArrayList<>(); for (TLAType tlaType : types) { list.add(tlaType.cloneTLAType()); } @@ -146,24 +146,7 @@ public class TupleType extends AbstractHasFollowers { @Override public PExpression getBNode() { - List<PExpression> list = new ArrayList<>(); - for (TLAType t : types) { - list.add(t.getBNode()); - } - AMultOrCartExpression card = new AMultOrCartExpression(); - card.setLeft(list.get(0)); - for (int i = 1; i < list.size(); i++) { - if (i < list.size() - 1) { - AMultOrCartExpression old = card; - old.setRight(list.get(i)); - card = new AMultOrCartExpression(); - card.setLeft(old); - } else { - card.setRight(list.get(i)); - } - - } - return card; + return BAstCreator.createNestedCouple(types); } public void apply(TypeVisitorInterface visitor) {