£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d%                 @   s.   d dl Z d dlmZmZ G dd dejZdS )    N)grammartokenc               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	Converterc             C   s    |  | | | |   d S )N)parse_graminit_hparse_graminit_c
finish_off)selfZ
graminit_hZ
graminit_c r	   7/opt/alt/python37/lib64/python3.7/lib2to3/pgen2/conv.pyrun/   s    

zConverter.runc       	   
   C   s   yt |}W n2 tk
r> } ztd||f  dS d }~X Y nX i | _i | _d}xl|D ]d}|d7 }td|}|s| rtd||| f  qV| \}}t	|}|| j|< || j|< qVW dS )NzCan't open %s: %sFr      z^#define\s+(\w+)\s+(\d+)$z%s(%s): can't parse %sT)
openOSErrorprintZsymbol2numberZnumber2symbolrematchstripgroupsint)	r   filenameferrlinenolinemosymbolnumberr	   r	   r
   r   5   s&    

zConverter.parse_graminit_hc       !   
   C   s  yt |}W n2 tk
r> } ztd||f  dS d }~X Y nX d}|d t| }}|d t| }}|d t| }}i }g }x|drx|drNtd|}ttt	|
 \}	}
}g }xRt|D ]F}|d t| }}td|}ttt	|
 \}}|||f qW |d t| }}|||	|
f< |d t| }}qW td|}ttt	|
 \}}g }x^t|D ]R}|d t| }}td	|}ttt	|
 \}}	}
||	|
f }|| qW || |d t| }}|d t| }}qW || _i }td
|}t	|d}xt|D ]}|d t| }}td|}|d}ttt	|dddd\}}}}|| }|d t| }}td|}i }t|d}xPt|D ]D\}}t|}x0tdD ]$}|d|> @ rd||d | < qW qW ||f||< q6W |d t| }}|| _g }|d t| }}td|}t	|d}xjt|D ]^}|d t| }}td|}|
 \}}t	|}|dkrd }nt|}|||f qrW |d t| }}|| _|d t| }}|d t| }}td|}t	|d}|d t| }}|d t| }}td|}t	|d}|d t| }}td|}t	|d} | | _|d t| }}y|d t| }}W n tk
r   Y nX d S )NzCan't open %s: %sFr   r   zstatic arc z)static arc arcs_(\d+)_(\d+)\[(\d+)\] = {$z\s+{(\d+), (\d+)},$z'static state states_(\d+)\[(\d+)\] = {$z\s+{(\d+), arcs_(\d+)_(\d+)},$zstatic dfa dfas\[(\d+)\] = {$z0\s+{(\d+), "(\w+)", (\d+), (\d+), states_(\d+),$            z\s+("(?:\\\d\d\d)*")},$   z!static label labels\[(\d+)\] = {$z\s+{(\d+), (0|"\w+")},$0z
\s+(\d+),$z\s+{(\d+), labels},$z	\s+(\d+)$)r   r   r   next
startswithr   r   listmapr   r   rangeappendstatesgroupeval	enumerateorddfaslabelsstartStopIteration)!r   r   r   r   r   r   Zallarcsr)   r   nmkZarcs_ijststater.   Zndfasr   r   xyzfirstZ	rawbitsetcZbyter/   Znlabelsr0   r	   r	   r
   r   T   s    

"
zConverter.parse_graminit_cc             C   s\   i | _ i | _xJt| jD ]<\}\}}|tjkrB|d k	rB|| j |< q|d kr|| j|< qW d S )N)keywordstokensr,   r/   r   NAME)r   Zilabeltypevaluer	   r	   r
   r      s    zConverter.finish_offN)__name__
__module____qualname__r   r   r   r   r	   r	   r	   r
   r   $   s
    &r   )r   Zpgen2r   r   ZGrammarr   r	   r	   r	   r
   <module>   s   