ó
    �œ‘h  ã                   óø  • S SK r S SKr \R                  " S\R                  5      r\R                  " S\R                  5      r\R                  " S\R                  5      rS r\R                  " S5      r\R                  " S5      r	\R                  " S5      r
S	 rS
 r\R                  " S5      rS rS r\R                  " S5      rS rS r\R                  " S\R                  5      rS rS r\" S5      rg)é    Nz2(\n|\A)((     (\$|\*))|)\s*(subroutine|function)\bz+\n\s*end\s*(subroutine|function)\b.*(\n|\Z)z\n     (\$|\*)\s*function\bc                 óÞ  • / nSn [         R                  X5      nUc   U$ UR                  5       n[        R	                  XUR                  5       5      (       a*   U R                  SX$5      nUS:X  a  OUnXUS-    S:w  a  OM)  US-  n[        R                  XR                  5       5      nU=(       a    UR                  5       S-
  =(       d    [        U 5      =p&UR                  XF45        Mé  )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   Ú
éÿÿÿÿé   z
     $é   )
Úroutine_start_reÚsearchÚstartÚfunction_start_reÚmatchÚendÚrfindÚroutine_end_reÚlenÚappend)ÚastrÚspanlistÚindÚmr
   Úir   s          ÚWC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/f2py/_src_pyf.pyÚparse_structurer   7   sä   € ð €HØ
