
    Icg                        d dl Z 	  e j                  de j                        Z e j                  de j                        Z e j                  de j                        Zd Z e j                  d      Z e j                  d      Z e j                  d      Z	d	 Z
d
 Z e j                  d      Zd Zd Z e j                  d      Zd Zd Z e j                  de j                        Zd Zd Z e
d      Zy)    Nz2(\n|\A)((     (\$|\*))|)\s*(subroutine|function)\bz+\n\s*end\s*(subroutine|function)\b.*(\n|\Z)z\n     (\$|\*)\s*function\bc                    g }d}	 t         j                  | |      }|	 |S |j                         }t        j	                  | ||j                               r)	 | j                  d||      }|dk(  rn|}| ||dz    dk7  rn(|dz  }t        j                  | |j                               }|xr |j                         dz
  xs t        |       x}}|j                  ||f       )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          N/var/www/html/bid-api/venv/lib/python3.12/site-packages/numpy/f2py/_src_pyf.pyparse_structurer   6   s     H
C
##D#.9 O 	""48JJtS%0b5!A#;
*  	
!!$0O!%%'!)0s4y0c%!     z<\s*(\w[\w\d]*)\s*>z<\s*(\w[\w\d]*)\s*=\s*(.*?)\s*>z<\s*((.*?))\s*>c                     t         j                  |       }i }|D ]G  }|d   j                         xs t        |      }|d   j	                  dd      }t        |      }|||<   I |S )Nr   r   \,@comma@)named_refindallstrip
unique_keyreplaceconv)r   repsnamesrepnamereplthelists          r   find_repl_patternsr)   U   sg    D!DE1v||~2E!21v~~eY/t*d	 
 Lr   c                 \    t        |       }t        j                  t        d|       d   } | |fS )N r   )r)   resubnr   )r   r$   s     r   find_and_remove_repl_patternsr.   _   s-    t$E778R&q)D;r   z\A\\(?P<index>\d+)\Zc                 6   | j                  d      }|D cg c]  }|j                          }}t        t        |            D ]?  }t        j                  ||         }|st        |j                  d            }||   ||<   A dj                  |      S c c}w )N,index)	splitr   ranger   item_rer   intgroupjoin)r   bxlr   r   js          r   r"   r"   e   s    

3AAqAA3q6]MM!A$AGGG$%AQ4AaD	 
 88A; 	s   Bc                 l    t        | j                               }d}d}|sd|z  }||v r|dz  }nd}|sS )z( Obtain a unique key given a dictionary.Fr   z__l%sT)listkeys)adictallkeysdonennewkeys        r   r    r    o   sJ    5::< GD	AAWFAD  Mr   z\A\s*(\w[\w\d]*)\s*\Zc           
      n   | j                  dd      } | j                  dd      } t        |       t        j                  d|       } fd}t        j                  ||       } d }d }i t
        j                  |       D ]  }|vsj                  ||j                  |d             }|t        d|z        ||vr|j                  d      s|||<   |j                  d	      D cg c]  }|j                  d
d	       }}t        |      }	|
|	}||<   |}|	|k(  r||<   t        dj                  |d	j                  |         ||              s| S fd}
d}t        |      D ]  |t
        j                  |
|       dz   z  }  |j                  dd      }|j                  dd      }|S c c}w )Nz\>z@rightarrow@z\<z@leftarrow@z<\1>c                     t        | j                  d      j                  dd            }t        j	                  |      rd|z  S d }j                         D ]  }|   |k(  s|} |t              }||<   d|z  S )Nr   r   r   z<%s>)r"   r6   r!   template_name_rer   r>   r    )mobjr(   r&   keylnamess       r   listreplzexpand_sub.<locals>.listrepl   s    tzz!},,UI>?!!'*W%%;;=Cc{g% ! <f%D"F4L}r   zNo replicates found for <%s>_r0   r   zHMismatch in number of replacements (base <{}={}>) for <{}={}>. Ignoring.c                 ^    | j                  d      }j                  |dz   |gz           S )Nr   )r6   get)rG   r&   kruless     r   namereplzexpand_sub.<locals>.namerepl   s0    zz!}yy!dV|,Q//r   r+   z

><)r!   r)   r   sublist_retemplate_rer   rM   
ValueError
startswithr2   r   printformatr7   r3   )substrr$   rJ   numsubs	base_rulerr(   r   rulenumrP   newstrrN   rI   rO   s               @@@r   
expand_subra   ~   s   ^^E>2F^^E=1F'F\\'6*F [[6*F GIE  (E>jjEIIa$67G !?1!EFF~g&8&8&="a7>}}S7IJ7I!AIIi-7IDJd)Ca	a //5vi%PYJZA[]^`g/hj# )& 0 F7^+//(F3f<<  ^^NC0F^^M3/FM3 Ks   &F2c                    | }d}t        |      }d}i }|j                  t               |D ]I  }t        |||d          \  }}||z  }|j                  |       |t	        ||d   |d    |      z  }|d   }K |||d  z  }|S )Nr+   r   r   )r   update_special_namesr.   ra   )	allstrr`   writestrstructoldendr$   rS   
cleanedstrdefss	            r   process_strrk      s    FHV$FFE	LL 8s1v9NO
DJTJvc!fSV4e<<a&  vwHOr   z8(\n|\A)\s*include\s*['\"](?P<name>[\w\d./\\]+\.src)['\"]c                 "   t         j                  j                  |       }t        |       5 }g }|D ]  }t        j                  |      }|r|j                  d      }t         j                  j                  |      s t         j                  j                  ||      }t         j                  j                  |      r|j                  t        |             |j                  |       |j                  |        	 d d d        |S # 1 sw Y   S xY w)Nr&   )ospathdirnameopeninclude_src_rer   r6   isabsr7   isfileextendresolve_includesr   )sourcedfidlinesliner   fns          r   ru   ru      s    
A	fD$$T*AWWV_ww}}R(a,B77>>"%LL!1"!56LL&T"  
 L 
 Ls   CDDc                 L    t        |       }t        dj                  |            S )Nr+   )ru   rk   r7   )rv   ry   s     r   process_filer}      s    V$Erwwu~&&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>
)r,   compileIr   r   r   r   rU   r   rT   r)   r.   r4   r"   r    rF   ra   rk   rq   ru   r}   rd    r   r   <module>r      s   	+Z 2::SUWUYUYZ JBDDQBJJ=rttD 6 bjj/02::89
"**'
(
 "**,
- 2::67 9v& WY[Y]Y]^$' $ % r   