???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    if4                  	   @   s   d dl Z d dlZd dlZd dlmZ d dlmZ ddddgZG dd dZdddZ	dd Z
edejjZdd Zdd Zedkreejdkree  n,ejd ZeeZeeee W 5 Q R X dS )    N)deque)StringIOshlexsplitquotejoinc                   @   sn   e Zd ZdddZedd Zdd Zdd	d
Zdd Zdd Z	dd Z
dd ZdddZdd Zdd ZdS )r   NFc                 C   s  t |trt|}|d k	r(|| _|| _ntj| _d | _|| _|rHd | _nd| _d| _	d| _
| jrn|  j
d7  _
d| _d| _d| _d| _d	| _d
| _t | _d| _d| _d| _t | _d | _|sd}n|dkrd}|| _|rt | _|  j
d7  _
| j
t|}| j
|| _
d S )N #Z?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t r-   */opt/alt/python38/lib64/python3.8/shlex.py__init__   sJ    
zshlex.__init__c                 C   s   | j S N)r$   r*   r-   r-   r.   r+   D   s    zshlex.punctuation_charsc                 C   s*   | j dkrtdt|  | j| d S )Nr   zshlex: pushing token )r    printreprr   
appendleft)r*   tokr-   r-   r.   
push_tokenH   s    
zshlex.push_tokenc                 C   sp   t |trt|}| j| j| j| jf || _|| _d| _| jrl|d k	r\t	d| jf  nt	d| jf  d S )Nr   zshlex: pushing to file %szshlex: pushing to stream %s)
r   r   r   r"   r4   r   r   r   r    r2   )r*   	newstreamnewfiler-   r-   r.   push_sourceN   s    
zshlex.push_sourcec                 C   sD   | j   | j \| _| _ | _| jr:td| j | jf  d| _d S )Nzshlex: popping to %s, line %dr   )	r   closer"   popleftr   r   r    r2   r   r1   r-   r-   r.   
pop_source\   s    

zshlex.pop_sourcec                 C   s   | j r.| j  }| jdkr*tdt|  |S |  }| jd k	rz|| jkrz| |  }|rp|\}}| || | 	 }q@|| j
kr| js| j
S |   | 	 }qz| jdkr|| j
krtdt|  ntd |S )Nr   zshlex: popping token zshlex: token=zshlex: token=EOF)r   r;   r    r2   r3   
read_tokenr#   
sourcehookr9   	get_tokenr   r"   r<   )r*   r5   rawspecr8   r7   r-   r-   r.   r?   e   s.    








zshlex.get_tokenc                 C   s  d}d}| j r | jr | j }n| jd}|dkrB|  jd7  _| jdkr^td| j|f  | jd krtd| _	qq| jdkr|sd | _qq|| j
kr| jdkrtd	 | j	s| jr|rqnqn|| jkr| j  |  jd7  _n| jr|| jkrd
}|| _n|| jkr&|| _	d
| _nr|| j kr@|| _	d| _nX|| jkrb| jsZ|| _	|| _n6| jrx|| _	d
| _n || _	| j	s| jr|rqnqq| j| jkrDd}|s| jdkrtd td|| jkr| js|  j	|7  _	d| _qnd
| _n>| jr4|| jkr4| j| jkr4| j}|| _n|  j	|7  _	q| j| jkr|st| jdkrltd td|| jkr|| jkr||kr|  j	| j7  _	|  j	|7  _	|| _q| jdkr|sd | _qq|| j
kr| jdkrtd d| _| j	s| jr|rqnqq|| jkrh| j  |  jd7  _| jrd| _| j	s| jr|rqnqq| jdkr|| j kr|  j	|7  _	n"|| j
kr| j| d| _qq| jr|| jkr|| _q| jr|| jkrd
}|| _q|| jks|| jks| jr,|| j kr,|  j	|7  _	q| j rB| j| n| j| | jdkrbtd d| _| j	s| jr|rqqqq| j	}d| _	| jr|s|dkrd }| jdkr|rtdt|  ntd |S )NFr   r   
   z&shlex: in state %r I see character: %rr      z+shlex: I see whitespace in whitespace stateacTz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped character)rE   rF   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    r2   r   r!   r   r   r   readliner   r   r   r   
ValueErrorr   appendr   r4   r3   )r*   ZquotedZescapedstateZnextcharresultr-   r-   r.   r=      s
   







zshlex.read_tokenc                 C   sV   |d dkr|dd }t | jtrHtj|sHtjtj| j|}|t|dfS )Nr   r   r   r)	r   r   r   ospathisabsr   dirnameopen)r*   r8   r-   r-   r.   r>     s
    zshlex.sourcehookc                 C   s(   |d kr| j }|d kr| j}d||f S )Nz"%s", line %d: )r   r   )r*   r   r   r-   r-   r.   error_leader   s
    zshlex.error_leaderc                 C   s   | S r0   r-   r1   r-   r-   r.   __iter__(  s    zshlex.__iter__c                 C   s   |   }|| jkrt|S r0   )r?   r   StopIteration)r*   r!   r-   r-   r.   __next__+  s    
zshlex.__next__)NNFF)N)NN)__name__
__module____qualname__r/   propertyr+   r6   r9   r<   r?   r=   r>   rT   rU   rW   r-   r-   r-   r.   r      s     
/

	  	
FTc                 C   s$   t | |d}d|_|sd|_t|S )N)r   Tr   )r   r   r   list)sZcommentsr   Zlexr-   r-   r.   r   1  s
    c                 C   s   d dd | D S )Nr   c                 s   s   | ]}t |V  qd S r0   )r   ).0argr-   r-   r.   	<genexpr><  s     zjoin.<locals>.<genexpr>)r   )Zsplit_commandr-   r-   r.   r   :  s    z[^\w@%+=:,./-]c                 C   s,   | sdS t | d kr| S d| dd d S )Nz'''z'"'"')_find_unsafereplace)r]   r-   r-   r.   r   A  s
    c                 C   s$   |   }|sq tdt|  q d S )NzToken: )r?   r2   r3   )ZlexerZttr-   r-   r.   _print_tokensM  s    rd   __main__r   )FT)rO   rer   collectionsr   ior   __all__r   r   r   compileASCIIsearchrb   r   rd   rX   lenargvfnrS   fr-   r-   r-   r.   <module>
   s&      
	

