B
    ö”XË  ã               @   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   sh   t | ƒ}d| }d| }x |D ]\}}| ¡  |¡rP qW x |D ]\}}| ¡  |¡r@P q@W |d |fS )Nz#--! %s-startz#--! %s-endé   )Ú	enumerateÚstripÚ
startswithÚendswith)ÚlinesÚtagZsrclinesZ	start_tagZend_tagZstart_indexÚlineZ	end_index© r
   ú1lib/python3.7/site-packages/pycparser/ply/ygen.pyÚget_source_range   s    r   c             C   sF   g }d}d| }x0| D ](}|  ¡  |¡r0| }q|r| |¡ qW |S )NTz#--! %s)r   r   Úappend)r   r   Zfiltered_linesZ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 d Q R X t	|dƒ\}}t	|dƒ\}}t	|dƒ\}}|||… }	t
|	dƒ}
t
|
dƒ}||||…< |
|||…< d	d
„ |D ƒ}tt j | d¡dƒ}| |¡ W d 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__ÚshutilZ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   