
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \8s  ã            -   @   sú  d Z dZddlmZ ddlmZmZ ddlZddl	m
Z
 ddlmZ ddlZddlZddlZddlT ejd	ejƒZejd
ejƒZddlZejdddddddg Z[eZdee< ed Zdee< ed Zdee< ed7 Zeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;e<e=e>e?e@eAeBeCeDeEeFdœ,ZGG dd„ dejHddƒƒZIdd„ ZJdd„ ZKdd„ ZLdZMdZNeMeKd eM ƒ eLeNƒ ZOd!ZPd"ZQd#ZRd$ZSd%ZTeJeQeReSeTƒZUd&ZVeJd'd(ƒeLeVƒ ZWd)eV ZXeJeWeXƒZYeJd*eYd+ ƒZZeJeZeYeUƒZ[d,d-„ Z\d.d/„ Z]eJe\ƒ Ž Z^d0Z_d1Z`d2Zad3ZbeJe^d4 e^d5 ƒZceJe^d6 e^d7 ƒZdeJd8d9d:d;d<d=d>d?ƒZed@ZfeJdAdBdCƒZgeJeeefegƒZheJe[ehedePƒZieOei ZjeJe^dD eJdEd ƒ e^dF eJdGd ƒ ƒZkeJdHeNecƒZleMeJele[ehekePƒ Zmi Znx@e\ƒ D ]6Zoe_eneodE < e`eneodG < eaeneod4 < ebeneod5 < �qÐW epƒ Zqepƒ Zrx\e\ƒ D ]RZsx$esdG esdE fD ]Zteqjuetƒ �q4W x$esd5 esd4 fD ]Zterjuetƒ �qZW �qW dIZvG dJdK„ dKewƒZxG dLdM„ dMewƒZyG dNdO„ dOƒZzdPd„ Z{dQdR„ Z|dSd„ Z}dTdU„ ZdVd„ Z~dWdX„ ZdYdZ„ Z€d[d\„ Z�e‚d]k�röe�ƒ  dS )^zKa-Ping Yee <ping@lfw.org>zpGvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, Skip Montanaro, Raymond Hettinger, Trent Nelson, Michael Foordé    )Úopen)ÚlookupÚBOM_UTF8N)ÚTextIOWrapper)Úchain)Ú*z&^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)s   ^[ \t\f]*(?:[#\r\n]|$)ÚCOMMENTÚtokenizeÚdetect_encodingÚNLÚ
untokenizeÚENCODINGÚ	TokenInfoé   é   é   ),ú(ú)ú[ú]ú:ú,ú;ú+ú-r   ú/ú|ú&ú<ú>ú=Ú.ú%ú{ú}z==z!=z<=z>=ú~ú^z<<z>>z**z+=z-=z*=z/=z%=z&=z|=z^=z<<=z>>=z**=z//z//=ú@z@=c               @   s    e Zd Zdd„ Zedd„ ƒZdS )r   c             C   s$   d| j t| j  f }d| j|d� S )Nz%d (%s)z8TokenInfo(type=%s, string=%r, start=%r, end=%r, line=%r))Útype)r(   Útok_nameÚ_replace)ÚselfÚannotated_type© r-   ú /usr/lib64/python3.6/tokenize.pyÚ__repr__d   s    zTokenInfo.__repr__c             C   s(   | j tkr| jtkrt| j S | j S d S )N)r(   ÚOPÚstringÚEXACT_TOKEN_TYPES)r+   r-   r-   r.   Ú
exact_typei   s    
zTokenInfo.exact_typeN)Ú__name__Ú
__module__Ú__qualname__r/   Úpropertyr3   r-   r-   r-   r.   r   c   s   ztype string start end linec              G   s   ddj | ƒ d S )Nr   r   r   )Újoin)Úchoicesr-   r-   r.   Úgroupp   s    r:   c              G   s   t | Ž d S )Nr   )r:   )r9   r-   r-   r.   Úanyq   s    r;   c              G   s   t | Ž d S )Nú?)r:   )r9   r-   r-   r.   Úmayber   s    r=   z[ \f\t]*z	#[^\r\n]*z\\\r?\nz\w+z0[xX](?:_?[0-9a-fA-F])+z0[bB](?:_?[01])+z0[oO](?:_?[0-7])+z(?:0(?:_?0)*|[1-9](?:_?[0-9])*)z[eE][-+]?[0-9](?:_?[0-9])*z)[0-9](?:_?[0-9])*\.(?:[0-9](?:_?[0-9])*)?z\.[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*[jJ]z[jJ]c              C   sn   ddddddg} t dgƒ}xN| D ]F}x@tj|ƒD ]2}x,tjdd	„ |D ƒŽ D ]}|jdj|ƒƒ qJW q0W q W |S )
NÚbÚrÚuÚfÚbrÚfrÚ c             S   s   g | ]}||j ƒ f‘qS r-   )Úupper)Ú.0Úcr-   r-   r.   ú
<listcomp>”   s    z(_all_string_prefixes.<locals>.<listcomp>)ÚsetÚ
_itertoolsÚpermutationsÚproductÚaddr8   )Ú_valid_string_prefixesÚresultÚprefixÚtr@   r-   r-   r.   Ú_all_string_prefixes‰   s    

