???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
],                 @   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 g Z Gd d   d  Z d d	 d
 d  Z	 e j
 d e j  j Z d d   Z d d   Z e d k re e j  d k r e e    n6 e j d Z e e   Z e e e e   Wd QRXd S)    N)deque)StringIOshlexsplitquotec               @   s   e  Z d  Z d d d 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 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  |  _ | |  _ | rl d  |  _ n	 d |  _ d |  _	 d |  _
 |  j r |  j
 d 7_
 d |  _ d |  _ d |  _ d |  _ d	 |  _ d
 |  _ t   |  _ d |  _ d |  _ d |  _ t   |  _ d  |  _ d  S)N #Z?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|   ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz 	
Fz'"\"    r   )
isinstancestrr   instreaminfilesysstdinposixeof
commenters	wordchars
whitespacewhitespace_splitquotesescapeescapedquotesstater   pushbacklinenodebugtoken	filestacksource)selfr   r   r    r$   */opt/alt/python35/lib64/python3.5/shlex.py__init__   s6    																zshlex.__init__c             C   s7   |  j  d k r# t d t |   |  j j |  d  S)Nr   zshlex: pushing token )r   printreprr   
appendleft)r#   tokr$   r$   r%   
push_token5   s    zshlex.push_tokenc             C   s   t  | t  r t |  } |  j j |  j |  j |  j f  | |  _ | |  _ d |  _ |  j r | 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!   r)   r   r   r   r   r'   )r#   	newstreamnewfiler$   r$   r%   push_source;   s    "				zshlex.push_sourcec             C   s^   |  j  j   |  j j   \ |  _ |  _  |  _ |  j rQ t d |  j  |  j f  d |  _ d  S)Nzshlex: popping to %s, line %dr   )	r   closer!   popleftr   r   r   r'   r   )r#   r$   r$   r%   
pop_sourceI   s    !	zshlex.pop_sourcec             C   s2  |  j  r? |  j  j   } |  j d k r; t d t |   | S|  j   } |  j d  k	 r xV | |  j k r |  j |  j    } | r | \ } } |  j | |  |  j	   } q] Wx9 | |  j
 k r |  j s |  j
 S|  j   |  j	   } q W|  j d k r.| |  j
 k r$t d t |   n
 t d  | S)Nr   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*   rawspecr-   r,   r$   r$   r%   r4   R   s.    		

zshlex.get_tokenc             C   su  d } d } x|  j  j d  } | d k r= |  j d |  _ |  j d k rn t d t |  j  d t |   |  j d  k r d |  _ Pq |  j d k r| s d  |  _ Pq| |  j k r |  j d	 k r t d
  |  j s |  j	 r | r Pqq q| |  j
 k r%|  j  j   |  j d |  _ q|  j	 rO| |  j k rOd } | |  _ q| |  j k rs| |  _ d |  _ q| |  j k r|  j	 s| |  _ | |  _ q|  j r| |  _ d |  _ q| |  _ |  j s|  j	 r | r Pqq q |  j |  j k rd } | s,|  j d	 k r t d  t d   | |  j k rm|  j	 sa|  j | |  _ d |  _ Pqd |  _ q|  j	 r| |  j k r|  j |  j k r|  j } | |  _ q|  j | |  _ q |  j |  j k rU| s|  j d	 k rt d  t d   | |  j k r9| |  j k r9| | k r9|  j |  j |  _ |  j | |  _ | |  _ q |  j d k r | swd  |  _ Pq | |  j k r|  j d	 k rt d  d |  _ |  j s|  j	 r | r Pqq q | |  j
 k r*|  j  j   |  j d |  _ |  j	 rd |  _ |  j s |  j	 r | r Pqq q |  j	 rN| |  j k rN| |  _ q |  j	 rx| |  j k rxd } | |  _ q | |  j k s| |  j k s|  j r|  j | |  _ q |  j j |  |  j d	 k rt d  d |  _ |  j s|  j	 r | r Pq q q W|  j } d |  _ |  j	 r;| r;| d k r;d  } |  j d k rq| rgt d t |   n
 t d  | S)NFr   r   
   zshlex: in statezI see character:r      z+shlex: I see whitespace in whitespace stateaTz 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)r   readr   r   r'   r(   r   r    r   r   r   readliner   r   r   r   
ValueErrorr   r   r)   )r#   ZquotedZescapedstateZnextcharresultr$   r$   r%   r2   r   s    		
						
			
	
				
			
zshlex.read_tokenc             C   s|   | d d k r  | d d  } t  |  j t  ri t j j |  ri t j j t j j |  j  |  } | t | d  f S)Nr   r
   r   r)	r   r   r   ospathisabsjoindirnameopen)r#   r-   r$   r$   r%   r3      s
    %$zshlex.sourcehookc             C   s8   | 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)Nr$   )r#   r$   r$   r%   __iter__  s    zshlex.__iter__c             C   s%   |  j    } | |  j k r! t  | S)N)r4   r   StopIteration)r#   r    r$   r$   r%   __next__  s    zshlex.__next__)__name__
__module____qualname__r&   r+   r.   r1   r4   r2   r3   rG   rH   rJ   r$   r$   r$   r%   r      s   !	 	FTc             C   s4   t  |  d | } d | _ | s* d | _ t |  S)Nr   Tr   )r   r   r   list)sZcommentsr   Zlexr$   r$   r%   r     s
    		z[^\w@%+=:,./-]c             C   s8   |  s
 d St  |   d  k r  |  Sd |  j d d  d S)Nz'''z'"'"')_find_unsafereplace)rO   r$   r$   r%   r     s
    c             C   s2   x+ |  j    } | s Pt d t |   q Wd  S)NzToken: )r4   r'   r(   )Zlexerttr$   r$   r%   _print_tokens"  s
    rT   __main__r   )rA   rer   collectionsr   ior   __all__r   r   compileASCIIsearchrQ   r   rT   rK   lenargvfnrF   fr$   r$   r$   r%   <module>	   s    