ó
    Ãu„jë  ã                  óö   • S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
Jr  S SKJr   " S S\5      r " S S\5      r " S	 S
\5      r " S S\
5      r " S S\
5      r\" S5      r\\/S4   r " S S\\   5      rg)é    )Úannotations)Údeque)ÚCallableÚDequeÚ	GeneratorÚGenericÚIterableÚ
NamedTupleÚTypeVar)Úget_timec                  ó   • \ rS rSrSrSrg)Ú
ParseErroré	   z$Base class for parse related errors.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú�C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\textual/_parser.pyr   r   	   s   † Ü.r   r   c                  ó   • \ rS rSrSrSrg)ÚParseEOFé   zEnd of Stream.r   Nr   r   r   r   r   r      s   † Ür   r   c                  ó   • \ rS rSrSrSrg)ÚParseTimeouté   zRead has timed out.r   Nr   r   r   r   r   r      s   † Ür   r   c                  ó(   • \ rS rSr% SrSrS\S'   Srg)ÚRead1é   zReads a single character.Núfloat | NoneÚtimeoutr   ©r   r   r   r   r   r$   Ú__annotations__r   r   r   r   r!   r!      s   ‡ Ù#à €Gˆ\Ó Ú&r   r!   c                  ó(   • \ rS rSr% SrSrS\S'   Srg)ÚPeek1é   zCReads a single character, but does not advance the parser position.Nr#   r$   r   r%   r   r   r   r(   r(      s   ‡ ÙMà €Gˆ\Ó Ú&r   r(   ÚTNc                  ód   • \ rS rSrSr\r\rS
S jr	\
SS j5       rSS jrSS jr    SS jrSrg	)ÚParseré'   zBase class for a simple parser.c                óÆ   • SU l         [        5       U l        U R                  U R                  R                  5      U l        [        U R
                  5      U l        S U l        g )NF)	Ú_eofr   Ú_tokensÚparseÚappendÚ_genÚnextÚ	_awaitingÚ_timeout_time©Úselfs    r   Ú__init__ÚParser.__init__-   sC   € ØˆŒ	Ü!&£ˆŒØ—J‘J˜tŸ|™|×2Ñ2Ó3ˆŒ	Ü(,¨T¯Y©Y«ˆŒØ+/ˆÕr   c                ó   • U R                   $ )z6Is the parser at the end of the file (i.e. exhausted)?)r/   r7   s    r   Úis_eofÚParser.is_eof4   s   € ð �y‰yÐr   c              #  ó:  #   • U R                   bŠ  [        5       U R                   :¼  aq  SU l         U R                  R                  [	        5       5      U l        U R                  (       a0  U R                  R                  5       v •  U R                  (       a  M/  gggg7f)z0Call at regular intervals to check for timeouts.N)r6   r   r3   Úthrowr   r5   r0   Úpopleftr7   s    r   ÚtickÚParser.tick9   sl   é € à×ÑÑ)¬h«j¸D×<NÑ<NÓ.NØ!%ˆDÔØ!ŸY™YŸ_™_¬\«^Ó<ˆDŒNØ—,—,Ø—l‘l×*Ñ*Ó,Ò,ð —,—,“,ð /OÐ)ùs   ‚BBÂBc              #  ó^  #   • U R                   (       a  [        S5      SeU R                  nUR                  nU(       dE  SU l          U R                  R                  [        5       5        U(       a  U" 5       v •  U(       a  M  gSn[        U5      nU(       a  U" 5       v •  U(       a  M  XE:  aì  U R                  n[        U[        5      (       a/  SU l        U R                  R                  X   5      U l	        US-  nO>[        U[        5      (       a)  SU l        U R                  R                  X   5      U l	        U R                  R                  b&  [!        5       U R                  R                  -   U l        U(       a  U" 5       v •  U(       a  M  XE:  a  Më  gg! [         a     GN?f = f7f)z˜Feed data to be parsed.

Args:
    data: Data to parser.

Raises:
    ParseError: If the data could not be parsed.

Yields:
    T: A generic data type.
zend of file reachedNTr   é   )r/   r   r0   r@   r3   r?   r   ÚStopIterationÚlenr5   Ú
isinstancer!   r6   Úsendr(   r$   r   )r8   ÚdataÚtokensr@   ÚposÚ	data_sizer5   s          r   ÚfeedÚParser.feedA   sG  é € ð �9�9ÜÐ2Ó3¸Ð=à—‘ˆØ—.‘.ˆæØˆDŒIðØ—	‘	—‘¤£
Ô+ö Ù“i’÷ �&ààˆÜ˜“Iˆ	æÙ“)ŠO÷ ˆfð ‹oØŸ™ˆIÜ˜)¤U×+Ñ+Ø%)�Ô"Ø!%§¡§¡°±	Ó!:�”Ø�q‘‘Ü˜I¤u×-Ñ-Ø%)�Ô"Ø!%§¡§¡°±	Ó!:�”à�~‰~×%Ñ%Ñ1Ü%-£Z°$·.±.×2HÑ2HÑ%H�Ô"æÙ“i’÷ �&ð �oøô !ó ÚðüsC   ‚AF-Á#F Á*F-Â%F-Â*C'F-ÆF-ÆF-Æ
F*Æ&F-Æ)F*Æ*F-c              #  ó$   #   • S Sh  v•N   g N7f)z³Implement to parse a stream of text.

Args:
    token_callback: Callable to report a successful parsed data type.

Yields:
    ParseAwaitable: One of `self.read1` or `self.peek1`
r   Nr   )r8   Útoken_callbacks     r   r1   ÚParser.parses   s   é € ð �‹ùs   ‚ˆ‰)r5   r/   r3   r6   r0   N)ÚreturnÚNone)rR   Úbool)rR   úIterable[T])rI   ÚstrrR   rU   )rP   ÚTokenCallbackrR   z#Generator[Read1 | Peek1, str, None])r   r   r   r   r   r!   Úread1r(   Úpeek1r9   Úpropertyr<   rA   rM   r1   r   r   r   r   r,   r,   '   sH   † Ù)à€EØ€Eô0ð óó ðô-ô0 ðdØ+ðà	,÷r   r,   )Ú
__future__r   Úcollectionsr   Útypingr   r   r   r   r	   r
   r   Útextual._timer   Ú	Exceptionr   r   r   r!   r(   r*   rW   r,   r   r   r   Ú<module>r`      s€   ðÝ "å ß U× UÑ Uå "ô/�ô /ôˆzô ô�:ô ô'ˆJô 'ô'ˆJô 'ñ ˆCƒL€Ø˜!˜˜d˜Ñ#€ôWˆW�Q‰Zõ Wr   