protected final @NotNull RunnerResult interpret(@NotNull DfaListener listener,
                                                  @NotNull ControlFlow flow,
                                                  @NotNull List<DfaInstructionState> startingStates) {
    myInterpreter = createInterpreter(listener, flow);
    RunnerResult result = myInterpreter.interpret(startingStates);
    afterInterpretation(flow, myInterpreter, result);
    return result;
  }
protected final @NotNull RunnerResult interpret(@NotNull DfaListener listener,
                                                  @NotNull ControlFlow flow,
                                                  @NotNull List<DfaInstructionState> startingStates)