U տV� � @ s: d dl Zd dlZdd� Zdd� Zdd� Zedkr6e� dS ) � Nc C sd t | �}d| }d| }|D ]\}}|�� �|�r q8q|D ]\}}|�� �|�r< qXq<|d |fS )Nz #--! %s-startz#--! %s-end� )� enumerate�strip� startswith�endswith)�lines�tagZsrclinesZ start_tagZend_tagZstart_index�lineZ end_index� r �/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 Zfiltered_linesZincludeZtag_textr r r r �filter_section s r c C s� t j�t�} t�t j�| d�t j�| d�� tt j�| d�d��}|�� }W 5 Q R X t |d�\}}t |d�\}}t |d�\}}|||� } t | d�} t | d�}||||�<