+
    Ri.	                        R t ^ RIHt ^ RIHtHt ^ RIHtHt ^ RI	H
t
 ^ RIHt . ROt ! R	 R]R
7      t ! R R]4      t ! R R]4      tR# )z)
Base classes for prompt_toolkit lexers.
)annotations)ABCMetaabstractmethod)CallableHashable)Document)StyleAndTextTuplesLexerSimpleLexerDynamicLexerc                  <    ] tR t^tRt]R R l4       tR R ltRtR# )r	   z
Base class for all lexers.
c                    V ^8  d   QhRRRR/#    documentr   returnz#Callable[[int], StyleAndTextTuples] )formats   "Y/home/ubuntu/hermes-agent/venv/lib/python3.14/site-packages/prompt_toolkit/lexers/base.py__annotate__Lexer.__annotate__   s      X 2U     c                    R# )a$  
Takes a :class:`~prompt_toolkit.document.Document` and returns a
callable that takes a line number and returns a list of
``(style_str, text)`` tuples for that line.

XXX: Note that in the past, this was supposed to return a list
     of ``(Token, text)`` tuples, just like a Pygments lexer.
Nr   )selfr   s   &&r   lex_documentLexer.lex_document   s    r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   $   s      8 r   c                    \        V 4      # )zb
When this changes, `lex_document` could give a different output.
(Only used for `DynamicLexer`.)
)id)r   s   &r   invalidation_hashLexer.invalidation_hash$   s    
 $xr   r   N)	__name__
__module____qualname____firstlineno____doc__r   r   r    __static_attributes__r   r   r   r	   r	      s%       r   )	metaclassc                  6    ] tR t^,tRtRR R lltR R ltRtR# )	r
   z
Lexer that doesn't do any tokenizing and returns the whole input as one
token.

:param style: The style string for this lexer.
c                    V ^8  d   QhRRRR/# )r   stylestrr   Noner   )r   s   "r   r   SimpleLexer.__annotate__4   s      c 4 r   c                	    Wn         R # Nr+   )r   r+   s   &&r   __init__SimpleLexer.__init__4   s    
r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r.   7   s     
 
X 
2U 
r   c                	6   a a VP                   oR  VV 3R llpV# )c                    V ^8  d   QhRRRR/# )r   linenointr   r   r   )r   s   "r   r   .SimpleLexer.lex_document.<locals>.__annotate__:   s     	 	S 	%7 	r   c                X   <  SP                   SV ,          3.#   \         d    . u # i ; i)z%Return the tokens for the given line.)r+   
IndexError)r7   linesr   s   &r   get_line*SimpleLexer.lex_document.<locals>.get_line:   s2    U6]344 	s    )))r<   )r   r   r=   r<   s   f& @r   r   SimpleLexer.lex_document7   s    	 	 r   r1   N) )r"   r#   r$   r%   r&   r2   r   r'   r   r   r   r
   r
   ,   s    
 
r   c                  >    ] tR t^DtRtR R ltR R ltR R ltRtR	# )
r   zz
Lexer class that can dynamically returns any Lexer.

:param get_lexer: Callable that returns a :class:`.Lexer` instance.
c                    V ^8  d   QhRRRR/# )r   	get_lexerzCallable[[], Lexer | None]r   r-   r   )r   s   "r   r   DynamicLexer.__annotate__K   s     $ $"< $ $r   c                	0    Wn         \        4       V n        R # r0   )rC   r
   _dummy)r   rC   s   &&r   r2   DynamicLexer.__init__K   s    "!mr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   rD   O   s     , ,X ,2U ,r   c                	l    V P                  4       ;'       g    V P                  pVP                  V4      # r0   )rC   rF   r   )r   r   lexers   && r   r   DynamicLexer.lex_documentO   s+     //DKK!!(++r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rD   S   s      8 r   c                	`    V P                  4       ;'       g    V P                  p\        V4      # r0   )rC   rF   r   )r   rJ   s   & r   r    DynamicLexer.invalidation_hashS   s$     //DKK%yr   )rF   rC   N)	r"   r#   r$   r%   r&   r2   r   r    r'   r   r   r   r   r   D   s    $, r   N)r	   r
   r   )r&   
__future__r   abcr   r   typingr   r   prompt_toolkit.documentr   "prompt_toolkit.formatted_text.baser   __all__r	   r
   r   r   r   r   <module>rU      sF    # ' % , Ag 0% 05 r   