U
    .‰dË  ã                   @   s:   d dl Zd dlZdd„ Zdd„ Zdd„ Zedkr6eƒ  dS )	é    Nc                 C   sd   t | ƒ}d| }d| }|D ]\}}| ¡  |¡r q8q|D ]\}}| ¡  |¡r< qXq<|d |fS )Nz#--! %s-startz#--! %s-endé   )Ú	enumerateÚstripÚ
startswithÚendswith)ÚlinesÚtagZsrclinesZ	start_tagZend_tagÚstart_indexÚlineZ	end_index© r   ú6/tmp/pip-unpacked-wheel-thxhbsgj/pycparser/ply/ygen.pyÚget_source_range   s    r   c                 C   sB   g }d}d| }| D ](}|  ¡  |¡r.| }q|r| |¡ q|S )NTz#--! %s)r   r   Úappend)r   r   Zfiltered_linesÚincludeZtag_textr
   r   r   r   Úfilter_section   s    r   c               	   C   sú   t j t¡} t t j | d¡t j | d¡¡ tt j | d¡dƒ}| ¡ }W 5 Q R X t	|dƒ\}}t	|dƒ\}}t	|dƒ\}}|||… }	t
|	dƒ}
t
|
dƒ}||||…< |
|||…< d	d
„ |D ƒ}tt j | d¡dƒ}| |¡ W 5 Q R X tdƒ d S )Nzyacc.pyzyacc.py.bakÚrZ
parsedebugZparseoptzparseopt-notrackÚDEBUGZTRACKINGc                 S   s   g | ]}|  ¡ d  ‘qS )Ú
)Úrstrip)Ú.0r
   r   r   r   Ú
<listcomp>>   s     zmain.<locals>.<listcomp>ÚwzUpdated yacc.py)ÚosÚpathÚdirnameÚ__file__ÚshutilÚcopy2ÚjoinÚopenÚ	readlinesr   r   Ú
writelinesÚprint)r   Úfr   Zparse_startZ	parse_endZparseopt_startZparseopt_endZparseopt_notrack_startZparseopt_notrack_endZ
orig_linesZparseopt_linesZparseopt_notrack_linesr   r   r   Úmain'   s      

r$   Ú__main__)Úos.pathr   r   r   r   r$   Ú__name__r   r   r   r   Ú<module>
   s   