
    =Og4                        	 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    rq eej                  dk    r e e                       dS ej        d         Z ee          5 Z e eee                     ddd           dS # 1 swxY w Y   dS dS )    N)deque)StringIO)shlexsplitquotejoinc                   l    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dS )r   NFc                    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}|| _        |rvt#                      | _        | xj
        dz  c_
        | j
                            t6                              |                    }| j
                            |          | _
        d S d S )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/lib64/python3.11/shlex.py__init__zshlex.__init__   s   h$$ 	*))H$DM DKKIDMDK
 	DHHDHB: 	_NN  ^ _NN# % 


  	* "$&& )"3 	9#(77D NNi'NN((7H)I)IJJA!^55a88DNNN	9 	9    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                            |           d S )Nr   zshlex: pushing token )r$   printreprr"   
appendleft)r.   toks     r1   
push_tokenzshlex.push_tokenH   sF    D:??)DII5666  %%%%%r3   c                 H   	 t          |t                    rt          |          }| j                            | j        | j        | j        f           || _        || _        d| _        | j        r4|t          d| j                   d S t          d| j                   d S d S )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LL!: 	H"T[[BCCCCCt}}FGGGGG		H 	Hr3   c                     	 | j                                          | j                                        \  | _        | _         | _        | j        rt          d| j         | j        fz             d| _        d S )Nzshlex: popping to %s, line %dr   )	r   closer&   popleftr   r#   r$   r8   r!   r6   s    r1   
pop_sourcezshlex.pop_source\   st    %48N4J4J4L4L1dmT[: 	21]DK01 2 2 2


r3   c                    	 | j         rE| j                                         }| j        dk    rt          dt	          |          z              |S |                                 }| j        n|| j        k    rc|                     |                                           }|r|\  }}|                     ||           | 	                                }|| j        k    c|| j
        k    rA| j        s| j
        S |                                  | 	                                }|| j
        k    A| j        dk    r:|| j
        k    r t          dt	          |          z              n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   sc   L= 	-''))CzQ-S		9:::Joo;"$$t'8'899 9+/(Wi$$Y888nn&& $$ TXoo> 'x!!!nn&& TXoo :??dhoS		12222()))
r3   c                 "
   d}d}	 | j         r!| j        r| j                                        }n| 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 r-| j        d
k    rt          d           | j	        s	| j        r|rnՌ|| j        v r+| j                                         | xj        dz  c_        n| j        r|| j        v rd}|| _        n|| j        v r|| _	        d| _        nj|| j         v r|| _	        d| _        nQ|| j        v r| j        s|| _	        || _        n1| 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    r)| j        s| xj	        |z  c_	        d| _        nd| _        n| j        r'|| j        v r| j        | j        v r| j        }|| _        nb| xj	        |z  c_	        nP| j        | j        v rs|s)| j        d
k    rt          d           t%          d          || j        v r&|| j        k    r||k    r| xj	        | j        z  c_	        | xj	        |z  c_	        || _        n| j        dv r|s	d | _        n|| j
        v r5| j        d
k    rt          d           d| _        | j	        s	| j        r|rn1|| j        v rM| j                                         | xj        dz  c_        | j        rd| _        | j	        s	| j        r|rn,n&| j        dk    rF|| j         v r| xj	        |z  c_	        n || j
        vr| 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_	        np| j         r| j                            |           n| 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k    r1|r t          dt/          |          z              n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"   C	!% 1$*> 1/3355=--a004q zQ$***BJ(L M M Mz!
s"" "!!%DJ00zQKLLLz !dj !V ! 00M**,,,KK1$KKKZ !H$;$;#&L!)DJJ//!)DJ!$DJJ!777!)DJ!$DJJ,,: .%-
!)DJJ* !!)DJ!$DJJ!)DJz !dj !V ! t{** =zQ@AAA$%;<<<tz)): )

h.

%(
%(

j +X%<%<+B, B,#':L!)DJJJJ(*JJJt{** =zQ@AAA$%;<<< !DK// DJ..8|3K3KJJ$*,JJ

h&

)

z)) 0!!%DJ00zQEFFF!$DJz !dj !V ! 00M**,,,KK1$KKz %%(
: %$* % %!$% Z3&&4#999

h.


#4?:: 077AAA%(
Z !H$;$;!)DJJZ !H$;$;#&L!)DJJ$.00H4K4K/ 5L"$*@@@JJ(*JJJ- ;,33H====00:::zQFGGG!$DJz !dj !V ! GC	!H 
: 	f 	2F:>> .)DLL89999,---r3   c                 J   	 |d         dk    r
|dd         }t          | j        t                    rat          j                            |          sBt          j                            t          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  s    21:admGdk3'' 	Jg0F0F 	Jgll27??4;#?#?IIGgs++,,r3   c                 6    	 || j         }|| j        }d||fz  S )Nz"%s", line %d: )r   r#   )r.   r   r#   s      r1   error_leaderzshlex.error_leader   s-    F>[F>[F"ff%555r3   c                     | S r5    r6   s    r1   __iter__zshlex.__iter__(  s    r3   c                 R    |                                  }|| j        k    rt          |S r5   )rH   r   StopIteration)r.   r%   s     r1   __next__zshlex.__next__+  s)      DHr3   )NNFFr5   )NN)__name__
__module____qualname__r2   propertyr/   r<   r@   rD   rH   rF   rG   rc   rf   ri   re   r3   r1   r   r      s        >9>#(-9 -9 -9 -9^ ' ' X'& & &H H H H    @P P Pd- - -6 6 6 6      r3   r   FTc                     	 | !dd l }|                    dt          d           t          | |          }d|_        |sd|_        t          |          S )Nr   z4Passing None for 's' to shlex.split() is deprecated.rN   )
stacklevel)r   Tr   )warningswarnDeprecationWarningr   r   r   list)scommentsr   rp   lexs        r1   r   r   1  sk    7yL(Q 	 	8 	8 	8



CC 99r3   c                 B    	 d                     d | D                       S )Nr   c              3   4   K   | ]}t          |          V  d S r5   )r   ).0args     r1   	<genexpr>zjoin.<locals>.<genexpr>@  s(      883E#JJ888888r3   )r   )split_commands    r1   r   r   >  s&    =8888-888888r3   z[^\w@%+=:,./-]c                 f    	 | sdS t          |           | S d|                     dd          z   dz   S )Nz'''z'"'"')_find_unsafereplace)rt   s    r1   r   r   E  sC    ; tA 3	***S00r3   c                 t    	 |                                  }|sd S t          dt          |          z              8)Nr   zToken: )rH   r8   r9   )lexertts     r1   _print_tokensr   Q  sA    $__ 	E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 9 9
 rz+RX66=	1 	1 	1$ $ $ z
s38}}eeggXa[T"XX 	(M%%2,,'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( s   B==CC