diff --git a/prism/src/acceptance/AcceptanceGeneric.java b/prism/src/acceptance/AcceptanceGeneric.java index 5aa92458..91020a4d 100644 --- a/prism/src/acceptance/AcceptanceGeneric.java +++ b/prism/src/acceptance/AcceptanceGeneric.java @@ -27,7 +27,10 @@ package acceptance; +import java.util.ArrayList; import java.util.BitSet; +import java.util.Collections; +import java.util.List; import prism.PrismException; import prism.PrismNotSupportedException; @@ -156,6 +159,29 @@ public class AcceptanceGeneric implements AcceptanceOmega { return false; } + /** Get a list of all the (non-true/false) leaf nodes in this acceptance condition */ + public List getLeafNodes() + { + switch (getKind()) { + case AND: + case OR: { + List result = new ArrayList(); + result.addAll(left.getLeafNodes()); + result.addAll(right.getLeafNodes()); + return result; + } + case TRUE: + case FALSE: + return Collections.emptyList(); + case FIN: + case FIN_NOT: + case INF: + case INF_NOT: + return Collections.singletonList(this); + } + throw new UnsupportedOperationException("Unknown kind"); + } + @Override public String getSignatureForState(int i) { return "";