Your IP : 18.221.210.111


Current Path : /lib64/python3.6/lib2to3/pgen2/__pycache__/
Upload File :
Current File : //lib64/python3.6/lib2to3/pgen2/__pycache__/conv.cpython-36.opt-2.pyc

3


 \�%�@s.ddlZddlmZmZGdd�dej�ZdS)�N)�grammar�tokenc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	ConvertercCs |j|�|j|�|j�dS)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	Cs�yt|�}Wn0tk
r<}ztd||f�dSd}~XnXi|_i|_d}xn|D]f}|d7}tjd|�}|r�|j�r�td|||j�f�qT|j�\}}t	|�}||j|<||j|<qTWdS)NzCan'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
r5s&

zConverter.parse_graminit_hc!Cs�yt|�}Wn0tk
r<}ztd||f�dSd}~XnXd}|dt|�}}|dt|�}}|dt|�}}i}g}�x�|jd��rx�|jd��rLtjd|�}ttt	|j
���\}	}
}g}xRt|�D]F}
|dt|�}}tjd|�}ttt	|j
���\}}|j||f�q�W|dt|�}}|||	|
f<|dt|�}}q�Wtjd|�}ttt	|j
���\}}g}x^t|�D]R}
|dt|�}}tjd	|�}ttt	|j
���\}}	}
||	|
f}|j|��q~W|j|�|dt|�}}|dt|�}}q�W||_
i}tjd
|�}t	|jd��}x�t|�D]�}|dt|�}}tjd|�}|jd�}ttt	|jdd
dd���\}}}}||}|dt|�}}tjd|�}i}t|jd��}xPt|�D]D\}}t|�}x0td�D]$}|d|>@�r�d||d|<�q�W�q�W||f||<�q4W|dt|�}}||_g}|dt|�}}tjd|�}t	|jd��}xjt|�D]^}|dt|�}}tjd|�}|j
�\}}t	|�}|dk�r�d}nt|�}|j||f��qpW|dt|�}}||_|dt|�}}|dt|�}}tjd|�}t	|jd��}|dt|�}}|dt|�}}tjd|�}t	|jd��}|dt|�}}tjd|�}t	|jd��} | |_|dt|�}}y|dt|�}}Wntk
�r�YnXdS)NzCan't open %s: %sFrrzstatic arc z)static arc arcs_(\d+)_(\d+)\[(\d+)\] = {$z\s+{(\d+), (\d+)},$z'static state states_(\d+)\[(\d+)\] = {$z\s+{(\d+), arcs_(\d+)_(\d+)},$zstatic 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
rr�next�
startswithrr�list�maprr�range�append�states�group�eval�	enumerate�ord�dfas�labels�start�
StopIteration)!rrrrrrZallarcsr)r�n�m�kZarcs�_�i�j�s�t�stater.Zndfasrr�x�y�z�firstZ	rawbitset�cZbyter/Znlabelsr0r	r	r
rTs�

"
zConverter.parse_graminit_ccCs\i|_i|_xJt|j�D]<\}\}}|tjkrB|dk	rB||j|<q|dkr||j|<qWdS)N)�keywords�tokensr,r/r�NAME)rZilabel�type�valuer	r	r
r�szConverter.finish_offN)�__name__�
__module__�__qualname__rrrrr	r	r	r
r$s
&r)rZpgen2rrZGrammarrr	r	r	r
�<module>s