@NotNull RunnerResult analyzeFlow(@NotNull PsiElement psiBlock,
                                    @NotNull DfaListener listener,
                                    @NotNull Collection<? extends DfaMemoryState> initialStates,
                                    ControlFlow flow) {
    List<DfaInstructionState> startingStates = createInitialInstructionStates(psiBlock, initialStates, flow);
    if (startingStates.isEmpty()) {
      return RunnerResult.ABORTED;
    }

    return interpret(listener, flow, startingStates);
  }
@NotNull RunnerResult analyzeFlow(@NotNull PsiElement psiBlock,
                                    @NotNull DfaListener listener,
                                    @NotNull Collection<? extends DfaMemoryState> initialStates,
                                    ControlFlow flow)