+
    i5  c                   sR   R t ^ RIt^ RIHt . R
Ot ! R R4      tRR ltR tR tR t	]
R	8X  dd   ]! ]P                  4      ^8X  d   ]	! ]! 4       4       R# ]P                  ^,          t]! ]4      ;_uu_ 4       t]	! ]! ]]4      4       RRR4       R# R#   + '       g   i     R# ; i)8A lexical analyzer class for simple shell-like syntaxes.N)StringIOshlexc                   s|   a  ] tR t^t o RtRR lt]R 4       tR tRR lt	R t
R tR	 tR
 tRR ltR tR tRtV tR# )r   r    Nc                sB   ^ RI Hp \        V\        4      '       d   \	        V4      pVe   Wn        W n        M\        P                  V n        RV n        W0n	        V'       d	   RV n
        MRV n
        RV n        RV n        V P                  '       d   V ;P                  R,          un        RV n        RV n        R	V n        R
V n        RV n        RV n        V! 4       V n        ^V n        ^ V n        RV n        V! 4       V n        RV n        V'       g   RpMVRJ d   RpW@n        V'       dv   V! 4       V n        V ;P                  R,          un        V P                  P7                  \8        P;                  V4      4      pV P                  P=                  V4      V n        R# R# )i    )dequeN Z#Z?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|   ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz 	
Fz'"Z\" Tz();<>|&z~-./*?=)Zcollectionsr   
isinstancestrr   instreaminfilesysZstdinposixeof
commenters	wordchars
whitespacewhitespace_splitquotesescapeescapedquotesstatepushbacklinenodebugtoken	filestacksource_punctuation_chars_pushback_charsZ	maketransZdictZfromkeys	translate)selfr	   r
   r   punctuation_charsr   Zts   &&&&&  /usr/lib64/python3.14/shlex.py__init__Zshlex.__init__   sN   %h$$)H$M KIIDMDK
DHDHB:::NN  ^ _N# % 


  "$& )"3#(7D NNi'N((7H)IJA!^^55a8DN     c                s    V P                   # N)r   r      &r!   r    Zshlex.punctuation_charsB   s    &&&r#   c                s    V P                   ^8  d   \        R\        V4      ,           4       V P                  P	                  V4       R# )z:Push a token onto the stack popped by the get_token methodzshlex: pushing token N)r   printreprr   
appendleft)r   toks   &&r!   
push_tokenZshlex.push_tokenF   s1    ::?)DI56  %r#   c                s~   \        V\        4      '       d   \        V4      pV P                  P	                  V P
                  V P                  V P                  34       W n        Wn        ^V n        V P                  '       d;   Ve   \        RV P
                  : 24       R# \        RV P                  : 24       R# R# )z9Push an input source onto the lexer's input source stack.Nzshlex: pushing to file zshlex: pushing to stream )
r   r   r   r   r)   r
   r	   r   r   r'   )r   	newstreamnewfile   &&&r!   push_sourceZshlex.push_sourceL   s    i%% +I!!4;;t{{"KL!:::"T[[BCt}}FG	 r#   c                s   V P                   P                  4        V P                  P                  4       w  V n        V n         V n        V P                  '       d)   \        RV P                   V P
                  3,          4       RV n        R# )zPop the input source stack.zshlex: popping to %s, line %dr   N)	r	   Zcloser   popleftr
   r   r   r'   r   r%   r&   r!   
