
    z%i)4                        	 d dl Z d dlZd dlZd dlmZ d dlmZ g dZ G d d      ZddZ	d Z
 ej                  d	ej                        j                  Zd
 Zd Zedk(  rS eej&                        dk(  r e e              yej&                  d   Z ee      5 Z e eee             ddd       yy# 1 sw Y   yxY w)    N)deque)StringIO)shlexsplitquotejoinc                   d    e Zd Z	 	 	 ddZed        Zd ZddZd Zd Z	d Z
d	 Zdd
Zd Zd Zy)r   Nc                    t        |t              rt        |      }||| _        || _        nt
        j                  | _        d | _        || _        |rd | _        nd| _        d| _	        d| _
        | j                  r| xj                  dz  c_
        d| _        d| _        d| _        d| _        d	| _        d
| _        t#               | _        d| _        d| _        d| _        t#               | _        d | _        |sd}n|du rd}|| _        |rst#               | _        | xj                  dz  c_
        | j                  j5                  t6        j9                  |            }| j                  j;                  |      | _
        y y )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         9/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/shlex.py__init__zshlex.__init__   sN   h$)H$DM DKIIDMDK
DHDHB::NN  ^ _N# % 


  "$& )"3#(7D NNi'N((7H)IJA!^^55a8DN     c                     | j                   S N)r(   r.   s    r1   r/   zshlex.punctuation_charsD   s    &&&r3   c                     	 | j                   dk\  rt        dt        |      z          | j                  j	                  |       y )Nr   zshlex: pushing token )r$   printreprr"   
appendleft)r.   toks     r1   
push_tokenzshlex.push_tokenH   s4    D::?)DI56  %r3   c                 ^   	 t        |t              rt        |      }| j                  j	                  | j
                  | j                  | j                  f       || _        || _        d| _        | j                  r4|t        d| j
                         y t        d| j                         y y )Nr   zshlex: pushing to file zshlex: pushing to stream )
r   r   r   r&   r:   r   r   r#   r$   r8   )r.   	newstreamnewfiles      r1   push_sourcezshlex.push_sourceN   s    Ci% +I!!4;;t{{"KL!::"T[[BCt}}FG	 r3   c                    	 | j                   j                          | j                  j                         \  | _        | _         | _        | j                  r$t        d| j                   | j
                  fz         d| _        y )Nzshlex: popping to %s, line %dr   )	r   closer&   popleftr   r#   r$   r8   r!   r6   s    r1   
pop_sourcezshlex.pop_source\   sb    %48NN4J4J4L1dmT[::1]]DKK01 2
r3   c                    	 | j                   rB| j                   j                         }| j                  dk\  rt        dt	        |      z          |S | j                         }| j                  g|| j                  k(  rX| j                  | j                               }|r|\  }}| j                  ||       | j                         }|| j                  k(  rX|| j                  k(  rH| j                  s| j                  S | j                          | j                         }|| j                  k(  rH| j                  dk\  r3|| j                  k7  rt        dt	        |      z          |S t        d       |S )Nr   zshlex: popping token zshlex: token=zshlex: token=EOF)r"   rC   r$   r8   r9   
read_tokenr'   
sourcehookr@   	get_tokenr   r&   rD   )r.   r;   rawspecr?   r>   s         r1   rH   zshlex.get_tokene   s.   L==--'')CzzQ-S	9:Joo;;"$t'89+/(Wi$$Y8nn& $ TXXo>>xx!nn& TXXo ::?dhhoS	12 
 ()
r3   c                    d}d}	 | j                   r'| j                  r| j                  j                         }n| j                  j	                  d      }|dk(  r| xj
                  dz  c_        | j                  dk\  rt        d| j                  d|       | j                  	d	| _	        n<| j                  dk(  r\|s	d | _        n!|| j                  v r8| j                  d
k\  rt        d       | j                  s| j                  r|rnݐ	|| j                  v r1| j                  j                          | xj
                  dz  c_        n| j                  r|| j                  v rd}|| _        nu|| j                  v r|| _	        d| _        nW|| j                   v r|| _	        d| _        n9|| j                   v r| j                  s|| _	        || _        n| j"                  r|| _	        d| _        n|| _	        | j                  s| j                  r|rnҐ| j                  | j                   v rd}|s%| j                  d
