File: //usr/local/lib/python3.10/dist-packages/numpy/f2py/__pycache__/_src_pyf.cpython-310.pyc
o
���g� � @ s� d dl Z e �de j�Ze �de j�Ze �de j�Zdd� Ze �d�Ze �d�Ze �d �Z d
d� Z
dd
� Ze �d�Zdd� Z
dd� Ze �d�Zdd� Zdd� Ze �de j�Zdd� Zdd� Ze
d�ZdS )� Nz2(\n|\A)(( (\$|\*))|)\s*(subroutine|function)\bz+\n\s*end\s*(subroutine|function)\b.*(\n|\Z)z\n (\$|\*)\s*function\bc C s� g }d} t �| |�}|du r |S |�� }t�| ||�� �r: | �d||�}|dkr,n|}| ||d � dkr9nq |d7 }t�| |�� �}|rN|�� d pQt| � }}|� ||f� q) z� Return a list of tuples for each function or subroutine each
tuple is the start and end of a subroutine or function to be
expanded.
r TN�
���� z
$� )
�routine_start_re�search�start�function_start_re�match�end�rfind�routine_end_re�len�append)�astr�spanlist�ind�mr �ir � r �>/usr/local/lib/python3.10/dist-packages/numpy/f2py/_src_pyf.py�parse_structure6 s, ���r z<\s*(\w[\w\d]*)\s*>z<\s*(\w[\w\d]*)\s*=\s*(.*?)\s*>z<\s*((.*?))\s*>c C sP t �| �}i }|D ]}|d �� pt|�}|d �dd�}t|�}|||<