�
��xd
� � � d dl Z e j d� � Z e j d� � Z e j d� � Z G d� d� � Zd� Zd� Zd � Zd
� Z dS )� Nz\s*(\w+): ([^,\)]+)([,\)\s]*)z(\s*pub fn (?:LAPACKE_)?(\w+[a-z0-9])(_?)z(?:\s*->\s*([^;]+))?c �* � e Zd Zd� Zed� � � ZdS )�Functionc �0 � || _ || _ || _ d S )N)�name�args�ret)�selfr r r s �-/home/dumbo/Documents/pfapack/bin/function.py�__init__zFunction.__init__
s � ��� ��� ������ c �. � t | � � \ }} |�d S | d dk sJ �| dd � } g } t | � � \ }}} |�n,|� ||f� � | � � � } �Bt | � � \ }} t |||� � S )Nr �(� )� pull_name�
pull_argument�append�strip�pull_returnr )�liner r �arg�atyr s r
�parsezFunction.parse s� � ��t�_�_�
��d��<��4��A�w�#�~�~�~�~��A�B�B�x���� �*�4�0�0�N�C��d��{���K�K��c�
�#�#�#��:�:�<�<�D� � ��%�%� ��T���d�C�(�(�(r N)�__name__�
__module__�__qualname__r �staticmethodr � r r
r r s>