B
    ] Çc³  ã               @   sV  d Z ddddgZdZdZdZdZd	Zd
ZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Z d$Z!d%Z"d&Z#d'Z$d(Z%d)Z&d*Z'd+Z(d,Z)d-Z*d.Z+d/Z,d0Z-d1Z.d2Z/d3Z0d4Z1d5Z2d6Z3d7Z4d8Z5d9Z6d:Z7d;Z8d<Z9d=Z:d>Z;d?Z<d@Z=dAdB„ e>ƒ  ?¡ D ƒZ@e Ae@ B¡ ¡ dCd„ ZCdDd„ ZDdEd„ ZEdFdG„ ZFeGdHkrReFƒ  dIS )Jz!Token constants (from "token.h").Útok_nameÚ
ISTERMINALÚISNONTERMINALÚISEOFé    é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   é2   é3   é4   é5   é6   é7   é8   é9   é:   é   c             C   s*   i | ]"\}}t |tƒr| d ¡s||“qS )Ú_)Ú
isinstanceÚintÚ
startswith)Ú.0ÚnameÚvalue© rH   úlib/python3.7/token.pyú
<dictcomp>N   s   rJ   c             C   s   | t k S )N)Ú	NT_OFFSET)ÚxrH   rH   rI   r   S   s    c             C   s   | t kS )N)rK   )rL   rH   rH   rI   r   V   s    c             C   s   | t kS )N)Ú	ENDMARKER)rL   rH   rH   rI   r   Y   s    c           
   C   sâ  dd l } dd l}|jdd … }|r*|d p,d}d}t|ƒdkrF|d }yt|ƒ}W n@ tk
r’ } z"|j dt|ƒ ¡ | 	d¡ W d d }~X Y nX | | 
¡  d¡}W d Q R X |  d| j¡}|  d| j¡}	i }
d }xr|D ]j}| |¡}|r| dd	¡\}}t|ƒ}d
|i|
|< |}qÜ|	 |¡}|rÜ|d k	rÜ| d¡}||
| d< qÜW t|
 ¡ ƒ}yt|ƒ}W nB tk
r¤ } z"|j dt|ƒ ¡ | 	d	¡ W d d }~X Y nX | | 
¡  d¡}W d Q R X y| d¡d }| d¡}W n, tk
r   |j d¡ | 	d¡ Y nX g }xL|D ]D}| d|
| d
 |f ¡ d|
| kr| d|
| d  ¡ qW ||||…< yt|dƒ}W nB tk
r¼ } z"|j dt|ƒ ¡ | 	d¡ W d d }~X Y nX | | d |¡¡ W d Q R X d S )Nr   r   zInclude/token.hzLib/token.pyzI/O error: %s
Ú
z>#define[ \t][ \t]*([A-Z0-9][A-Z0-9_]*)[ \t][ \t]*([0-9][0-9]*)z^\s*/\*\s*(.+?)\s*\*/\s*$r   ÚtokenÚcommentz#--start constants--z#--end constants--z&target does not contain format markersr   z%s = %dz# %sÚwr	   )ÚreÚsysÚargvÚlenÚopenÚOSErrorÚstdoutÚwriteÚstrÚexitÚreadÚsplitÚcompileÚ
IGNORECASEÚmatchÚgrouprC   ÚsortedÚkeysÚstderrÚindexÚ
ValueErrorÚappendÚjoin)rR   rS   ÚargsÚ
inFileNameÚoutFileNameÚfpÚerrÚlinesÚprogÚcomment_regexÚtokensÚprev_valÚliner`   rF   ÚvalÚcomment_matchrP   rc   ÚformatÚstartÚendÚkeyrH   rH   rI   Ú_main]   sx    




rz   Ú__main__N)HÚ__doc__Ú__all__rM   ÚNAMEÚNUMBERÚSTRINGÚNEWLINEÚINDENTÚDEDENTÚ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ÚATEQUALÚRARROWÚELLIPSISÚOPÚ
ERRORTOKENÚCOMMENTÚNLÚENCODINGÚN_TOKENSrK   ÚglobalsÚitemsr   ÚextendÚvaluesr   r   r   rz   Ú__name__rH   rH   rH   rI   Ú<module>   sŒ   
B