k\  rt        d       t%        d      || j                  k(  r3| j                  s| xj                  |z  c_	        d| _        nVd| _        nK| j                  r;|| j                  v r-| j                  | j&                  v r| j                  }|| _        n| xj                  |z  c_	        n| j                  | j                  v r|s%| j                  d
k\  rt        d       t%        d      || j                   v r3|| j                  k7  r$||k7  r| xj                  | j                  z  c_	        | xj                  |z  c_	        || _        nO| j                  dv r@|s	d | _        n7|| j                  v r?| j                  d
k\  rt        d       d| _        | j                  s| j                  r|rn|| j                  v ra| j                  j                          | xj
                  dz  c_        | j                  rd| _        | j                  s| j                  r|rn}i| j                  dk(  rW|| j                   v r| xj                  |z  c_	        nE|| j                  vr| j                  j)                  |       d| _        n| j                  r|| j                   v r|| _        n| j                  r|| j                  v r
d}|| _        n|| j                  v s(|| j                   v s| j"                  r$|| j                   vr| xj                  |z  c_	        n| j                   r| j                  j)                  |       n| j*                  j-                  |       | j                  d
k\  rt        d       d| _        | j                  s| j                  r|rn| j                  }d	| _	        | j                  r	|s|d	k(  rd }| j                  dkD  r&|rt        dt/        |      z          |S t        d       |S )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)rO   rP   z%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r/   r)   popr   readr#   r$   r8   r!   r%   r   r   r   readliner   r   r   r   
ValueErrorr    appendr"   r:   r9   )r.   quotedescapedstatenextcharresults        r1   rF   zshlex.read_token   s	   %%$*>*>//335==--a04q zzQ$**BJL Mzz!
s"!%DJ0zzQKLzzdjjV 0MM**,KK1$KZZH$;#&L!)DJ/!)DJ!$DJ!7!77!)DJ!$DJ,::%-
!)DJ**!)DJ!$DJ!)DJzzdjjV t{{*zzQ@A$%;<<tzz)::

h.
%(
%(
jjX%<++B,#'::L!)DJJJ(*Jt{{*zzQ@A$%;<< !DKK/ DJJ.8|3KJJ$**,J

h&
)
z)!%DJ0zzQEF!$DJzzdjjV 0MM**,KK1$Kzz%(
::$**!$ZZ3&4#9#99

h.
#4??: 0077A%(
ZZH$;!)DJZZH$;#&L!)DJ$..0H4K//"$*@*@@JJ(*J--,,33H=00:zzQFG!$DJzzdjjV G H 
::f2F::>)DL89  ,-r3   c                 :   	 |d   dk(  r|dd }t        | j                  t              rft        j                  j                  |      sGt        j                  j                  t        j                  j                  | j                        |      }|t        |d      fS )Nr   r   r   r)	r   r   r   ospathisabsr   dirnameopen)r.   r?   s     r1   rG   zshlex.sourcehook  sp    21:amGdkk3'g0Fggll277??4;;#?IGgs+,,r3   c                 J    	 || j                   }|| j                  }d||fz  S )Nz"%s", line %d: )r   r#   )r.   r   r#   s      r1   error_leaderzshlex.error_leader   s1    F>[[F>[[F"ff%555r3   c                     | S r5    r6   s    r1   __iter__zshlex.__iter__(  s    r3   c                 P    | j                         }|| j                  k(  rt        |S r5   )rH   r   StopIteration)r.   r%   s     r1   __next__zshlex.__next__+  s%     DHHr3   )NNFFr5   )NN)__name__
__module____qualname__r2   propertyr/   r<   r@   rD   rH   rF   rG   rc   rf   ri   re   r3   r1   r   r      sV    >9>#(-9^ ' '&H@Pd-6r3   r   c                 n    	 | t        d      t        | |      }d|_        |sd|_        t	        |      S )Nzs argument must not be None)r   Tr   )rT   r   r   r   list)scommentsr   lexs       r1   r   r   1  s>    7y677

CC9r3   c                 4    	 dj                  d | D              S )Nr   c              3   2   K   | ]  }t        |        y wr5   )r   ).0args     r1   	<genexpr>zjoin.<locals>.<genexpr>>  s     83E#J8s   )r   )split_commands    r1   r   r   <  s    =888-888r3   z[^\w@%+=:,./-]c                 T    	 | syt        |       | S d| j                  dd      z   dz   S )Nz'''z'"'"')_find_unsafereplace)rp   s    r1   r   r   C  s7    ;A 3	**S00r3   c                 ~    | j                         x}r+t        dt        |      z          | j                         x}r*y y )NzToken: )rH   r8   r9   )lexertts     r1   _print_tokensr   O  s9    !
!"
!i$r("# !
!"
!r3   __main__r   )FT)r]   rer   collectionsr   ior   __all__r   r   r   compileASCIIsearchr{   r   r   rj   lenargvfnra   fre   r3   r1   <module>r      s    > 
 	 
  
-\ \|9
 rzz+RXX6==	1$ z
388}egXXa["X 	(%2,'	( 	( 
	( 	(s   B55B>