o
    tb
                     @  sn   d dl mZ ddlmZmZmZmZmZmZ d dl	Z
e
jr+ddlmZ ddlmZmZ G dd dee ZdS )	    )annotations   )ObjectHolderMesonOperatortyped_operatornoKwargs	noPosargsInvalidArgumentsN)Interpreter)TYPE_varTYPE_kwargsc                      s   e Zd Zd fddZdd
dZeedddZeedddZeedddZ	e
ejed ddZe
ejed ddZ  ZS )!IntegerHolderobjintinterpreter'Interpreter'returnNonec                   s  t  ||  j j j jd  jtj	d  fddftj
t fddftjt fddftjt fddftjt fddftjt fddftjt fd	dftjt fd
dftjt fddftjt fddfi
  jtj jtj ji d S )N)Zis_evenZis_oddZ	to_stringc                   s    j  S Nheld_objectxself home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/interpreter/primitives/integer.py<lambda>!   s    z(IntegerHolder.__init__.<locals>.<lambda>c                   s
    j |  S r   r   r   r   r   r   r   "      
 c                   s
    j |  S r   r   r   r   r   r   r   #   r   c                   s
    j |  S r   r   r   r   r   r   r   $   r   c                   s
    j | kS r   r   r   r   r   r   r   '   r   c                   s
    j | kS r   r   r   r   r   r   r   (   r   c                   s
    j | kS r   r   r   r   r   r   r   )   r   c                   s
    j | k S r   r   r   r   r   r   r   *   r   c                   s
    j | kS r   r   r   r   r   r   r   +   r   c                   s
    j | kS r   r   r   r   r   r   r   ,   r   )super__init__methodsupdateis_even_methodis_odd_methodto_string_methodZtrivial_operatorsr   ZUMINUSPLUSr   MINUSZTIMESZEQUALSZ
NOT_EQUALSGREATERLESSZGREATER_EQUALSZLESS_EQUALSZ	operatorsDIVop_divMODop_mod)r   r   r   	__class__r   r   r       s,   
zIntegerHolder.__init__strc                 C  s   dS )Nr   r   r   r   r   r   display_name5   s   zIntegerHolder.display_nameargsT.List[TYPE_var]kwargsr   boolc                 C  s   | j d dkS N   r   r   r   r2   r4   r   r   r   r#   8      zIntegerHolder.is_even_methodc                 C  s   | j d dkS r6   r   r8   r   r   r   r$   =   r9   zIntegerHolder.is_odd_methodc                 C  s
   t | jS r   )r0   r   r8   r   r   r   r%   B   s   
zIntegerHolder.to_string_methodotherc                 C  s   |dkrt d| j| S Nr   zTried to divide by 0r	   r   r   r:   r   r   r   r+   G      
zIntegerHolder.op_divc                 C  s   |dkrt d| j| S r;   r<   r=   r   r   r   r-   M   r>   zIntegerHolder.op_mod)r   r   r   r   r   r   )r   r0   )r2   r3   r4   r   r   r5   )r2   r3   r4   r   r   r0   )r:   r   r   r   )__name__
__module____qualname__r    r1   r   r   r#   r$   r%   r   r   r*   r   r+   r,   r-   __classcell__r   r   r.   r   r      s     


r   )
__future__r   Zinterpreterbaser   r   r   r   r   r	   typingTTYPE_CHECKINGr   r
   r   r   r   r   r   r   r   r   <module>   s    
