# File lib/treetop/runtime/compiled_parser.rb, line 120
      def terminal_parse_failure(expected_string, unexpected = false)
        if @max_terminal_failure_index == -1
          @max_terminal_failure_index = 0
          return nil
        end
        return nil if index < max_terminal_failure_index
        if index > max_terminal_failure_index
          @max_terminal_failure_index = index
          @terminal_failures = []
        end
        @terminal_failures << [index, expected_string, unexpected]
        # It's very slow, but this shows the last 5 nested rules:
        # caller.reject{|l| l =~ /`loop'|`block in /}[0..5].reverse.map{|l| l.sub(/[^`]*`_nt_/,'').sub(/'/,'')}

        terminal_failures
        return nil
      end