???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3

  \%                 @   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    | j | | j| | j  d S )N)parse_graminit_hparse_graminit_c
finish_off)selfZ
graminit_hZ
graminit_c r	   */usr/lib64/python3.6/lib2to3/pgen2/conv.pyrun/   s    

zConverter.runc       	      C   s   yt |}W n0 tk
r< } ztd||f  dS d }~X nX i | _i | _d}xn|D ]f}|d7 }tjd|}| r|j rtd|||j f  qT|j \}}t	|}|| j|< || j|< qTW 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 n0 tk
r< } ztd||f  dS d }~X nX d}|d t| }}|d t| }}|d t| }}i }g }x|jdrx|jdrLtjd|}ttt	|j
 \}	}
}g }xRt|D ]F}|d t| }}tjd|}ttt	|j
 \}}|j||f qW |d t| }}|||	|
f< |d t| }}qW tjd|}ttt	|j
 \}}g }x^t|D ]R}|d t| }}tjd	|}ttt	|j
 \}}	}
||	|
f }|j| q~W |j| |d t| }}|d t| }}qW || _i }tjd
|}t	|jd}xt|D ]}|d t| }}tjd|}|jd}ttt	|jdddd\}}}}|| }|d t| }}tjd|}i }t|jd}xPt|D ]D\}}t|}x0tdD ]$}|d|> @ rd||d | < qW qW ||f||< q4W |d t| }}|| _g }|d t| }}tjd|}t	|jd}xjt|D ]^}|d t| }}tjd|}|j
 \}}t	|}|dkrd }nt|}|j||f qpW |d t| }}|| _|d t| }}|d t| }}tjd|}t	|jd}|d t| }}|d t| }}tjd|}t	|jd}|d t| }}tjd|}t	|j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   