
    X-Ph!                        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__     U/var/www/html/test/jupyter/venv/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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   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r      s2         
" " " " " "r   r   c                      e Zd Z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   N)r    r   r!   r   r   r   r   r   r   r   r   r      s.        **& & & & & &r   r   c                      e Zd ZdZdddZdS )AssignmentTargetAttrzobj.attr as assignment targetFobjr   attrstr
can_borrowboolr   r   c                ,   || _         || _        || _        t          |j        t
                    rL|j        j                            |          r-|j        | _        |j        	                    |          | _        d S t          | _        t          | _        d S r   )r%   r&   r(   
isinstancer   r   class_irhas_attrobj_type	attr_typer   )r   r%   r&   r(   s       r   r   zAssignmentTargetAttr.__init__&   s}    	$ch	** 	*sx/@/I/I$/O/O 	*#&8DM**400DIII .DM)DIIIr   N)F)r%   r   r&   r'   r(   r)   r   r   r   r   r   r   r$   r$   #   s3        ''* * * * * * *r   r$   c                      e Zd ZdZd
dd	ZdS )AssignmentTargetTuplezx, ..., y as assignment targetNitemslist[AssignmentTarget]star_idx
int | Noner   r   c                "    || _         || _        d S r   )r2   r4   )r   r2   r4   s      r   r   zAssignmentTargetTuple.__init__7   s    
 r   r   )r2   r3   r4   r5   r   r   r   r   r   r   r1   r1   4   s3        ((! ! ! ! ! ! !r   r1   N)
__future__r   mypyc.ir.opsr   r   mypyc.ir.rtypesr   r   r   r
   r   r   r$   r1   r   r   r   <module>r:      s+   " " " " " " ( ( ( ( ( ( ( ( ? ? ? ? ? ? ? ? ? ?$ $ $ $ $ $ $ $" " " " "/ " " "& & & & &, & & &* * * * *+ * * *"! ! ! ! !, ! ! ! ! !r   