class_docstr: Statemachine that receives :class:`KeyPress` instances and according to the
  key bindings in the given :class:`KeyBindings`, calls the matching handlers.
  
  ::
  
      p = KeyProcessor(key_bindings)
  
      # Send keys into the processor.
      p.feed(KeyPress(Keys.ControlX, ''))
      p.feed(KeyPress(Keys.ControlC, '')
  
      # Process all the keys in the queue.
      p.process_keys()
  
      # Now the ControlX-ControlC callback will be called if this sequence is
      # registered in the key bindings.
  
  :param key_bindings: `KeyBindingsBase` instance.
docstr: Add a new :class:`KeyPress` to the input queue.
  (Don't forget to call `process_keys` in order to process the queue.)
  
  :param first: If true, insert before everything else.
docstr_tok: ["Add","a","new",":","class",":","`","KeyPress","`","to","the","input","queue",".","(","Do","n't","forget","to","call","`","process_keys","`","in","order","to","process","the","queue",".",")",":","param","first",":","If","true",",","insert","before","everything","else","."]
code: def feed(self, key_press: KeyPress, first: bool = False) -> None:
      """
      Add a new :class:`KeyPress` to the input queue.
      (Don't forget to call `process_keys` in order to process the queue.)
  
      :param first: If true, insert before everything else.
      """
      if first:
          self.input_queue.appendleft(key_press)
      else:
          self.input_queue.append(key_press)
  
imports: from __future__ import annotations
  import weakref
  from asyncio import Task, sleep
  from collections import deque
  from typing import TYPE_CHECKING, Any, Generator
  from prompt_toolkit.application.current import get_app
  from prompt_toolkit.enums import EditingMode
  from prompt_toolkit.filters.app import vi_navigation_mode
  from prompt_toolkit.keys import Keys
  from prompt_toolkit.utils import Event
  from .key_bindings import Binding, KeyBindingsBase
label_desc: Use image node_id 6 for calling the KeyProcessor obj's underlying member method code with example usage: obj.feed(key_press, first) without return types