+
    lh5                     R   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                   |   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                B   ^ 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# )    )dequeN #?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|   ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz 	
Fz'"\" Tz();<>|&z~-./*?=)collectionsr   
isinstancestrr   instreaminfilesysstdinposixeof
commenters	wordchars
whitespacewhitespace_splitquotesescapeescapedquotesstatepushbacklinenodebugtoken	filestacksource_punctuation_chars_pushback_chars	maketransdictfromkeys	translate)selfr   r   r   punctuation_charsr   ts   &&&&&  lib/python3.14/shlex.py__init__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                    V P                   # N)r&   r,   s   &r/   r-   shlex.punctuation_charsB   s    &&&r2   c                    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_tokenshlex.push_tokenF   s1    ::?)DI56  %r2   c                ~   \        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"   r8   )r,   	newstreamnewfiles   &&&r/   push_sourceshlex.push_sourceL   s    i%% +I!!4;;t{{"KL!:::"T[[BCt}}FG	 r2   c                   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   closer$   popleftr   r!   r"   r8   r   r5   s   &r/   
pop_sourceshlex.pop_sourceZ   sa    48NN4J4J4L1dmT[:::1]]DKK01 2
r2   c                   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    rE   r"   r8   r9   
read_tokenr%   
sourcehookrA   	get_tokenr   r$   rF   )r,   r;   rawspecr@   r?   s   &     r/   rK   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 
 ()
r2   c                (   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   T
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)rQ   rR   )r-   r'   popr   readr!   r"   r8   r   r#   r   r   r   readliner   r   r   r   
ValueErrorr   appendr    r:   r9   )r,   quotedescapedstatenextcharresults   &    r/   rI   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  ,-r2   c                L   ^ 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   r)	os.pathr   r   r   pathisabsjoindirnameopen)r,   r@   oss   && r/   rJ   shlex.sourcehook  sv    1:amGdkk3''g0F0Fggll277??4;;#?IGgs+,,r2   c                V    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!   s   &&&r/   error_leadershlex.error_leader  s,    >[[F>[[F"f%555r2   c                    V # r4    r5   s   &r/   __iter__shlex.__iter__'  s    r2   c                R    V P                  4       pWP                  8X  d   \        hV# r4   )rK   r   StopIteration)r,   r#   s   & r/   __next__shlex.__next__*  s#     HHr2   )r&   r'   r   r"   r   r   r   r$   r   r   r!   r   r    r   r%   r   r#   r   r   r   )NNFFr4   )NN)__name__
__module____qualname____firstlineno____doc__r0   propertyr-   r<   rA   rF   rK   rI   rJ   ri   rm   rq   __static_attributes____classdictcell__)__classdict__s   @r/   r   r      sX     >/9b ' '&H@Pd-6 r2   c                z    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	   )rV   r   r   r   list)scommentsr   lexs   &&& r/   splitr   0  s9    y677

CC9r2   c                2    RP                  R V  4       4      # )z3Return a shell-escaped string from *split_command*.r   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir4   )quote).0args   & r/   	<genexpr>join.<locals>.<genexpr>=  s     8-3E#JJ-s   )rc   )split_commands   &r/   rc   rc   ;  s    888-888r2   c                H   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)delete'z'"'"')	r   r   	TypeErrortypers   isasciiencoder+   replace)r~   
safe_charss   & r/   r   r   @  s    a6tAw7G7G6JKLL0J 	yy{{188://Z/HH 3	**S00r2   c                 p    V P                  4       ;p'       d   \        R \        V4      ,           4       K5  R# )zToken: N)rK   r8   r9   )lexertts   & r/   _print_tokensr   U  s*    !
!"
!i$r("# "r2   __main__)r   r   r   rc   )FT)rw   r   ior   __all__r   r   rc   r   r   rs   lenargvfnre   frl   r2   r/   <module>r      s    >  
-_ _B	9
1*$ z
388}egXXa["XX%2,' X 
 XXs   9BB&	