
    sh                     ~    S SK Jr   " S S\5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      rg)    )defaultdictc                       \ rS rSrSrg)DuplicatedNameError    N)__name__
__module____qualname____firstlineno____static_attributes__r       f/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/llvmlite/ir/_utils.pyr   r      s    r   r   c                   6    \ rS rSrS rS rS	S jrS rS rSr	g)
	NameScope   c                 N    [        S/5      U l        [        [        5      U l        g )N )set_usesetr   int_basenamemapselfs    r   __init__NameScope.__init__	   s    B4y',r   c                     XR                   ;   $ N)r   )r   names     r   is_usedNameScope.is_used   s    ||##r   c                     U(       a  U R                  U5      nO!U R                  U5      (       a  [        U5      eU R                  R	                  U5        U$ r   )deduplicater   r   r   add)r   r   r"   s      r   registerNameScope.register   sF    ##D)D\\$%d++r   c                     UnU R                  U5      (       aI  U R                  U   S-   nX0R                  U'   SR                  X#5      nU R                  U5      (       a  MI  U$ )N   z{0}.{1})r   r   format)r   r   basenameidents       r   r"   NameScope.deduplicate   sa    ll4  %%h/!3E*/h'##H4D ll4   r   c                      [        U 5      " U S9$ )N)parent)typer   s    r   	get_childNameScope.get_child    s    Dz&&r   )r   r   NF)
r   r	   r
   r   r   r   r$   r"   r/   r   r   r   r   r   r      s    -$'r   r   c                        \ rS rSrS rS rSrg)_StrCaching$   c                 *     U ? g ! [         a     g f = fr   )_StrCaching__cached_strAttributeErrorr   s    r   _clear_string_cache_StrCaching._clear_string_cache&   s    	! 		s    
c                 l     U R                   $ ! [         a    U R                  5       =ol         Us $ f = fr   )r6   r7   
_to_stringr   ss     r   __str___StrCaching.__str__,   s9    	$$$ 	$(OO$55A!H	    "33)__cached_strN)r   r	   r
   r   r8   r>   r   r   r   r   r3   r3   $   s    r   r3   c                       \ rS rSrS rSrg)_StringReferenceCaching4   c                 l     U R                   $ ! [         a    U R                  5       =ol         Us $ f = fr   )&_StringReferenceCaching__cached_refstrr7   _get_referencer<   s     r   get_reference%_StringReferenceCaching.get_reference6   s;    	''' 	'+':':'<<A$H	r@   )__cached_refstrN)r   r	   r
   r   rH   r   r   r   r   rC   rC   4   s    r   rC   c                   $    \ rS rSrS rSS jrSrg)_HasMetadata>   c                      X R                   U'   g)zK
Attach unnamed metadata *node* to the metadata slot *name* of this
value.
N)metadata)r   r   nodes      r   set_metadata_HasMetadata.set_metadata@   s    
 #dr   c           
      &   U R                   (       az  / nU(       a  UR                  S5        UU R                   R                  5        VVs/ s H$  u  p4SR                  X4R	                  5       5      PM&     snn-  nSR                  U5      $ gs  snnf )Nr   z!{0} {1}z, )rO   appenditemsr(   rH   join)r   leading_commabufkvs        r   _stringify_metadata _HasMetadata._stringify_metadataG   sx    ==C

2 $ 3 3 57 5 %%a):; 57 7C99S>!	7s   
+Br   Nr1   )r   r	   r
   r   rQ   r[   r   r   r   r   rL   rL   >   s    #	r   rL   N)	collectionsr   	NameErrorr   objectr   r3   rC   rL   r   r   r   <module>r`      sD    #	) 	' '8&  f 6 r   