code: @Override
      protected void checkTransitions(StreamTokenizer streamTokenizer) throws FSMParseException {
  
          // Only if no states are defined we add all from the transitions we found.
          // This is necessary because states are not necessarily defined in FSMs.
          if (getStates().isEmpty()) {
              getStates().addAll(transitionsFSM.keySet());
          }
  
          // copy the set of states
          final Set<Integer> newStates = new HashSet<>(getStates());
  
          // retrieve the initial state in the FSM source
          final Integer initialState = getStates().iterator().next();
  
          // make the actual FSM transitions
          makeTransitions(initialState, null, newStates, 0, output != null ? new WordBuilder<>() : null, streamTokenizer);
  
          // check we do not have a partial FSM
          if (!newStates.isEmpty()) {
              throw new FSMParseException(String.format(PARTIAL_FSM, newStates, initialState), streamTokenizer);
          }
      }
docs: Creates the actual Mealy machine transitions.
  
  @throws FSMParseException
  when the Mealy machine is partial.