a
    Z¨XhË  ã                   @   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   úW/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/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 d   ƒ n1 s^0    Y  t	|dƒ\}}t	|dƒ\}}t	|dƒ\}}|||… }	t
|	dƒ}
t
|
dƒ}||||…< |
|||…< d	d
„ |D ƒ}tt j | d¡dƒ}| |¡ W d   ƒ n1 s0    Y  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>>   ó    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   