ó
    F\h)4  ã                   ó”  • S r SSKrSSKrSSKrSSKJr  SSKJr  / SQr " S S5      r	SS jr
S	 r\R                  " S
\R                  5      R                  rS rS r\S:X  aT  \" \R(                  5      S:X  a  \" \	" 5       5        g\R(                  S   r\" \5       r\" \	" \\5      5        SSS5        gg! , (       d  f       g= f)ú8A lexical analyzer class for simple shell-like syntaxes.é    N)Údeque)ÚStringIO)ÚshlexÚsplitÚquoteÚjoinc                   ót   • \ rS rSrSr  SS jr\S 5       rS rSS jr	S r
S	 rS
 rS rSS jrS rS rSrg)r   é   r   Nc                 ó&  • [        U[        5      (       a  [        U5      nUb  Xl        X l        O[
        R                  U l        S U l        X0l        U(       a  S U l        OSU l        SU l	        SU l
        U R                  (       a  U =R                  S-  sl
        SU l        SU l        SU l        SU l        S	U l        S
U l        [#        5       U l        SU l        SU l        SU l        [#        5       U l        S U l        U(       d  SnOUSL a  SnX@l        U(       as  [#        5       U l        U =R                  S-  sl
        U R                  R5                  [6        R9                  U5      5      nU R                  R;                  U5      U l
        g g )NÚ Ú#Ú?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|   ÃŸÃ Ã¡Ã¢Ã£Ã¤Ã¥Ã¦Ã§Ã¨Ã©ÃªÃ«Ã¬Ã­Ã®Ã¯Ã°Ã±Ã²Ã³Ã´ÃµÃ¶Ã¸Ã¹ÃºÃ»Ã¼Ã½Ã¾Ã¿Ã€Ã�Ã‚ÃƒÃ„Ã…Ã†Ã‡ÃˆÃ‰ÃŠÃ‹ÃŒÃ�ÃŽÃ�Ã�Ã‘Ã’Ã“Ã”Ã•Ã–Ã˜Ã™ÃšÃ›ÃœÃ�Ãžz 	
Fz'"Ú\Ú"Ú é   r   Tz();<>|&z~-./*?=)Ú
isinstanceÚstrr   ÚinstreamÚinfileÚsysÚstdinÚposixÚeofÚ
commentersÚ	wordcharsÚ
whitespaceÚwhitespace_splitÚquotesÚescapeÚescapedquotesÚstater   ÚpushbackÚlinenoÚdebugÚtokenÚ	filestackÚsourceÚ_punctuation_charsÚ_pushback_charsÚ	maketransÚdictÚfromkeysÚ	translate)Úselfr   r   r   Úpunctuation_charsÚts         Ú/usr/lib/python3.13/shlex.pyÚ__init__Úshlex.__init__   sI  € ä�h¤×$Ñ$Ü Ó)ˆHØÑØ$ŒMØ �KäŸI™IˆDŒMØˆDŒKØŒ
ÞØˆD�HàˆDŒHØˆŒðBˆŒà�:�:Ø�NŠNð  ^ñ _�Nà#ˆŒØ %ˆÔØˆŒØˆŒØ ˆÔØˆŒ
Ü›ˆŒØˆŒØˆŒ
ØˆŒ
Ü›ˆŒØˆŒÞ Ø "ÑØ $Ò&Ø )ÐØ"3ÔÞä#(£7ˆDÔ à�NŠN˜iÑ'�Nà—‘×(Ñ(¬¯©Ð7HÓ)IÓJˆAØ!Ÿ^™^×5Ñ5°aÓ8ˆD�Nð ó    c                 ó   • U R                   $ ©N)r*   ©r0   s    r3   r1   Úshlex.punctuation_charsD   s   € à×&Ñ&Ð&r6   c                 óˆ   • U R                   S:¼  a  [        S[        U5      -   5        U R                  R	                  U5        g)z:Push a token onto the stack popped by the get_token methodr   zshlex: pushing token N)r&   ÚprintÚreprr$   Ú
appendleft)r0   Útoks     r3   Ú
push_tokenÚshlex.push_tokenH   s1   € à�:‰:˜‹?ÜÐ)¬D°«IÑ5Ô6Ø�‰× Ñ  Õ%r6   c                 ór  • [        U[        5      (       a  [        U5      nU R                  R	                  U R
                  U R                  U R                  45        X l        Xl        SU l        U R                  (       a7  Ub  [        SU R
                  < 35        g[        SU R                  < 35        gg)z9Push an input source onto the lexer's input source stack.r   Nzshlex: pushing to file zshlex: pushing to stream )
r   r   r   r(   r>   r   r   r%   r&   r<   )r0   Ú	newstreamÚnewfiles      r3   Úpush_sourceÚshlex.push_sourceN   s   € ä�i¤×%Ñ%Ü  Ó+ˆIØ�‰×!Ñ! 4§;¡;°·±¸t¿{¹{Ð"KÔLØŒØ!ŒØˆŒØ�:�:ØÑ"Ý°T·[³[ÐBÕCå°t·}³}ÐFÕGð	 r6   c                 ó
  • U R                   R                  5         U R                  R                  5       u  U l        U l         U l        U R                  (       a$  [        SU R                   U R
                  4-  5        SU l        g)zPop the input source stack.zshlex: popping to %s, line %dr   N)	r   Úcloser(   Úpopleftr   r%   r&   r<   r#   r9   s    r3   Ú
pop_sourceÚshlex.pop_source\   s_   € à�‰×ÑÔØ48·N±N×4JÑ4JÓ4LÑ1ˆŒ�d”m T¤[Ø�:�:ÜÐ1Ø—]‘] D§K¡KÐ0ñ1ô 2àˆ�
r6   c                 óþ  • U R                   (       aC  U R                   R                  5       nU R                  S:¼  a  [        S[	        U5      -   5        U$ U R                  5       nU R                  bk  X R                  :X  a\  U R                  U R                  5       5      nU(       a  Uu  pEU R                  XT5        U R                  5       nX R                  :X  a  M\  X R                  :X  aN  U R                  (       d  U R                  $ U R                  5         U R                  5       nX R                  :X  a  MN  U R                  S:¼  a3  X R                  :w  a  [        S[	        U5      -   5        U$ [        S5        U$ )zBGet a token from the input stream (or from stack if it's nonempty)r   zshlex: popping token zshlex: token=zshlex: token=EOF)r$   rI   r&   r<   r=   Ú
read_tokenr)   Ú
sourcehookrE   Ú	get_tokenr   r(   rJ   )r0   r?   ÚrawÚspecrD   rC   s         r3   rO   Úshlex.get_tokene   s  € à�=�=Ø—-‘-×'Ñ'Ó)ˆCØ�z‰z˜Q‹ÜÐ-´°S³	Ñ9Ô:ØˆJà�o‰oÓˆà�;‰;Ñ"ØŸ™Ó$Ø—‘ t§¡Ó'8Ó9�ÞØ+/Ñ(�WØ×$Ñ$ YÔ8Ø—n‘nÓ&�ð Ÿ™Õ$ð —X‘X‹oØ—>—>Ø—x‘x�à—‘Ô!Ø—n‘nÓ&�ð —X‘X�oð �:‰:˜‹?Ø—h‘h‹Ü�o¬¨S«	Ñ1Ô2ð ˆ
ô Ð(Ô)Øˆ
r6   c                 ó,  • SnSn U R                   (       a,  U R                  (       a  U R                  R                  5       nOU R                  R	                  S5      nUS:X  a  U =R
                  S-  sl        U R                  S:¼  a  [        SU R                  < SU< 35        U R                  c	  S	U l	        GOêU R                  S:X  Ga�  U(       d	  S U l        GOÉX0R                  ;   aI  U R                  S
:¼  a  [        S5        U R                  (       d  U R                  (       a	  U(       a  GOtGM0  X0R                  ;   a1  U R                  R                  5         U =R
                  S-  sl        GO.U R                  (       a  X0R                  ;   a
  SnX0l        GOX0R                  ;   a  X0l	        SU l        GOæX0R                   ;   a  X0l	        SU l        GOÈX0R                   ;   a  U R                  (       d  X0l	        X0l        GOšU R"                  (       a  X0l	        SU l        GOzX0l	        U R                  (       d  U R                  (       a	  U(       a  GOLGMX  U R                  U R                   ;   aÛ  SnU(       d&  U R                  S
:¼  a  [        S5        [%        S5      eX0R                  :X  a8  U R                  (       d  U =R                  U-  sl	        SU l        GOÂSU l        GO¶U R                  (       a=  X0R                  ;   a.  U R                  U R&                  ;   a  U R                  nX0l        GOhU =R                  U-  sl	        GOQU R                  U R                  ;   aŒ  U(       d&  U R                  S
:¼  a  [        S5        [%        S5      eX R                   ;   a3  X0R                  :w  a$  X2:w  a  U =R                  U R                  -  sl	        U =R                  U-  sl	        X l        GO«U R                  S;   Gaš  U(       d	  S U l        GO�X0R                  ;   aP  U R                  S
:¼  a  [        S5        SU l        U R                  (       d  U R                  (       a	  U(       a  GO1GMs  X0R                  ;   aw  U R                  R                  5         U =R
                  S-  sl        U R                  (       a5  SU l        U R                  (       d  U R                  (       a	  U(       a  GO­GM÷  GO¥U R                  S:X  aY  X0R                   ;   a  U =R                  U-  sl	        GOoX0R                  ;  a  U R                  R)                  U5        SU l        GO?U R                  (       a  X0R                   ;   a  X0l        GOU R                  (       a  X0R                  ;   a	  SnX0l        OëX0R                  ;   d/  X0R                   ;   d   U R"                  (       a%  X0R                   ;  a  U =R                  U-  sl	        O—U R                   (       a  U R                  R)                  U5        OU R*                  R-                  U5        U R                  S
:¼  a  [        S5        SU l        U R                  (       d  U R                  (       a  U(       a  OGMž  GM   U R                  nS	U l	        U R                  (       a  U(       d  US	:X  a  S nU R                  S:”  a+  U(       a  [        S[/        U5      -   5        U$ [        S5        U$ )NFr   Tr   Ú
é   zshlex: in state z I see character: r   é   z+shlex: I see whitespace in whitespace stateÚaÚcz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped character)rW   rX   z%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r1   r+   Úpopr   Úreadr%   r&   r<   r#   r'   r   r   r   Úreadliner!   r   r    r   Ú
ValueErrorr"   Úappendr$   r>   r=   )r0   ÚquotedÚescapedstateÚnextcharÚresults        r3   rM   Úshlex.read_token…   sÒ  € ØˆØˆØØ×%×%¨$×*>×*>Ø×/Ñ/×3Ñ3Ó5‘àŸ=™=×-Ñ-¨aÓ0�Ø˜4ÓØ—’˜qÑ •Ø�z‰z˜Q‹ÝÀ$Ç*Ä*ÚBJðLô Mà�z‰zÑ!Ø�”
ÙØ—‘˜sÔ"ÞØ!%�D”JÙØ§¡Ó0Ø—z‘z Q“ÜÐKÔLØ—z—z d§j§j¶VÙâ Ø§¡Ó0Ø—M‘M×*Ñ*Ô,Ø—K’K 1Ñ$—KØ—Z—Z H·±Ó$;Ø#&�LØ!)–JØ§¡Ó/Ø!)”JØ!$�D–JØ×!7Ñ!7Ó7Ø!)”JØ!$�D–JØ§¡Ó,ØŸ:Ÿ:Ø%-œ
Ø!)–JØ×*×*Ø!)”JØ!$�D–Jà!)”JØ—z—z d§j§j¶VÙâ Ø—‘˜tŸ{™{Ó*Ø�ÞØ—z‘z Q“ÜÐ@ÔAä$Ð%;Ó<Ð<ØŸz™zÓ)ØŸ:Ÿ:ØŸ
š
 hÑ.�
Ø%(˜œ
Ùà%(˜ž
Ø—j—j X·±Ó%<ÀÇÁØ×+Ñ+óB,à#'§:¡:�LØ!)–Jà—J’J (Ñ*—JØ—‘˜tŸ{™{Ó*ÞØ—z‘z Q“ÜÐ@ÔAä$Ð%;Ó<Ð<ð !§K¡KÓ/Ø §J¡JÓ.°8Ó3KØ—J’J $§*¡*Ñ,•JØ—
’
˜hÑ&•
Ø)–
Ø—‘˜zÔ)ÞØ!%�D”JÙØ§¡Ó0Ø—z‘z Q“ÜÐEÔFØ!$�D”JØ—z—z d§j§j¶VÙâ Ø§¡Ó0Ø—M‘M×*Ñ*Ô,Ø—K’K 1Ñ$•KØ—z—zØ%(˜œ
ØŸ:Ÿ:¨$¯*¯*¾Ù!â$ñ "ð —Z‘Z 3Ó&Ø×#9Ñ#9Ó9ØŸ
š
 hÑ.Ÿ
à#¯?©?Ó:Ø ×0Ñ0×7Ñ7¸ÔAØ%(˜œ
ÙØ—Z—Z H·±Ó$;Ø!)–JØ—Z—Z H·±Ó$;Ø#&�LØ!)•JØ§.¡.Ó0°HÇÁÓ4KØ×/×/Ø"×*@Ñ*@Ó@Ø—J’J (Ñ*–Jà×-×-Ø×,Ñ,×3Ñ3°HÕ=àŸ™×0Ñ0°Ô:Ø—z‘z Q“ÜÐFÔGØ!$�D”JØ—z—z d§j§j¶VØâ òG ðH —‘ˆØˆŒ
Ø�:�:žf¨°2«ØˆFØ�:‰:˜‹>ÞÜÐ)¬D°«LÑ8Ô9ð ˆô Ð,Ô-Øˆr6   c                 óN  • US   S:X  a  USS n[        U R                  [        5      (       ak  [        R                  R                  U5      (       dG  [        R                  R                  [        R                  R                  U R                  5      U5      nU[        US5      4$ )z(Hook called on a filename to be sourced.r   r   r   éÿÿÿÿÚr)	r   r   r   ÚosÚpathÚisabsr	   ÚdirnameÚopen)r0   rD   s     r3   rN   Úshlex.sourcehook  ss   € à�1‰:˜ÓØ˜a �mˆGä�d—k‘k¤3×'Ñ'´·±·±¸g×0FÑ0FÜ—g‘g—l‘l¤2§7¡7§?¡?°4·;±;Ó#?ÀÓIˆGØœ˜g sÓ+Ð,Ð,r6   c                 óJ   • Uc  U R                   nUc  U R                  nSX4-  $ )z<Emit a C-compiler-like, Emacs-friendly error-message leader.z"%s", line %d: )r   r%   )r0   r   r%   s      r3   Úerror_leaderÚshlex.error_leader   s,   € à‰>Ø—[‘[ˆFØ‰>Ø—[‘[ˆFØ" fÐ%5Ñ5Ð5r6   c                 ó   • U $ r8   © r9   s    r3   Ú__iter__Úshlex.__iter__(  s   € Øˆr6   c                 óP   • U R                  5       nXR                  :X  a  [        eU$ r8   )rO   r   ÚStopIteration)r0   r'   s     r3   Ú__next__Úshlex.__next__+  s#   € Ø—‘Ó ˆØ—H‘HÓÜÐØˆr6   )r*   r+   r   r&   r   r!   r"   r(   r   r   r%   r   r$   r    r)   r#   r'   r   r   r   )NNFFr8   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r4   Úpropertyr1   r@   rE   rJ   rO   rM   rN   rm   rq   ru   Ú__static_attributes__rp   r6   r3   r   r      sV   † Ù>Ø9>Ø#(ô-9ð^ ñ'ó ð'ò&ôHòòò@Pòd-ô6òõr6   r   c                 óp   • U c  [        S5      e[        XS9nSUl        U(       d  SUl        [	        U5      $ )z-Split the string *s* using shell-like syntax.zs argument must not be None)r   Tr   )r\   r   r   r   Úlist)ÚsÚcommentsr   Úlexs       r3   r   r   1  s9   € à�yÜÐ6Ó7Ð7Ü
�Ñ
€CØ€CÔÞØˆŒÜ�‹9Ðr6   c                 ó2   • SR                  S U  5       5      $ )z3Return a shell-escaped string from *split_command*.r   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr8   )r   )Ú.0Úargs     r3   Ú	<genexpr>Újoin.<locals>.<genexpr>>  s   é € Ð8ª- 3”E˜#—J�Jª-ùs   ‚)r	   )Úsplit_commands    r3   r	   r	   <  s   € à�8‰8Ñ8©-Ó8Ó8Ð8r6   z[^\w@%+=:,./-]c                 ó^   • U (       d  g[        U 5      c  U $ SU R                  SS5      -   S-   $ )z1Return a shell-escaped version of the string *s*.z''Ú'z'"'"')Ú_find_unsafeÚreplace)r€   s    r3   r   r   C  s4   € æØÜ�AƒÑØˆð �—‘˜3 	Ó*Ñ*¨SÑ0Ð0r6   c                 ó”   • U R                  5       =n(       a1  [        S[        U5      -   5        U R                  5       =n(       a  M0  g g )NzToken: )rO   r<   r=   )ÚlexerÚtts     r3   Ú_print_tokensr‘   O  s<   € Ø—‘Ó!Ð
!ˆ"Õ
!Üˆiœ$˜r›(Ñ"Ô#ð —‘Ó!Ð
!ˆ"×
!Ñ
!r6   Ú__main__r   )FT)r{   rf   Úrer   Úcollectionsr   Úior   Ú__all__r   r   r	   ÚcompileÚASCIIÚsearchrŒ   r   r‘   rw   ÚlenÚargvÚfnrj   Úfrp   r6   r3   Ú<module>rž      s¸   ðÙ >ó 
Û 	Û 
Ý å â
-€÷\ñ \ô|ò9ð
 �zŠzÐ+¨R¯X©XÓ6×=Ñ=€ò	1ò$ð ˆzÓÙ
ˆ3�8‰8ƒ}˜ÓÙ‘e“gÕà�X‰X�a‰[ˆÙ�"ŒX˜Ù™%  2›,Ô'÷ ˆXð ÷
 �Xús   ÂB9Â9
C