3
ãdeË  ã               @   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 ]\}}|jƒ j|ƒrP qW x |D ]\}}|jƒ j|ƒr@P q@W |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   úI/var/www/agendate/envp3/lib/python3.6/site-packages/pycparser/ply/ygen.pyÚget_source_range   s    r   c             C   sF   g }d}d| }x0| D ](}|j ƒ j|ƒr0| }q|r|j|ƒ qW |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jtƒ} tjt jj| dƒt jj| dƒƒ tt jj| dƒdƒ�}|jƒ }W d Q R X t	|dƒ\}}t	|dƒ\}}t	|dƒ\}}|||… }	t
|	dƒ}
t
|
dƒ}||||…< |
|||…< d	d
„ |D ƒ}tt jj| dƒdƒ�}|j|ƒ 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 | ]}|j ƒ 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   