
    h%                        S r SSKrSSKJr   " S S\R                  5      r " S S\R                  5      r\ " S S	5      5       r " S
 S\R                  5      r\" SS9 " S S5      5       r	\" SS9 " S S5      5       r
\ " S S5      5       r\ " S S5      5       r\" SS9 " S S5      5       r\" SS9 " S S5      5       r " S S\R                  5      r " S S\R                  5      r\ " S S5      5       rg) zJThis module provides simple types for representing various URCL constructs    N)	dataclassc                   2   \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0S/r1S0r2S1r3S2r4S3r5S4r6S5r7S6r8S7r9S8r:S9r;S:r<S;r=S<r>S=r?S>r@S?rAS@rBSArCSBrDSCrESDrFSErGSF\H4SG jrISHrJgI)J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                     U R                   $ Nvalueselfs    )/mnt/public/Repos/urclelf/./urcl/types.py__str__Mnemonic.__str__K       zz     N)K__name__
__module____qualname____firstlineno__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
   rS   __static_attributes__rW   rV   rR   r   r      sb   
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 rV   r   c                   P    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrg)DefinedImmediateN   BITSMINREGMINHEAPMINSTACKHEAPMSBSMSBMAXSMAXUHALFLHALFLEFTRIGHTUPDOWNrW   N)rX   rY   rZ   r[   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rW   rV   rR   r   r   N   sM    DFGHD
CD
CDEEDE	BDrV   r   c                   *    \ rS rSr% \\S'   \\S'   Srg)PortType_   idnamerW   N)rX   rY   rZ   r[   int__annotations__r
   r   rW   rV   rR   r   r   _   s    G
IrV   r   c                       \ rS rSr\" SS5      r\" SS5      r\" SS5      r\" SS	5      r\" S
S5      r	\" SS5      r
\" SS5      r\" SS5      r\" SS5      r\" SS5      r\SS j5       rS\4S jrSrg)Portd      text   numb   x	   y
   color   buffer(   rng,   waitA   gamepadB   gamepad_infoc                     [          Hr  n[        U[        5      (       a<  UR                  R                  R                  5       UR                  5       :X  a  Us  $ MT  UR                  R                  U:X  d  Mp  Us  $    g rM   )r   
isinstancer
   rO   r   lowerr   )clsrO   ports      rR   
from_valuePort.from_valuep   s[     D%%%::??((*ekkm;K < ::==E)K rV   rK   c                 4    SU R                   R                   3$ )N%)rO   r   rP   s    rR   rS   Port.__str__{   s    4::??#$$rV   rW   N)rO   z	int | str)rX   rY   rZ   r[   r   TEXTNUMBXYCOLORBUFFERRNGWAITGAMEPADGAMEPAD_INFOclassmethodr   r
   rS   r   rW   rV   rR   r   r   d   s    AvDAvDCACAR!Eb(#F
2u
CBDr9%GB/L   % %rV   r   T)unsafe_hashc                   .    \ rS rSr% \\S'   S\4S jrSrg)Label~   r   rK   c                     U R                   $ rM   )r   rP   s    rR   rS   Label.__str__   s    yyrV   rW   NrX   rY   rZ   r[   r
   r   rS   r   rW   rV   rR   r   r   ~   s    
I rV   r   c                   .    \ rS rSr% \\S'   S\4S jrSrg)GeneralRegister   indexrK   c                      SU R                    3$ )N$)r   rP   s    rR   rS   GeneralRegister.__str__   s    4::,rV   rW   N	rX   rY   rZ   r[   r   r   r
   rS   r   rW   rV   rR   r   r      s    J   rV   r   c                   .    \ rS rSr% \\S'   S\4S jrSrg)RelativeAddress   offsetrK   c                      SU R                    3$ )N~)r   rP   s    rR   rS   RelativeAddress.__str__   s    4;;-  rV   rW   Nr   rW   rV   rR   r   r      s    K! !rV   r   c                   .    \ rS rSr% \\S'   S\4S jrSrg)	Character   charrK   c                 "    SU R                    S3$ )N')r   rP   s    rR   rS   Character.__str__   s    499+QrV   rW   Nr   rW   rV   rR   r   r      s    
I   rV   r   c                   "    \ rS rSrS\4S jrSrg)BasePointer   rK   c                     g)NbprW   rP   s    rR   rS   BasePointer.__str__       rV   rW   NrX   rY   rZ   r[   r
   rS   r   rW   rV   rR   r  r          rV   r  c                   "    \ rS rSrS\4S jrSrg)StackPointer   rK   c                     g)NsprW   rP   s    rR   rS   StackPointer.__str__   r	  rV   rW   Nr
  rW   rV   rR   r  r     r  rV   r  c                       \ rS rSr\R
                  " 5       r\R
                  " 5       r\R
                  " 5       r\R
                  " 5       r	\R
                  " 5       r
S\4S jrSrg)
HeaderType   rK   c                 6    U R                   R                  5       $ rM   )r   upperrP   s    rR   rS   HeaderType.__str__   s    yy  rV   rW   N)rX   rY   rZ   r[   enumautor   r   r   RUNr   r
   rS   r   rW   rV   rR   r  r     sE    99;DYY[FiikG
))+Cyy{H! !rV   r  c                   .    \ rS rSrSrSrSrS\4S jrSr	g)	HeaderInequalityType   z<=z==z>=rK   c                     U R                   $ rM   rN   rP   s    rR   rS   HeaderInequalityType.__str__   rU   rV   rW   N)
rX   rY   rZ   r[   
LESS_EQUALEQUALGREATER_EQUALr
   rS   r   rW   rV   rR   r  r     s    JEM rV   r  c                   B    \ rS rSr% \\S'   \\S'   \\S'   S\4S jr	Sr
g)	Header   typeinequality_typerO   rK   c                    [        U R                  5      /nU R                  [        R                  :w  a$  UR                  [        U R                  5      5        UR                  [        U R                  5      5        SR                  U5      $ )N )r
   r&  r'  r  r!  appendrO   join)rQ   wordss     rR   rS   Header.__str__   s`    		N+#7#=#==LLT1123S_%xxrV   rW   N)rX   rY   rZ   r[   r  r   r  r   r
   rS   r   rW   rV   rR   r$  r$     s    
))J rV   r$  )__doc__r  dataclassesr   Enumr   r   r   r   r   r   r   r   r  r  r  r  r$  rW   rV   rR   <module>r1     s=   L  !Gtyy GRtyy "   %499 %4 t  
 t     
 ! ! !
      
 t   t  ! !499    rV   