€CØ
Ü×#Ñ# DÓ.ˆØ‰9Øð €Oð —‘“	ˆÜ×"Ñ" 4°·±³×8Ñ8ØØ—J‘J˜t SÓ0�Ø˜“7ØØ�Ø˜!˜a™%�= JÓ.Øñ ð 	�‰
ˆÜ×!Ñ! $¯©«Ó0ˆØ×&˜1Ÿ5™5›7 Q™;×4¬3¨t«9Ð4ˆØ�‰˜˜Ô%ñ! ó    z<\s*(\w[\w\d]*)\s*>z<\s*(\w[\w\d]*)\s*=\s*(.*?)\s*>z<\s*((.*?))\s*>c                 óØ   • [         R                  U 5      n0 nU HL  nUS   R                  5       =(       d    [        U5      nUS   R	                  SS5      n[        U5      nXbU'   MN     U$ )Nr   r   ú\,ú@comma@)Únamed_reÚfindallÚstripÚ
unique_keyÚreplaceÚconv)r   ÚrepsÚnamesÚrepÚnameÚreplÚthelists          r   Úfind_repl_patternsr)   W   se   € Ü×Ñ˜DÓ!€DØ€EÛˆØ�1‰v�|‰|‹~×2¤¨EÓ!2ˆØ�1‰v�~‰~˜e YÓ/ˆÜ�t“*ˆØˆd‹ñ	 ð
 €Lr   c                 ó\   • [        U 5      n[        R                  " [        SU 5      S   n X4$ )NÚ r   )r)   ÚreÚsubnr   )r   r$   s     r   Úfind_and_remove_repl_patternsr.   a   s+   € Ü˜tÓ$€EÜ�7Š7”8˜R Ó& qÑ)€DØˆ;Ðr   z\A\\(?P<index>\d+)\Zc                 óD  • U R                  S5      nU Vs/ s H  o"R                  5       PM     nn[        [        U5      5       HC  n[        R                  X4   5      nU(       d  M#  [        UR                  S5      5      nX6   X4'   ME     SR                  U5      $ s  snf )NÚ,Úindex)	Úsplitr   Úranger   Úitem_rer   ÚintÚgroupÚjoin)r   ÚbÚxÚlr   r   Újs          r   r"   r"   h   s   € Ø�
‰
�3‹€AÙÓšA�q�‰Ž™A€AÐÜ”3�q“6Ž]ˆÜ�M‰M˜!™$Óˆßˆ1Ü�A—G‘G˜GÓ$Ó%ˆAØ‘4ˆA‹Dñ	 ð
 �8‰8�A‹;Ðùò 	s   –Bc                 ó„   • [        U R                  5       5      nSnSnU(       d  SU 3nXA;   a  US-  nOSnU(       d  M  W$ )z'Obtain a unique key given a dictionary.Fr   Ú__lT)ÚlistÚkeys)ÚadictÚallkeysÚdoneÚnÚnewkeys        r   r    r    r   sL   € ä�5—:‘:“<Ó €GØ€DØ	€AÞØ�q�c�ˆØÓØ�‰F‰AàˆD÷ ˆdð €Mr   z\A\s*(\w[\w\d]*)\s*\Zc                 ó–  ^^^• U R                  SS5      n U R                  SS5      n [        U 5      m[        R                  SU 5      n U4S jn[        R                  X 5      n S nS n0 m[
        R                  U 5       HÞ  nUT;  d  M  TR                  XQR                  US 5      5      nUc  [        SU S35      eXQ;  a  UR                  S	5      (       d  XaU'   UR                  S
5       Vs/ s H  owR                  SS
5      PM     nn[        U5      n	Uc  U	nUTU'   UnM¦  X“:X  a  UTU'   M²  S
R                  TU   5      n
[        SU SU
 SU SU S3	5        Mà     T(       d  U $ UU4S jnSn[        U5       H  mU[
        R                  X°5      S-   -  nM      UR                  SS5      nUR                  SS5      nU$ s  snf )Nz\>z@rightarrow@z\<z@leftarrow@z<\1>c                 ó  >• [        U R                  S5      R                  SS5      5      n[        R	                  U5      (       a  SU S3$ S nTR                  5        H  nTU   U:X  d  M  UnM     Uc  [        T5      nUTU'   SU S3$ )Nr   r   r   Ú<Ú>)r"   r6   r!   Útemplate_name_rer   r?   r    )Úmobjr(   r&   ÚkeyÚlnamess       €r   ÚlistreplÚexpand_sub.<locals>.listrepl‡   s�   ø€ Ü�t—z‘z !“}×,Ñ,¨U°IÓ>Ó?ˆÜ×!Ñ! '×*Ñ*Ø�w�i˜q�>Ð!ØˆØ—;‘;–=ˆCØ�c‰{˜gÕ%Ø’ñ !ð ‰<Ü˜fÓ%ˆDØ"ˆF�4‰LØ�4�&˜ˆ{Ðr   zNo replicates found for <rH   Ú_r0   r   z*Mismatch in number of replacements (base <Ú=z>) for <z>. Ignoring.c                 ó^   >• U R                  S5      nTR                  UTS-   U/-  5      T   $ )Nr   )r6   Úget)rJ   r&   ÚkÚruless     €€r   ÚnamereplÚexpand_sub.<locals>.namerepl³   s1   ø€ Ø�z‰z˜!‹}ˆØ�y‰y˜  A¡¨$¨Ñ/Ó0°Ñ3Ð3r   r+   z

rG   )r!   r)   r   ÚsubÚlist_reÚtemplate_rer   rR   Ú
ValueErrorÚ
startswithr2   r   r7   Úprintr3   )Úsubstrr$   rM   ÚnumsubsÚ	base_ruleÚrr(   r   ÚruleÚnumÚrules_base_rulerU   ÚnewstrrS   rL   rT   s                @@@r   Ú
expand_subre   �   sÏ  ú€ Ø�^‰^˜E >Ó2€FØ�^‰^˜E =Ó1€FÜ Ó'€FÜ�\‰\˜' 6Ó*€Fõô �[‰[˜Ó*€Fà€GØ€IØ€EÜ× Ñ  Ö(ˆØ�E�>Ø—j‘j §I¡I¨a°Ó$6Ó7ˆGØ‰Ü Ð#<¸Q¸C¸qÐ!AÓBÐBØ‹~ g×&8Ñ&8¸×&=Ñ&=Ø"�a‘Ø7>·}±}ÀSÔ7IÓJÒ7I°!—I‘I˜i¨Ö-Ñ7IˆDÐJÜ�d“)ˆCà‰Ø�Ø��a‘Ø’	Ø“Ø��a“à"%§(¡(¨5°Ñ+;Ó"<�Üð  Ø )˜{¨!¨OÐ+<ð =Ø˜S  ' ¨,ð8ö 9ñ% )ö* Øˆö4ð €FÜ�7Ž^ˆØ”+—/‘/ (Ó3°fÑ<Ñ<Šñ ð �^‰^˜N¨CÓ0€FØ�^‰^˜M¨3Ó/€FØ€Mùò7 Ks   Ã/Gc                 óü   • U nSn[        U5      nSn0 nUR                  [        5        U HF  n[        XUS    5      u  pxX'-  nUR                  U5        U[	        XS   US    U5      -  nUS   nMH     X!US  -  nU$ )Nr+   r   r   )r   ÚupdateÚ_special_namesr.   re   )	Úallstrrd   ÚwritestrÚstructÚoldendr$   rW   Ú
cleanedstrÚdefss	            r   Úprocess_strro   ¿   sœ   € Ø€FØ€Hä˜VÓ$€Fà€FØ€EØ	‡L�L”Ô ÛˆÜ8¸ÀsÈ1ÁvÐ9NÓOÑˆ
ØÑˆØ�‰�TÔØ”J˜v¨!¡f¨S°©VÐ4°eÓ<Ñ<ˆØ�Q‘Šñ ð �v�w�Ñ€Hà€Or   z8(\n|\A)\s*include\s*['\"](?P<name>[\w\d./\\]+\.src)['\"]c                 óN  • [         R                  R                  U 5      n[        U 5       n/ nU H×  n[        R                  U5      nU(       a§  UR                  S5      n[         R                  R                  U5      (       d  [         R                  R                  X5      n[         R                  R                  U5      (       a  UR                  [        U5      5        M³  UR                  U5        MÆ  UR                  U5        MÙ     S S S 5        U$ ! , (       d  f       W$ = f)Nr&   )ÚosÚpathÚdirnameÚopenÚinclude_src_rer   r6   Úisabsr7   ÚisfileÚextendÚresolve_includesr   )ÚsourceÚdÚfidÚlinesÚliner   Úfns          r   ry   ry   Õ   sÉ   € Ü
�‰�‰˜Ó€AÜ	ˆfŒ˜ØˆÛˆDÜ×$Ñ$ TÓ*ˆAÞØ—W‘W˜V“_�Ü—w‘w—}‘} R×(Ñ(ÜŸ™Ÿ™ aÓ,�BÜ—7‘7—>‘> "×%Ñ%Ø—L‘LÔ!1°"Ó!5Ö6à—L‘L Ö&à—‘˜TÖ"ñ ÷ 
ð €L÷ 
Œð €Lús   «C DÄ
D$c                 óL   • [        U 5      n[        SR                  U5      5      $ )Nr+   )ry   ro   r7   )rz   r}   s     r   Úprocess_filer�   ç   s   € Ü˜VÓ$€EÜ�r—w‘w˜u“~Ó&Ð&r   zÿ
<_c=s,d,c,z>
<_t=real,double precision,complex,double complex>
<prefix=s,d,c,z>
<ftype=real,double precision,complex,double complex>
<ctype=float,double,complex_float,complex_double>
<ftypereal=real,double precision,\0,\1>
<ctypereal=float,double,\0,\1>
)rq   r,   ÚcompileÚIr   r   r   r   rY   r   rX   r)   r.   r4   r"   r    rI   re   ro   ru   ry   r�   rh   © r   r   Ú<module>r…      s  ðÛ 	Û 	ð+ðZ —:’:ÐSÐUW×UYÑUYÓZÐ Ø—’ÐJÈBÏDÉDÓQ€Ø—J’JÐ=¸r¿t¹tÓDÐ òð8 �jŠjÐ/Ó0€Ø�:Š:Ð8Ó9€Ø
�*Š*Ð'Ó
(€òòð �*Š*Ð,Ó
-€òòð —:’:Ð6Ó7Ð ò<ò|ð( —’ÐWÐY[×Y]ÑY]Ó^€òò$'ñ
 $ð %ó �r   