# File lib/journey/gtg/simulator.rb, line 20
      def simulate string
        input = StringScanner.new string
        state = [0]
        until input.eos?
          sym   = input.scan(/[\/\.\?]|[^\/\.\?]+/)
          state = tt.move(state, sym)
        end

        acceptance_states = state.find_all { |s|
          tt.accepting? s
        }

        return if acceptance_states.empty?

        memos = acceptance_states.map { |x| tt.memo x }.flatten.compact

        MatchData.new memos
      end