Ë
    pPêj		  ã                  ó    — d dl mZ d dlmZmZ d dlmZmZmZ  G d„ d«      Z	 G d„ de	«      Z
 G d„ d	e	«      Z G d
„ de	«      Z G d„ de	«      Zy)é    )Úannotations)ÚRegisterÚValue)Ú	RInstanceÚRTypeÚobject_rprimitivec                  ó    — e Zd ZU dZeZded<   y)ÚAssignmentTargetz>Abstract base class for assignment targets during IR building.r   ÚtypeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__© ó    úZ/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/irbuild/targets.pyr
   r
      s   … ÙHà#€Dˆ%Ô#r   r
   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚAssignmentTargetRegisterzbRegister as an assignment target.

    This is used for local variables and some temporaries.
    c                ó4   — || _         |j                  | _        y ©N)Úregisterr   )Úselfr   s     r   Ú__init__z!AssignmentTargetRegister.__init__   s   € Ø ˆŒØ—M‘Mˆ�	r   c                ó6   — d| j                   j                  › d�S )NzAssignmentTargetRegister(ú))r   Úname©r   s    r   Ú__repr__z!AssignmentTargetRegister.__repr__   s   € Ø*¨4¯=©=×+=Ñ+=Ð*>¸aÐ@Ð@r   N)r   r   ÚreturnÚNone©r    Ústr©r   r   r   r   r   r   r   r   r   r   r      s   „ ñó
"ôAr   r   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚAssignmentTargetIndexz base[index] as assignment targetc                ó6   — || _         || _        t        | _        y r   )ÚbaseÚindexr   r   )r   r(   r)   s      r   r   zAssignmentTargetIndex.__init__   s   € ØˆŒ	ØˆŒ
ô &ˆ�	r   c                ó<   — d| j                   ›d| j                  ›d�S )NzAssignmentTargetIndex(ú, r   )r(   r)   r   s    r   r   zAssignmentTargetIndex.__repr__%   s   € Ø'¨¯	©	 }°B°t·z±z°nÀAÐFÐFr   N)r(   r   r)   r   r    r!   r"   r$   r   r   r   r&   r&      s   „ Ù*ó&ôGr   r&   c                  ó"   — e Zd ZdZddd„Zdd„Zy)ÚAssignmentTargetAttrzobj.attr as assignment targetc                ó<  — || _         || _        || _        t        |j                  t
        «      rW|j                  j                  j                  |«      r2|j                  | _        |j                  j                  |«      | _        y t        | _        t        | _        y r   )ÚobjÚattrÚ
can_borrowÚ
isinstancer   r   Úclass_irÚhas_attrÚobj_typeÚ	attr_typer   )r   r/   r0   r1   s       r   r   zAssignmentTargetAttr.__init__,   sm   € ØˆŒØˆŒ	Ø$ˆŒÜ�c—h‘h¤	Ô*¨s¯x©x×/@Ñ/@×/IÑ/IÈ$Ô/Oà#&§8¡8ˆDŒMØŸ™×*Ñ*¨4Ó0ˆD�Iô .ˆDŒMÜ)ˆD�Ir   c                ó`   — | j                   rdnd}d| j                  ›d| j                  › |› d�S )Nz, can_borrow=TrueÚ zAssignmentTargetAttr(ú.r   )r1   r/   r0   )r   Úcan_borrow_strs     r   r   zAssignmentTargetAttr.__repr__9   s2   € Ø04·²Ñ,ÀRˆØ& t§x¡x l°!°D·I±I°;¸~Ð>NÈaÐPÐPr   N)F)r/   r   r0   r#   r1   Úboolr    r!   r"   r$   r   r   r   r-   r-   )   s   „ Ù'ô*ôQr   r-   c                  ó"   — e Zd ZdZddd„Zdd„Zy)ÚAssignmentTargetTuplezx, ..., y as assignment targetNc                ó    — || _         || _        y r   ©ÚitemsÚstar_idx)r   r@   rA   s      r   r   zAssignmentTargetTuple.__init__A   s   € ØˆŒ
Ø ˆ�r   c                ó<   — d| j                   › d| j                  › d�S )NzAssignmentTargetTuple(r+   r   r?   r   s    r   r   zAssignmentTargetTuple.__repr__E   s   € Ø'¨¯
©
 |°2°d·m±m°_ÀAÐFÐFr   r   )r@   zlist[AssignmentTarget]rA   z
int | Noner    r!   r"   r$   r   r   r   r=   r=   >   s   „ Ù(ô!ôGr   r=   N)Ú
__future__r   Úmypyc.ir.opsr   r   Úmypyc.ir.rtypesr   r   r   r
   r   r&   r-   r=   r   r   r   ú<module>rF      sW   ðÝ "ç (ß ?Ñ ?÷$ñ $ôAÐ/ô AôGÐ,ô GôQÐ+ô Qô*GÐ,õ Gr   