
    mi		                        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dS )    )annotations)RegisterValue)	RInstanceRTypeobject_rprimitivec                  "    e Zd ZU dZeZded<   dS )AssignmentTargetz>Abstract base class for assignment targets during IR building.r   typeN)__name__
__module____qualname____doc__r   r   __annotations__     m/var/www/html/bestrading.cuttalo.com/scripts/kaggle-env/lib/python3.11/site-packages/mypyc/irbuild/targets.pyr
   r
      s)         HH#D######r   r
   c                  "    e Zd ZdZd
dZddZd	S )AssignmentTargetRegisterzbRegister as an assignment target.

    This is used for local variables and some temporaries.
    registerr   returnNonec                ,    || _         |j        | _        d S N)r   r   )selfr   s     r   __init__z!AssignmentTargetRegister.__init__   s     M			r   strc                "    d| j         j         dS )NzAssignmentTargetRegister())r   namer   s    r   __repr__z!AssignmentTargetRegister.__repr__   s    @4=+=@@@@r   N)r   r   r   r   r   r   r   r   r   r   r   r"   r   r   r   r   r      sL         
" " " "A A A A A Ar   r   c                  "    e Zd ZdZddZdd	Zd
S )AssignmentTargetIndexz base[index] as assignment targetbaser   indexr   r   c                :    || _         || _        t          | _        d S r   )r'   r(   r   r   )r   r'   r(   s      r   r   zAssignmentTargetIndex.__init__   s    	
 &			r   r   c                (    d| j         d| j        dS )NzAssignmentTargetIndex(, r   )r'   r(   r!   s    r   r"   zAssignmentTargetIndex.__repr__%   s    F	FFtzFFFFr   N)r'   r   r(   r   r   r   r#   r$   r   r   r   r&   r&      sH        **& & & &G G G G G Gr   r&   c                  $    e Zd ZdZdddZddZdS )AssignmentTargetAttrzobj.attr as assignment targetFobjr   attrr   
can_borrowboolr   r   c                ,   || _         || _        || _        t          |j        t
                    rL|j        j                            |          r-|j        | _        |j        	                    |          | _        d S t          | _        t          | _        d S r   )r.   r/   r0   
isinstancer   r   class_irhas_attrobj_type	attr_typer   )r   r.   r/   r0   s       r   r   zAssignmentTargetAttr.__init__,   s}    	$ch	** 	*sx/@/I/I$/O/O 	*#&8DM**400DIII .DM)DIIIr   c                B    | j         rdnd}d| j        d| j         | dS )Nz, can_borrow=True zAssignmentTargetAttr(.r   )r0   r.   r/   )r   can_borrow_strs     r   r"   zAssignmentTargetAttr.__repr__9   s6    04G,,RPtxPPDIP~PPPPr   N)F)r.   r   r/   r   r0   r1   r   r   r#   r$   r   r   r   r-   r-   )   sM        ''* * * * *Q Q Q Q Q Qr   r-   c                  $    e Zd ZdZddd	ZddZdS )AssignmentTargetTuplezx, ..., y as assignment targetNitemslist[AssignmentTarget]star_idx
int | Noner   r   c                "    || _         || _        d S r   r>   r@   )r   r>   r@   s      r   r   zAssignmentTargetTuple.__init__A   s    
 r   r   c                (    d| j          d| j         dS )NzAssignmentTargetTuple(r+   r   rC   r!   s    r   r"   zAssignmentTargetTuple.__repr__E   s    F
FFdmFFFFr   r   )r>   r?   r@   rA   r   r   r#   r$   r   r   r   r=   r=   >   sM        ((! ! ! ! !G G G G G Gr   r=   N)
__future__r   mypyc.ir.opsr   r   mypyc.ir.rtypesr   r   r   r
   r   r&   r-   r=   r   r   r   <module>rH      sM   " " " " " " ( ( ( ( ( ( ( ( ? ? ? ? ? ? ? ? ? ?$ $ $ $ $ $ $ $A A A A A/ A A AG G G G G, G G GQ Q Q Q Q+ Q Q Q*G G G G G, G G G G Gr   