509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
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ƒ r’t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ƒ qÐW |d t|ƒ }}|||	|
f< |d t|ƒ }}q’W 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|ƒ }}q„W || _i }tjd
|ƒ}t	|jdƒƒ}xòt|ƒ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|> @ �rÞd||d | < �qÞW �qÄW ||f||< �q4W |d t|ƒ }}|| _g }|d t|ƒ }}tjd|ƒ}t	|jdƒƒ}xjt|ƒD ]^}|d t|ƒ }}tjd|ƒ}|j
ƒ \}}t	|ƒ}|dk�r¶d }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   