pop_sourceZshlex.pop_sourceZ   sa    48NN4J4J4L1dmT[:::1]]DKK01 2
r#   c                s   V P                   '       dI   V P                   P                  4       pV P                  ^8  d   \        R\	        V4      ,           4       V# V P                  4       pV P                  e_   W P                  8X  dO   V P                  V P                  4       4      pV'       d   Vw  rEV P                  WT4       V P                  4       pK^  W P                  8X  dA   V P                  '       g   V P                  # V P                  4        V P                  4       pKP  V P                  ^8  d9   W P                  8w  d   \        R\	        V4      ,           4       V# \        R4       V# )zBGet a token from the input stream (or from stack if it's nonempty)zshlex: popping token zshlex: token=zshlex: token=EOF)r   r0   r   r'   r(   
read_tokenr   
sourcehookr/   	get_tokenr   r   r1   )r   r*   ZrawZspecr-   r,   s   &     r!   r4   Zshlex.get_tokenc   s   ===--'')CzzQ-S	9:Joo;;"$t'89+/(W$$Y8nn&XXo>>>xx!nn&::?hhoS	12 
 ()
r#   c                s(   R pRp V P                   '       d.   V P                  '       d   V P                  P                  4       pMV P                  P	                  ^4      pVR8X  d   V ;P
                  ^,          un        V P                  ^8  d   \        RV P                  : RV: 24       V P                  f
   RV n	        EMVV P                  R8X  Ed   V'       g
   RV n        EM3W0P                  9   dN   V P                  ^8  d   \        R4       V P                  '       g   V P                  '       d   V'       d   EMEK@  W0P                  9   d7   V P                  P                  4        V ;P
                  ^,          un        EK  V P                  '       d   W0P                  9   d   R	pW0n        EK  W0P                  9   d   W0n	        R	V n        EK  W0P                   9   d   W0n	        R
V n        EK  W0P                   9   d"   V P                  '       g   W0n	        W0n        EK$  V P"                  '       d   W0n	        R	V n        EKF  W0n	        V P                  '       g   V P                  '       d   V'       d   EMEK}  V P                  V P                   9   d   RpV'       g(   V P                  ^8  d   \        R4       \%        R4      hW0P                  8X  d?   V P                  '       g#   V ;P                  V,          un	        RV n        EM	R	V n        EK  V P                  '       dA   W0P                  9   d1   V P                  V P&                  9   d   V P                  pW0n        EKi  V ;P                  V,          un	        EK  V P                  V P                  9   d   V'       g(   V P                  ^8  d   \        R4       \%        R4      hW P                   9   d:   W0P                  8w  d*   W28w  d$   V ;P                  V P                  ,          un	        V ;P                  V,          un	        W n        EK:  V P                  R9   g   EKN  V'       g
   RV n        EMW0P                  9   dU   V P                  ^8  d   \        R4       RV n        V P                  '       g   V P                  '       d   V'       d   EMVEK  W0P                  9   d   V P                  P                  4        V ;P
                  ^,          un        V P                  '       d9   RV n        V P                  '       g   V P                  '       d   V'       d   EMEKP  EKS  V P                  R
8X  da   W0P                   9   d   V ;P                  V,          un	        EK  W0P                  9  d   V P                  P)                  V4       RV n        EMRV P                  '       d   W0P                   9   d
   W0n        EK  V P                  '       d   W0P                  9   d   R	pW0n        EK  W0P                  9   g3   W0P                   9   g#   V P"                  '       d-   W0P                   9  d   V ;P                  V,          un	        EKz  V P                   '       d   V P                  P)                  V4       MV P*                  P-                  V4       V P                  ^8  d   \        R4       RV n        V P                  '       g   V P                  '       d
   V'       d   MEK  V P                  pRV n	        V P                  '       d   V'       g
   VR8X  d   RpV P                  ^8  d1   V'       d   \        R\/        V4      ,           4       V# \        R4       V# )Fr   TZ