rR   c             C   s   t j| t jƒS )N)ÚreÚcompileÚUNICODE)Úexprr-   r-   r.   Ú_compile˜   s    rW   z[^'\\]*(?:\\.[^'\\]*)*'z[^"\\]*(?:\\.[^"\\]*)*"z%[^'\\]*(?:(?:\\.|'(?!''))[^'\\]*)*'''z%[^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*"""z'''z"""z'[^\n'\\]*(?:\\.[^\n'\\]*)*'z"[^\n"\\]*(?:\\.[^\n"\\]*)*"z\*\*=?z>>=?z<<=?z!=z//=?z->z[+\-*/%&@|^=<>]=?r%   z[][(){}]z\r?\nz\.\.\.z[:;.,@]z'[^\n'\\]*(?:\\.[^\n'\\]*)*ú'z"[^\n"\\]*(?:\\.[^\n"\\]*)*ú"z
\\\r?\n|\Zé   c               @   s   e Zd ZdS )Ú
TokenErrorN)r4   r5   r6   r-   r-   r-   r.   r[   Ù   s    r[   c               @   s   e Zd ZdS )ÚStopTokenizingN)r4   r5   r6   r-   r-   r-   r.   r\   Û   s    r\   c               @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚUntokenizerc             C   s   g | _ d| _d| _d | _d S )Nr   r   )ÚtokensÚprev_rowÚprev_colÚencoding)r+   r-   r-   r.   Ú__init__à   s    zUntokenizer.__init__c             C   s„   |\}}|| j k s&|| j kr>|| jk r>tdj||| j | jƒƒ‚|| j  }|rb| jjd| ƒ d| _|| j }|r€| jjd| ƒ d S )Nz+start ({},{}) precedes previous end ({},{})z\
r   ú )r_   r`   Ú
ValueErrorÚformatr^   Úappend)r+   ÚstartÚrowÚcolÚ
row_offsetÚ
col_offsetr-   r-   r.   Úadd_whitespaceæ   s    

zUntokenizer.add_whitespacec             C   s4  t |ƒ}g }d}�x|D �]
}t|ƒdkr8| j||ƒ P |\}}}}	}
|tkrV|| _q|tkr`P |tkrv|j|ƒ qnl|tkr–|j	ƒ  |	\| _
| _qnL|ttfkr¨d}n:|râ|râ|d }|d t|ƒkrÞ| jj|ƒ t|ƒ| _d}| j|ƒ | jj|ƒ |	\| _
| _|ttfkr|  j
d7  _
d| _qW dj| jƒS )NFr   Tr   r   rD   éÿÿÿÿ)ÚiterÚlenÚcompatr   ra   Ú	ENDMARKERÚINDENTrf   ÚDEDENTÚpopr_   r`   ÚNEWLINEr   r^   rl   r8   )r+   ÚiterableÚitÚindentsÚ	startlinerQ   Útok_typeÚtokenrg   ÚendÚlineÚindentr-   r-   r.   r   ó   sF    



zUntokenizer.untokenizec       
      C   sì   g }| j j}|d ttfk}d}xÆt|g|ƒD ]¶}|d d… \}}	|tkrR|	| _q.|ttt	t
fkrj|	d7 }	|tkr„|r~d|	 }	d}nd}|tkrž|j|	ƒ q.n>|tkr²|jƒ  q.n*|ttfkrÄd}n|rÜ|rÜ||d ƒ d}||	ƒ q.W d S )Nr   Fr   rc   Tr   rm   )r^   rf   ru   r   r   r   ra   ÚNAMEÚNUMBERÚASYNCÚAWAITÚSTRINGrr   rs   rt   )
r+   r{   rv   rx   Útoks_appendry   Ú
prevstringÚtokÚtoknumÚtokvalr-   r-   r.   rp     s8    
zUntokenizer.compatN)r4   r5   r6   rb   rl   r   rp   r-   r-   r-   r.   r]   Þ   s   %r]   c             C   s*   t ƒ }|j| ƒ}|jd k	r&|j|jƒ}|S )N)r]   r   ra   Úencode)rv   ÚutÚoutr-   r-   r.   r   =  s
    

c             C   sH   | d d… j ƒ jddƒ}|dks*|jdƒr.dS |dks@|jdƒrDdS | S )Né   Ú_r   zutf-8zutf-8-úlatin-1ú
iso-8859-1úiso-latin-1úlatin-1-úiso-8859-1-úiso-latin-1-)rŽ   r�   r�   )r‘   r’   r“   )ÚlowerÚreplaceÚ
startswith)Úorig_encÚencr-   r-   r.   Ú_get_normal_nameX  s    
r™   c                sÞ   yˆj j‰W n tk
r$   d ‰Y nX d‰ d }d}‡fdd„}‡ ‡fdd„}|ƒ }|jtƒrpd‰ |dd … }d	}|s||g fS ||ƒ}|r’||gfS tj|ƒs¦||gfS |ƒ }|sº||gfS ||ƒ}|rÒ|||gfS |||gfS )
NFzutf-8c                  s    yˆ ƒ S  t k
r   dS X d S )Nó    )ÚStopIterationr-   )Úreadliner-   r.   Úread_or_stop{  s    z%detect_encoding.<locals>.read_or_stopc                sä   y| j dƒ}W n4 tk
rB   d}ˆd k	r6dj|ˆƒ}t|ƒ‚Y nX tj|ƒ}|sVd S t|jdƒƒ}yt|ƒ}W n: t	k
rª   ˆd kr’d| }ndjˆ|ƒ}t|ƒ‚Y nX ˆ rà|dkrØˆd krÆd}n
djˆƒ}t|ƒ‚|d	7 }|S )
Nzutf-8z'invalid or missing encoding declarationz{} for {!r}r   zunknown encoding: zunknown encoding for {!r}: {}zencoding problem: utf-8z encoding problem for {!r}: utf-8z-sig)
ÚdecodeÚUnicodeDecodeErrorre   ÚSyntaxErrorÚ	cookie_reÚmatchr™   r:   r   ÚLookupError)r}   Úline_stringÚmsgr¢   ra   Úcodec)Ú	bom_foundÚfilenamer-   r.   Úfind_cookie�  s6    


z$detect_encoding.<locals>.find_cookieTr   z	utf-8-sig)Ú__self__ÚnameÚAttributeErrorr–   r   Úblank_rer¢   )rœ   ra   Údefaultr�   r©   ÚfirstÚsecondr-   )r§   r¨   rœ   r.   r
   c  s8    
&




c             C   sV   t | dƒ}y0t|jƒ\}}|jdƒ t||dd�}d|_|S    |jƒ  ‚ Y nX d S )NÚrbr   T)Úline_bufferingr?   )Ú_builtin_openr
   rœ   Úseekr   ÚmodeÚclose)r¨   Úbufferra   ÚlinesÚtextr-   r-   r.   r   À  s    

r   c             C   sB   ddl m}m} t| ƒ\}}t| dƒ}|dƒ}t||||ƒj|ƒS )Nr   )r   Úrepeatrš   )Ú	itertoolsr   rº   r
   rn   Ú	_tokenizeÚ__next__)rœ   r   rº   ra   ÚconsumedÚrl_genÚemptyr-   r-   r.   r	   Ð  s
    
c       !      c   s  d } }}d}d!\}}d }dg}	d }
d}d}d}|d k	rX|dkrFd}t t|d"d#dƒV  d}d}�x
y|}| ƒ }W n tk
rŠ   d}Y nX |d k	rž|j|ƒ}|d7 }dt|ƒ }}|�r„|sÈtd	|ƒ‚|j|ƒ}|�r|jdƒ }}t t||d |…  |||f|| ƒV  d$\}}d }nf|�rn|d%d … dk�rn|d&d … dk�rnt t	|| ||t|ƒf|ƒV  d}d }qdn|| }|| }qd�n@|dk�r¬| �r¬|�sžP d}xf||k �r|| dk�rÆ|d7 }n6|| dk�ræ|t
 d t
 }n|| dk�rúd}nP |d7 }�q¤W ||k�rP || dk�rÒ|| dk�rš||d … jdƒ}|t|ƒ }t t|||f||t|ƒ f|ƒV  t t||d … ||f|t|ƒf|ƒV  qdt ttf|| dk ||d … ||f|t|ƒf|ƒV  qd||	d' k�r|	j|ƒ t t|d |… |df||f|ƒV  xv||	d( k �r‚||	k�r8tdd|||fƒ‚|	d d)… }	|�rd||	d* k�rdd}d}d}t td||f||f|ƒV  �qW |�rÄ|�rÄ||	d+ k�rÄd}d}d}n|�sÀtd|dfƒ‚d}�x¢||k �rhttƒj||ƒ}|�r:|jdƒ\}}||f||f|  }}}||k�r�qÈ|||… ||  }}||k�sZ|dk�rp|dk�rp|dk�rpt t||||ƒV  �qd|dk�rÈ|
�rŠ|
V  d }
|dk�r¨t t||||ƒV  nt t||||ƒV  |�r8d}�qd|dk�rø|
�râ|
V  d }
t t||||ƒV  �qd|tk�rltt| ƒ}|j||ƒ}|�rN|jdƒ}|||… }t t||||f|ƒV  n||f}||d … }|}P �qd|tk�sš|d d
… tk�sš|d d… tk�r|d, dk�rø||f}ttj|ƒ�pÚtj|d ƒ�pÚtj|d
 ƒƒ}||d … d }}|}P nt t||||ƒV  �qd|jƒ �rà|d-k�rL|�rLt |dk�r8tnt||||ƒV  �qÈt t||||ƒ}|dk�rv|
 �rv|}
�qÈ|dk�rÈ|
�rÈ|
jtk�rÈ|
j dk�rÈd}|	d. }t t|
j |
j!|
j|
j"ƒV  d }
|
�rØ|
V  d }
|V  nX|dk�rðd}nH|dk�r|d7 }n|d k�r|d8 }|
�r&|
V  d }
t t#||||ƒV  n*t t	|| ||f||d f|ƒV  |d7 }�qÈW qdW |
�r~|
V  d }
|�rÀ|d/ dk�rÀt td|d t|ƒf|d t|ƒd fdƒV  x0|	dd … D ] } t td|df|dfdƒV  �qÎW t t$d|df|dfdƒV  d S )0Nr   Ú
0123456789rD   Fz	utf-8-sigzutf-8rš   r   zEOF in multi-line stringr   z\
r   z\
rc   ú	úz#
ú#z
z3unindent does not match any outer indentation levelz
<tokenize>zEOF in multi-line statementr!   z...TÚ
ÚasyncÚawaitÚdefú\z([{z)]})rD   r   )r   r   )r   r   )rD   r   éþÿÿÿéýÿÿÿrm   rm   rm   rm   rm   rm   )rÆ   rÇ   rm   rm   )%r   r   r›   rž   ro   r[   r¢   r|   rƒ   Ú
ERRORTOKENÚtabsizeÚrstripr   r   rf   rr   ÚIndentationErrorrs   rW   ÚPseudoTokenÚspanr€   ru   Útriple_quotedÚendpatsÚsingle_quotedÚgetÚisidentifierr�   r‚   r   r(   r1   rg   r}   r0   rq   )!rœ   ra   ÚlnumÚparenlevÚ	continuedÚnumcharsÚcontstrÚneedcontÚcontlinerx   ÚstashedÚ	async_defÚasync_def_indentÚasync_def_nlÚ	last_liner}   ÚposÚmaxÚstrstartÚendprogÚendmatchr|   ÚcolumnÚcomment_tokenÚnl_posÚpseudomatchrg   ÚsposÚeposr{   Úinitialr†   r~   r-   r-   r.   r¼   ì  sr   




*
 


"
 
















. r¼   c             C   s
   t | d ƒS )N)r¼   )rœ   r-   r-   r.   Úgenerate_tokensã  s    rï   c                 s(  dd l } dd„ ‰ d‡ fdd„	}| jdd�}|jdd	d
dd� |jdddddd� |jƒ }y’|jrŒ|j}t|dƒ�}tt|jƒƒ}W d Q R X nd}t	t
jjd ƒ}xF|D ]>}|j}|jrº|j}d|j|j  }	td|	t| |jf ƒ q¤W W �n8 tk
�r: }
 z2|
jd dd… \}}||
jd |||fƒ W Y d d }
~
X nê tk
�r€ }
 z*|
jd \}}||
jd |||fƒ W Y d d }
~
X n¤ tk
�r¬ }
 z||
|ƒ W Y d d }
~
X nx tk
�rÖ }
 z||
ƒ W Y d d }
~
X nN tk
�rò   tdƒ Y n2 tk
�r" }
 zˆ d|
 ƒ ‚ W Y d d }
~
X nX d S )Nr   c             S   s   t | tjd� d S )N)Úfile)ÚprintÚsysÚstderr)Úmessager-   r-   r.   Úperrorê  s    zmain.<locals>.perrorc                sR   |r"|f| | f }ˆ d| ƒ n"|r8ˆ d|| f ƒ nˆ d|  ƒ t jdƒ d S )Nz%s:%d:%d: error: %sz%s: error: %sz	error: %sr   )rò   Úexit)rô   r¨   ÚlocationÚargs)rõ   r-   r.   Úerrorí  s    zmain.<locals>.errorzpython -m tokenize)Úprogr¨   r<   zfilename.pyz'the file to tokenize; defaults to stdin)ÚdestÚnargsÚmetavarÚhelpz-ez--exactÚexactÚ
store_truez(display token names using the exact type)rû   Úactionrþ   r±   z<stdin>z%d,%d-%d,%d:z%-20s%-15s%-15rr   r   zinterrupted
zunexpected error: %s)NN)ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr¨   r³   Úlistr	   rœ   r¼   rò   Ústdinr(   rÿ   r3   rg   r|   rñ   r)   r1   rÏ   rø   r[   r    ÚOSErrorÚKeyboardInterruptÚ	Exception)r  rù   Úparserrø   r¨   rA   r^   r{   Ú
token_typeÚtoken_rangeÚerrr}   rè   r-   )rõ   r.   Úmainæ  sN    
&&r  Ú__main__)ƒÚ
__author__Ú__credits__Úbuiltinsr   r³   Úcodecsr   r   ÚcollectionsÚior   r»   r   rJ   rS   rò   r{   rT   ÚASCIIr¡   r­   Ú__all__ÚN_TOKENSr   r)   r   r   ÚLPARÚRPARÚLSQBÚRSQBÚCOLONÚCOMMAÚSEMIÚPLUSÚMINUSÚSTARÚSLASHÚVBARÚAMPERÚLESSÚGREATERÚEQUALÚDOTÚPERCENTÚLBRACEÚRBRACEÚEQEQUALÚNOTEQUALÚ	LESSEQUALÚGREATEREQUALÚTILDEÚ
CIRCUMFLEXÚ	LEFTSHIFTÚ
RIGHTSHIFTÚ
DOUBLESTARÚ	PLUSEQUALÚMINEQUALÚ	STAREQUALÚ
SLASHEQUALÚPERCENTEQUALÚ
AMPEREQUALÚ	VBAREQUALÚCIRCUMFLEXEQUALÚLEFTSHIFTEQUALÚRIGHTSHIFTEQUALÚDOUBLESTAREQUALÚDOUBLESLASHÚDOUBLESLASHEQUALÚATÚATEQUALr2   Ú
namedtupler   r:   r;   r=   Ú
WhitespaceÚCommentÚIgnoreÚNameÚ	HexnumberÚ	BinnumberÚ	OctnumberÚ	DecnumberÚ	IntnumberÚExponentÚ
PointfloatÚExpfloatÚFloatnumberÚ
ImagnumberÚNumberrR   rW   ÚStringPrefixÚSingleÚDoubleÚSingle3ÚDouble3ÚTripleÚStringÚOperatorÚBracketÚSpecialÚFunnyÚ
PlainTokenÚTokenÚContStrÚPseudoExtrasrÐ   rÓ   Ú_prefixrI   rÔ   rÒ   rQ   r@   rM   rÍ   r
  r[   r\   r]   r   r™   r
   r	   r¼   rï   r  r4   r-   r-   r-   r.   Ú<module>   s  





_] x<
