Example #1
0
  public Set<FiringSequence> getCorrectContinuationsRecursively() {
    Set<FiringSequence> correctContinuations = new HashSet<FiringSequence>();

    if (transition != null) { // transition == null if it is rootNode
      FiringSequence firingSequence = new FiringSequence();
      firingSequence.add(transition);
      correctContinuations.add(firingSequence);
    }

    for (LanguageNode nextNode : getNextNodes()) {
      for (FiringSequence nextFiringSequence : nextNode.getCorrectContinuationsRecursively()) {
        FiringSequence firingSequence = new FiringSequence();
        if (transition != null) { // not root node
          firingSequence.add(transition);
        }
        firingSequence.addAll(nextFiringSequence);
        correctContinuations.add(firingSequence);
      }
    }
    return correctContinuations;
  }