zshlex: in state z I see character: Nr   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 characterz%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r5   r6   )r    r   Zpopr	   Zreadr   r   r'   r   r   r   r   r   Zreadliner   r   r   r   
ValueErrorr   Zappendr   r)   r(   )r   ZquotedZescapedstateZnextcharZresults   &    r!   r2   Zshlex.read_token   s   %%%$*>*>*>//335==--a04q zzQ$**BJL Mzz!
s"!%DJ0zzQKLzzzdjjjV 0MM**,KK1$KKZZZH$;#&L!)J/!)J!$DJ!7!77!)J!$DJ,:::%-
!)J***!)J!$DJ!)JzzzdjjjV t{{*zzQ@A$%;<<zz):::

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

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

h.

#??: 0077A%(
ZZZH$;!)JZZZH$;#&L!)J..0H4K///"*@*@@JJ(*JJ---,,33H=00:zzQFG!$DJzzzdjjjV 
:::f2F::>)DL89  ,-r#   c                sL   ^ RI pV^ ,          R8X  d   V^R p\        V P                  \        4      '       da   VP                  P                  V4      '       g@   VP                  P                  VP                  P                  V P                  4      V4      pV\        VR4      3# )z(Hook called on a filename to be sourced.Nr   Zri)	Zos.pathr   r
   r   ZpathZisabsjoinZdirnameopen)r   r-   Zoss   && r!   r3   Zshlex.sourcehook  sv    1:amGdkk3''g0F0Fggll277??4;;#?IGgs+,,r#   c                sV    Vf   V P                   pVf   V P                  pRW3,          # )z<Emit a C-compiler-like, Emacs-friendly error-message leader.z"%s", line %d: )r
   r   )r   r
   r   r.   r!   error_leaderZshlex.error_leader  s,    >[[F>[[F"f%555r#   c                s    V # r$    r%   r&   r!   __iter__Zshlex.__iter__'  s    r#   c                sR    V P                  4       pWP                  8X  d   \        hV# r$   )r4   r   ZStopIteration)r   r      & r!   __next__Zshlex.__next__*  s#     HHr#   )r   r   r   r   r   r   r   r   r
   r	   r   r   r   r   r   r   r   r   r   r   )NNFFr$   )NN)__name__Z
__module__Z__qualname__Z__firstlineno____doc__r"   Zpropertyr    r+   r/   r1   r4   r2   r3   r:   r<   r>   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r!   r   r      sX     >/9b ' '&H@Pd-6 r#   c                sz    V f   \        R4      h\        WR7      pRVn        V'       g   RVn        \	        V4      # )z-Split the string *s* using shell-like syntax.zs argument must not be None)r   Tr   )r7   r   r   r   Zlist)sZcommentsr   Zlexs   &&& r!   splitrB   0  s9    y677

CC9r#   c                s2    RP                  R V  4       4      # )z3Return a shell-escaped string from *split_command*.r   c              3   s8   "   T F  p\        V4      x  K  	  R # 5ir$   )quote)Z.0Zargr=   r!   Z	<genexpr>Zjoin.<locals>.<genexpr>=  s     8-3E#JJ-s   )r8   )Zsplit_commandr&   r!   r8   r8   ;  s    888-888r#   c                sH   V '       g   R# \        V \        4      '       g#   \        R\        V 4      P                  : 24      hRpV P                  4       '       d*   V P                  4       P                  RVR7      '       g   V # RV P                  RR4      ,           R,           # )z1Return a shell-escaped version of the string *s*.z''zexpected string object, got sH   %+,-./0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzN)ZdeleteZ'z'"'"')	r   r   Z	TypeErrorZtyper?   ZisasciiZencoder   Zreplace)rA   Z
safe_charsr=   r!   rC   rC   @  s    a6tAw7G7G6JKLL0J 	yy{{188://Z/HH 3	**S00r#   c                 sp    V P                  4       ;p'       d   \        R \        V4      ,           4       K5  R# )zToken: N)r4   r'   r(   )ZlexerZttr=   r!   _print_tokensrD   U  s*    !
!"
!i$r("# "r#   Z__main__)r   rB   rC   r8   )FT)r@   r   Zior   Z__all__r   rB   r8   rC   rD   r?   ZlenZargvZfnr9   Zfr;   r#   r!   <module>rE      s    >  
-_ _B	9
1*$ z
388}egXXa["XX%2,' X 
 XXs   9BB&	