
    h%                     |   d Z ddlZddlmZ  G d dej                  Z G d dej                  Ze G d d	                      Z G d
 dej                  Z ed           G d d                      Z	 ed           G d d                      Z
e G d d                      Ze G d d                      Z ed           G d d                      Z ed           G d d                      Z G d dej                  Z G d dej                  Ze G d d                      ZdS ) zJThis module provides simple types for representing various URCL constructs    N)	dataclassc                   *   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEeGfdFZHdGS )HMnemonicaddrshlodstrbgenorsubjmpmovnopimmlshincdecnegandornotxnorxornandbrlbrgbrebnebodbevblebrzbnzbrnbrppshpopcalrethltcpybrcmltdivmodbsrbslsrsbsssetesetnesetgsetlsetgesetlesetcsetncllodlstrsdivsbrlsbrgssetlssetgssetlessetgeabsumltinoutdwreturnc                     | j         S Nvalueselfs    4/home/seanl/mnt/public/Repos/urclelf/./urcl/types.py__str__zMnemonic.__str__K   
    z    N)I__name__
__module____qualname__ADDRSHLODSTRBGENORSUBJMPMOVNOPIMMLSHINCDECNEGANDORNOTXNORXORNANDBRLBRGBREBNEBODBEVBLEBRZBNZBRNBRPPSHPOPCALRETHLTCPYBRCMLTDIVMODBSRBSLSRSBSSSETESETNESETGSETLSETGESETLESETCSETNCLLODLSTRSDIVSBRLSBRGSSETLSSETGSSETLESSETGEABSUMLTINOUTDWr	   rR    rT   rQ   r   r      s       
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C	B
CD
CD
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
CDEDDEEDEDDDDDEEFF
CD	B
C	B      rT   r   c                   J    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdS )DefinedImmediateBITSMINREGMINHEAPMINSTACKHEAPMSBSMSBMAXSMAXUHALFLHALFLEFTRIGHTUPDOWNN)rU   rV   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   rQ   r   r   N   sY        DFGHD
CD
CDEEDE	BDDDrT   r   c                   $    e Zd ZU eed<   eed<   dS )PortTypeidnameN)rU   rV   rW   int__annotations__r	   r   rT   rQ   r   r   _   s"         GGG
IIIIIrT   r   c                   "   e Zd Z edd          Z edd          Z edd          Z edd          Z ed	d
          Z edd          Z	 edd          Z
 edd          Z edd          Z edd          Zedd            ZdefdZdS )Port   text   numb   x	   y
   color   buffer(   rng,   waitA   gamepadB   gamepad_inforN   	int | strc                     t           D ]d}t          |t                    r9|j        j                                        |                                k    r|c S P|j        j        |k    r|c S ed S rL   )r   
isinstancer	   rN   r   lowerr   )clsrN   ports      rQ   
from_valuezPort.from_valuep   s      	  	 D%%%  :?((**ekkmm;;KKK < :=E))KKK *	  	 rT   rJ   c                      d| j         j         S )N%)rN   r   rO   s    rQ   rR   zPort.__str__{   s    $4:?$$$rT   N)rN   r   )rU   rV   rW   r   TEXTNUMBXYCOLORBUFFERRNGWAITGAMEPADGAMEPAD_INFOclassmethodr   r	   rR   r   rT   rQ   r   r   d   s        8AvD8AvDCACAHR!!EXb(##F
(2u

C8BDhr9%%G8B//L      [ % % % % % % %rT   r   T)unsafe_hashc                   &    e Zd ZU eed<   defdZdS )Labelr   rJ   c                     | j         S rL   )r   rO   s    rQ   rR   zLabel.__str__   s
    yrT   NrU   rV   rW   r	   r   rR   r   rT   rQ   r   r   ~   s:         
III      rT   r   c                   &    e Zd ZU eed<   defdZdS )GeneralRegisterindexrJ   c                     d| j          S )N$)r   rO   s    rQ   rR   zGeneralRegister.__str__   s    4:rT   NrU   rV   rW   r   r   r	   rR   r   rT   rQ   r   r      s:         JJJ             rT   r   c                   &    e Zd ZU eed<   defdZdS )RelativeAddressoffsetrJ   c                     d| j          S )N~)r   rO   s    rQ   rR   zRelativeAddress.__str__   s     4;   rT   Nr   r   rT   rQ   r   r      s:         KKK! ! ! ! ! ! !rT   r   c                   &    e Zd ZU eed<   defdZdS )	CharactercharrJ   c                     d| j          dS )N')r   rO   s    rQ   rR   zCharacter.__str__   s    49rT   Nr   r   rT   rQ   r   r      s:         
III             rT   r   c                       e Zd ZdefdZdS )BasePointerrJ   c                     dS )Nbpr   rO   s    rQ   rR   zBasePointer.__str__       trT   NrU   rV   rW   r	   rR   r   rT   rQ   r   r      /              rT   r   c                       e Zd ZdefdZdS )StackPointerrJ   c                     dS )Nspr   rO   s    rQ   rR   zStackPointer.__str__   r   rT   Nr   r   rT   rQ   r   r      r   rT   r   c                       e Zd Z ej                    Z ej                    Z ej                    Z ej                    Z ej                    Z	de
fdZdS )
HeaderTyperJ   c                 4    | j                                         S rL   )r   upperrO   s    rQ   rR   zHeaderType.__str__   s    y   rT   N)rU   rV   rW   enumautor   r   r   RUNr   r	   rR   r   rT   rQ   r   r      sp        49;;DTY[[FdikkG
$)++Cty{{H! ! ! ! ! ! !rT   r   c                   &    e Zd ZdZdZdZdefdZdS )HeaderInequalityTypez<=z==z>=rJ   c                     | j         S rL   rM   rO   s    rQ   rR   zHeaderInequalityType.__str__   rS   rT   N)rU   rV   rW   
LESS_EQUALEQUALGREATER_EQUALr	   rR   r   rT   rQ   r  r     s>        JEM      rT   r  c                   :    e Zd ZU eed<   eed<   eed<   defdZdS )Headertypeinequality_typerN   rJ   c                    t          | j                  g}| j        t          j        k    r'|                    t          | j                             |                    t          | j                             d                    |          S )N )r	   r  r  r  r	  appendrN   join)rP   wordss     rQ   rR   zHeader.__str__   sk    	NN+#7#===LLT122333S__%%%xxrT   N)	rU   rV   rW   r   r   r  r   r	   rR   r   rT   rQ   r  r     sR         
))))JJJ      rT   r  )__doc__r  dataclassesr   Enumr   r   r   r   r   r   r   r   r   r   r   r  r  r   rT   rQ   <module>r     s   L L  ! ! ! ! ! !G G G G Gty G G GR    ty   "        % % % % %49 % % %4 t       
 t               
 ! ! ! ! ! ! ! !
                
 t        t       ! ! ! ! ! ! ! !    49             rT   