Ë
    !täië¤  ã                   óÂ  — d Z ddlZddlmZmZmZmZmZmZm	Z	 ddl
mZmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZ g d¢Z G d„ d	e«      Zd
„ Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z! G d„ de«      Z" G d„ de«      Z# G d„ de«      Z$ G d„ de«      Z% G d„ de«      Z& G d„ d e«      Z' G d!„ d"e«      Z( G d#„ d$e«      Z)y)%zÌ
    pygments.lexers.asm
    ~~~~~~~~~~~~~~~~~~~

    Lexers for assembly languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚincludeÚbygroupsÚusingÚwordsÚDelegatingLexerÚdefault)ÚCppLexerÚCLexer)ÚDLexer)
ÚTextÚNameÚNumberÚStringÚCommentÚPunctuationÚOtherÚKeywordÚOperatorÚ
Whitespace)ÚGasLexerÚObjdumpLexerÚDObjdumpLexerÚCppObjdumpLexerÚCObjdumpLexerÚ
HsailLexerÚ	LlvmLexerÚLlvmMirBodyLexerÚLlvmMirLexerÚ	NasmLexerÚNasmObjdumpLexerÚ	TasmLexerÚ	Ca65LexerÚDasm16Lexerc                   óú  — e Zd ZdZdZddgZddgZdgZdZd	Z	d
Z
dZdez   dz   ez   dz   ZdZdez   dz   Z ed«      edz   ej"                  fdez   ej$                  dfdej$                  feej&                  dfdefgeej*                  fe
efdez   ej$                  feej0                  feej2                  fdedfdej8                  dfdej:                  fdej:                  df ed«       ed«      gdez   d z    eej>                  ee ej*                  e «      fdez   d!z   ez   d z    eej>                  ee ej*                  e ej0                  e «      feej*                  feej0                  feej2                  fd"ez   ej0                  fd#ejB                  fdedfdej8                  dfdej:                  fdej:                  df ed«       ed«      gd$efd%efdej8                  fd&ej:                  fgd'e fgd(œZ"d)„ Z#y*)+r   z'
    For Gas (AT&T) assembly code.
    ÚGASÚgasÚasmú*.sz*.Sz
text/x-gasú%https://www.gnu.org/software/binutilsÚ ú"(\\"|[^"])*"z[\w$.@-]ú(?:[a-zA-Z$_]ú*|\.ú+)z(?:0[xX][a-fA-F0-9]+|#?-?\d+)Ú%ú\bÚ
whitespaceÚ:ú\.údirective-argszlock|rep(n?z)?|data\d+úinstruction-argsú[\r\n]+Ú@ú#popz([;#]|//).*?\nz/[*].*?[*]/z/[*].*?\n[\w\W]*?[*]/Úpunctuationz([a-z0-9]+)( )(<)(z)(>)z)([-+])(Ú$z
$'(.|\\')'ú\nú\s+z/[*][\w\W]*?[*]/z[-*,.()\[\]!:{}]+)Úrootr5   r6   r2   r:   c                 óœ   — t        j                  d| t         j                  «      ryt        j                  d| t         j                  «      ryy )Nz^\.(text|data|section)Tz^\.\w+gš™™™™™¹?)ÚreÚsearchÚM©Útexts    úb/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/asm.pyÚanalyse_textzGasLexer.analyse_texth   s6   € Ü�9‰9Ð.°´b·d±dÔ;ØÜ�Y‰Y�y $¬¯©Ô-Øð .ó    N)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedÚstringÚcharÚ
identifierÚnumberÚregisterr   r   ÚLabelÚ	AttributeÚFunctionr   ÚConstantr   r   ÚIntegerÚVariabler   r   ÚSingleÚ	Multiliner   ÚHexr   ÚCharÚtokensrF   © rG   rE   r   r      s˜  „ ñð €DØ�eˆn€GØ˜�€IØ�€IØ
1€CØ€Mð €FØ€DØ! DÑ(¨7Ñ2°TÑ9¸DÑ@€JØ-€FØ�ZÑ %Ñ'€Hñ �LÓ!Ø˜#Ñ˜tŸz™zÐ*Ø�ZÑ §¡Ð1AÐBØ&¨¯©Ð7Ø˜Ÿ™Ð(:Ð;Ø˜Ðð
ð ˜Ÿ™Ð'Ø�VÐØ�:Ñ˜tŸ~™~Ð.Ø�V—^‘^Ð$Ø�t—}‘}Ð%Ø˜ VÐ,Ø §¡°Ð7Ø˜W×.Ñ.Ð/Ø% w×'8Ñ'8¸&ÐAá�MÓ"Ù�LÓ!ð
ð" " *Ñ,¨VÑ3Ù˜Ÿ™ T¨;¸¿¹Ø$ó&ð'ð " *Ñ,¨ZÑ7¸Ñ>¸vÑEÙ˜Ÿ™ T¨;¸¿¹Ø$ f§n¡n°kóCðDð
 ˜Ÿ™Ð'Ø�V—^‘^Ð$à�t—}‘}Ð%à�‰Z˜Ÿ™Ð(Ø˜FŸK™KÐ(Ø˜ VÐ,Ø §¡°Ð7Ø˜W×.Ñ.Ð/Ø% w×'8Ñ'8¸&ÐAá�MÓ"Ù�LÓ!ð1
ð6 �JÐØ�ZÐ Ø §¡Ð/Ø  '×"3Ñ"3Ð4ð	
ð " ;Ð/ð
ño:€FóxrG   r   c                 ór  — d}ddt        t        j                  t        t        t
        «      fdt        t        t        j                  t        «      fd|z   dz   t        t        j                  t        t        t        j                  t        t        j                  t        «      fd|z   dz   t        t        j                  t        t        t        j                  t        «      fd|z   d	z   |z   |z   d
z   t        t        t        j                  t        t        j                  t        t        | «      «      fd|z   dz   t        t        t        j                  t        t        | «      «      fd|z   d	z   |z   |z   dz   t        t        t        j                  t        t        j                  t        t
        «      fd|z   d	z   |z   |z   dz   t        t        t        j                  t        t        j                  «      fdt        fd|z   dz   |z   dz   t        t        t        j                  t        t        j                  t        t        j                  t        t        j                  «      fd|z   dz   t        t        t        j                  t        t        j                  t        t        j                  «      fdt        fgiS )z;
    Common objdump lexer tokens to wrap an ASM lexer.
    z[0-9A-Za-z]r>   z(.*?)(:)( +file format )(.*?)$z"(Disassembly of section )(.*?)(:)$Ú(z++)( )(<)(.*?)([-+])(0[xX][A-Za-z0-9]+)(>:)$z+)( )(<)(.*?)(>:)$z( *)(z+:)(\t)((?:z )+)( *	)([a-zA-Z].*?)$z+:)( *\t)([a-zA-Z].*?)$z )+)( *)(.*?)$z )+)$z	\t\.\.\.$z	(\t\t\t)(z +:)( )([^\t]+)(\t)(.*?)([-+])(0xz+)$z+:)( )([^\t]+)(\t)(.*?)$z[^\n]+\n)r   r   rW   r   r   r   r   r_   r   rY   r   ÚPropertyrZ   r   )Ú	asm_lexerÚhex_res     rE   Ú_objdump_lexer_tokensrh   o   s7  € ð €Fàà-ÜœŸ™¤[´$¼Ó?ðAð 2ÜœœtŸz™z¬;Ó7ð9ð �‰ZÐEÑEÜœŸ™¤Z´¼d¿m¹mÜ$¤f§j¡j´+ó?ð@ð �‰ZÐ,Ñ,ÜœŸ™¤Z´¼d¿m¹mÜ$ó&ð'ð �V‰^˜NÑ*¨6Ñ1°&Ñ8Ð9SÑSÜœ¤T§Z¡Z´¼V¿Z¹ZÌÜ˜yÓ)ó+ð,ð �V‰^Ð6Ñ6Üœ¤T§Z¡Z´Ü˜yÓ)ó+ð,ð �V‰^˜NÑ*¨6Ñ1°&Ñ8Ð9IÑIÜœ¤T§Z¡Z´¼V¿Z¹ZÌÔU[Ó\ð^ð �V‰^˜NÑ*¨6Ñ1°&Ñ8¸Ñ@Üœ¤T§Z¡Z´¼V¿Z¹ZÓHðJð œ4Ð ð ˜&Ñ Ð!DÑDÀVÑKÈEÑQÜœ¤T§Z¡Z´¼T¿]¹]ÌJÜŸ™¬´V·Z±ZóAðBð ˜&Ñ Ð!<Ñ<Üœ¤T§Z¡Z´¼T¿]¹]ÌJÜŸ™ó(ð)ð œ%Ð ðU+
ð-ð -rG   c                   ó>   — e Zd ZdZdZdgZdgZdgZdZdZ	 e
e«      Zy)r   z,
    For the output of ``objdump -dr``.
    Úobjdumpz	*.objdumpztext/x-objdumpr*   r+   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rh   r   ra   rb   rG   rE   r   r   ¤   s8   „ ñð €DØˆk€GØ�€IØ!Ð"€IØ
1€CØ€Má" 8Ó,�FrG   r   c                   ó@   ‡ — e Zd ZdZdZdgZdgZdgZdZdZ	ˆ fd„Z
ˆ xZS )r   z@
    For the output of ``objdump -Sr`` on compiled D files.
    z	d-objdumpz*.d-objdumpztext/x-d-objdumpr*   r+   c                 ó8   •— t        ‰| �  t        t        fi |¤Ž y ©N)ÚsuperÚ__init__r   r   ©ÚselfÚoptionsÚ	__class__s     €rE   ro   zDObjdumpLexer.__init__½   ó   ø€ Ü‰Ñœ¤Ñ9°Ó9rG   ©rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   ro   Ú__classcell__©rs   s   @rE   r   r   ²   s9   ø„ ñð €DØˆm€GØ�€IØ#Ð$€IØ
1€CØ€M÷:ð :rG   r   c                   óD   ‡ — e Zd ZdZdZg d¢Zg d¢ZdgZdZdZ	ˆ fd„Z
ˆ xZS )	r   zB
    For the output of ``objdump -Sr`` on compiled C++ files.
    úcpp-objdump)ry   zc++-objdumbzcxx-objdump)z*.cpp-objdumpz*.c++-objdumpz*.cxx-objdumpztext/x-cpp-objdumpr*   r+   c                 ó8   •— t        ‰| �  t        t        fi |¤Ž y rm   )rn   ro   r
   r   rp   s     €rE   ro   zCppObjdumpLexer.__init__Ì   s   ø€ Ü‰Ñœ¤<Ñ;°7Ó;rG   ru   rw   s   @rE   r   r   Á   s5   ø„ ñð €DÚ;€GÚC€IØ%Ð&€IØ
1€CØ€M÷<ð <rG   r   c                   ó@   ‡ — e Zd ZdZdZdgZdgZdgZdZdZ	ˆ fd„Z
ˆ xZS )r   z@
    For the output of ``objdump -Sr`` on compiled C files.
    z	c-objdumpz*.c-objdumpztext/x-c-objdumpr*   r+   c                 ó8   •— t        ‰| �  t        t        fi |¤Ž y rm   )rn   ro   r   r   rp   s     €rE   ro   zCObjdumpLexer.__init__Ü   rt   rG   ru   rw   s   @rE   r   r   Ð   s9   ø„ ñð €DØˆm€GØ�€IØ#Ð$€IØ
1€CØ€M÷:ð :rG   r   c                   óž  — e Zd ZdZdZddgZdgZdgZdZdZ	d	Z
d
ZdZdez   dz   ZdZdZdZdZdZdZdZdZ ed«       ed«      e
efdez   dz   ej2                  feej4                  j6                  f ed«      dez   ej4                  j8                  fdez   ej4                  feej<                  fdej<                  feej>                  feej>                  fdej@                  fde!fgd e"fgd!e#jH                  fd"e#jJ                  fgd#ez   e&jN                  fd$e&f e(d%d&¬'«      e&fee&fee&fd(ez   d)z   ez   d*z   e&fd+e&fd,e&f e(d-«      e&fd.e&fg
d/œZ)y0)1r   z"
    For HSAIL assembly code.
    ÚHSAILÚhsailÚhsaz*.hsailztext/x-hsailzVhttps://en.wikipedia.org/wiki/Heterogeneous_System_Architecture#HSA_Intermediate_Layerz2.2ú"[^"]*?"z[a-zA-Z_][\w.]*ú[0-9]+z(\$(c|s|d|q)z)\bz(align\(\d+\))z(width\((\d+|all)\))z(alloc\(agent\))z ((_ftz)?(_up|_down|_zero|_near))zò_(u8x4|s8x4|u16x2|s16x2|u8x8|s8x8|u16x4|s16x4|u32x2|s32x2|u8x16|s8x16|u16x8|s16x8|u32x4|s32x4|u64x2|s64x2|f16x2|f16x4|f16x8|f32x2|f32x4|f64x2|u8|s8|u16|s16|u32|s32|u64|s64|b128|b8|b16|b32|b64|b1|f16|f32|f64|roimg|woimg|rwimg|samp|sig32|sig64)z ((\d+\.)|(\d*\.\d+))[eE][+-]?\d+zL0[xX](([0-9a-fA-F]+\.[0-9a-fA-F]*)|([0-9a-fA-F]*\.[0-9a-fA-F]+))[pP][+-]?\d+z?0((h|H)[0-9a-fA-F]{4}|(f|F)[0-9a-fA-F]{8}|(d|D)[0-9a-fA-F]{16})r2   Úcommentsr8   z:?ÚkeywordÚ&r0   z0[xX][a-fA-F0-9]+ú\d+z[=<>{}\[\]()*.,:;!]|x\bz(\n|\s)+z	/\*.*?\*/z//.*?\nÚkernargz+\$(full|base|small|large|default|zero|near))ÚmoduleÚ	extensionÚpragmaÚprogÚindirectÚ	signatureÚdeclÚkernelÚfunctionÚenablebreakexceptionsÚenabledetectexceptionsÚmaxdynamicgroupsizeÚmaxflatgridsizeÚmaxflatworkgroupsizeÚrequireddimÚrequiredgridsizeÚrequiredworkgroupsizeÚrequirenopartialworkgroupsr1   ©Úsuffixz_(Ú|Ú)Ú_kernargz(nop|imagefence)\b)äÚcleardetectexceptÚclockÚcuidÚ	debugtrapÚdimÚgetdetectexceptÚgroupbaseptrÚkernargbaseptrÚlaneidÚmaxcuidÚ	maxwaveidÚpacketidÚsetdetectexceptÚwaveidÚworkitemflatabsidÚworkitemflatidÚnullptrÚabsÚbitrevÚcurrentworkgroupsizeÚcurrentworkitemflatidÚfractÚncosÚnegÚnexp2Únlog2ÚnrcpÚnrsqrtÚnsinÚnsqrtÚ
gridgroupsÚgridsizeÚnotÚsqrtÚworkgroupidÚworkgroupsizeÚworkitemabsidÚ
workitemidÚceilÚfloorÚrintÚtruncÚaddÚbitmaskÚborrowÚcarryÚcopysignÚdivÚremÚsubÚshlÚshrÚandÚorÚxorÚunpackhiÚunpackloÚmaxÚminÚfmaÚmadÚ
bitextractÚ	bitselectÚshuffleÚcmovÚbitalignÚ	bytealignÚlerpÚnfmaÚmulÚmulhiÚmul24hiÚmul24Úmad24Úmad24hiÚ	bitinsertÚcombineÚexpandÚldaÚmovÚpackÚunpackÚpackcvtÚ	unpackcvtÚsadÚsementpÚftosÚstofÚcmpÚldÚstÚ_eqÚ_neÚ_ltÚ_leÚ_gtÚ_geÚ_equÚ_neuÚ_ltuÚ_leuÚ_gtuÚ_geuÚ_numÚ_nanÚ_seqÚ_sneÚ_sltÚ_sleÚ_sgtÚ_sgeÚ_snumÚ_snanÚ_sequÚ_sneuÚ_sltuÚ_sleuÚ_sgtuÚ_sgeuÚatomicÚ_ldÚ_stÚ_casÚ_addÚ_andÚ_exchÚ_maxÚ_minÚ_orÚ_subÚ_wrapdecÚ_wrapincÚ_xorÚretÚcvtÚ	_readonlyrž   Ú_globalÚbrÚcbrÚsbrÚ_scacqÚ_screlÚ_scarÚ_rlxÚ_waveÚ_wgÚ_agentÚ_systemÚldimageÚstimageÚ_v2Ú_v3Ú_v4Ú_1dÚ_2dÚ_3dÚ_1daÚ_2daÚ_1dbÚ_2ddepthÚ	_2dadepthÚ_widthÚ_heightÚ_depthÚ_arrayÚ_channelorderÚ_channeltypeÚquerysamplerÚ_coordÚ_filterÚ_addressingÚbarrierÚwavebarrierÚinitfbarÚjoinfbarÚwaitfbarÚ
arrivefbarÚ	leavefbarÚreleasefbarÚldfÚactivelaneidÚactivelanecountÚactivelanemaskÚactivelanepermuteÚcallÚscallÚicallÚallocaÚpacketcompletionsigÚaddqueuewriteindexÚcasqueuewriteindexÚldqueuereadindexÚstqueuereadindexÚreadonlyÚglobalÚprivateÚgroupÚspillÚargÚ_upiÚ_downiÚ_zeroiÚ_neariÚ_upi_satÚ
_downi_satÚ
_zeroi_satÚ
_neari_satÚ_supiÚ_sdowniÚ_szeroiÚ_sneariÚ	_supi_satÚ_sdowni_satÚ_szeroi_satÚ_sneari_satÚ_ppÚ_psÚ_spÚ_ssÚ_sÚ_pÚ_pp_satÚ_ps_satÚ_sp_satÚ_ss_satÚ_s_satÚ_p_satú	i[1-9]\d*)r>   r2   rƒ   r„   N)*rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rT   Úregister_numberrV   Ú	alignQualÚ	widthQualÚ	allocQualÚroundingModÚdatatypeModÚfloatÚhexfloatÚ	ieeefloatr   r   r   rW   r\   Ú	AnonymousÚGlobalr   r_   ÚFloatr[   r   r   r   r^   r]   r   ÚTyper   ra   rb   rG   rE   r   r   à   s  „ ñð €DØ˜Ð€GØ�€IØÐ €IØ
b€CØ€Mà€FØ#€Jà€OØ Ñ0°6Ñ9€Hà!€IØ'€IØ#€Ià6€Kð
:€Kð 0€EØ^€HØR€Iñ �LÓ!Ù�JÓà�VÐà�JÑ Ñ% t§z¡zÐ2à�t—}‘}×.Ñ.Ð/á�IÓà�JÑ §¡× 4Ñ 4Ð5Ø�JÑ §¡Ð.à�v—z‘zÐ"Ø! 6§:¡:Ð.Ø˜Ÿ™Ð%Ø�F—L‘LÐ!Ø�V—^‘^Ð$à'¨Ð5ð+
ð0 ˜*Ð%ð
ð ˜7×,Ñ,Ð-Ø˜Ÿ™Ð(ð
ð ˜+Ñ% w§|¡|Ð4ð <¸WÐEÙð Gð ôð  'ð(ð ˜'Ð"Ø˜'Ð"Ø�YÑ Ñ$ yÑ0°3Ñ6¸Ð@Ø˜'Ð"Ø" GÐ,Ùð %Eó %FðJ HOðK%PðP ˜7Ð#ðy=
ñ?]�FrG   r   c                   ód  — e Zd ZdZdZdZdgZdgZdgZdZ	dZ
d	e
z   d
z   Zdez   dz   Z ed«      edz   ej                  f ed«      dez   ej                   fdez   ej                   j"                  fdej                   j$                  fdej                   j"                  fdej                   j"                  fdez   ej                   fdej                   j$                  fde
z   efdefdefdefgdefdefdedfgdefd ed!fd"efg ed#d$¬%«      ef ed&«      ej4                  fd'ej4                  fgd(œZy))*r   z!
    For LLVM assembly code.
    ÚLLVMz"https://llvm.org/docs/LangRef.htmlÚllvmz*.llztext/x-llvmr+   r�   z([-a-zA-Z$._][\w\-$.]*|r�   rd   z|(\d+))r2   z\s*:r„   r0   r8   z%\d+z@\d+z#\d+Ú!z!\d+zc?z0[xX][KLMHR]?[a-fA-F0-9]+z,-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?z[=<>{}\[\]()*.,!]|x\bz	(\n|\s+)+ú;.*?\nz/\*ú	c-commentz[^*]+z\*/r9   z\*(‰  Úaarch64_sve_vector_pcsÚaarch64_vector_pcsÚacq_relÚacquirerÉ   Ú	addrspaceÚaddrspacecastÚafnÚaliasÚaliaseeÚalignÚ	alignLog2Ú
alignstackrZ  Ú	allocsizeÚallOnesÚalwaysinlineÚalwaysInlineÚ	amdgpu_csÚ	amdgpu_esÚ
amdgpu_gfxÚ	amdgpu_gsÚ	amdgpu_hsÚamdgpu_kernelÚ	amdgpu_lsÚ	amdgpu_psÚ	amdgpu_vsrÓ   ÚanyÚanyregccÚ	appendingÚarcpÚ
argmemonlyÚargsÚarm_aapcs_vfpccÚarm_aapcsccÚ
arm_apcsccÚashrr(   r  Ú	atomicrmwÚ
attributesÚavailable_externallyÚ
avr_intrccÚavr_signalccÚbitÚbitcastÚbitMaskÚblockaddressÚ
blockcountr(  ÚbranchFunnelÚbuiltinÚbyArgÚbyrefÚbyteÚ	byteArrayÚbyvalÚcrW  ÚcallbrÚcalleeÚcallerÚcallsÚcanAutoHideÚcatchÚcatchpadÚcatchretÚcatchswitchÚccÚcccÚcfguard_checkccÚcleanupÚ
cleanuppadÚ
cleanupretÚcmpxchgÚcoldÚcoldccÚcomdatÚcommonÚconstantÚcontractÚ
convergentÚcriticalÚcxx_fast_tlsccÚ
datalayoutÚdeclarer	   ÚdefineÚdeplibsÚdereferenceableÚdereferenceable_or_nullÚdistinctÚ	dllexportÚ	dllimportÚ	dso_localÚdso_local_equivalentÚdso_preemptableÚdsoLocalÚeqÚexactÚ
exactmatchÚextern_weakÚexternalÚexternally_initializedÚextractelementÚextractvalueÚfaddÚfalseÚfastÚfastccÚfcmpÚfdivÚfenceÚfilterÚflagsÚfmulÚfnegÚfpextÚfptosiÚfptouiÚfptruncÚfreezeÚfremÚfromÚfsubÚ	funcFlagsr�   ÚgcÚgetelementptrÚghcccra  ÚguidÚgvÚhashÚhhvm_cccÚhhvmccÚhiddenÚhotÚhotnessÚicmpÚifuncÚinaccessiblemem_or_argmemonlyÚinaccessiblememonlyÚinallocaÚinboundsÚindirÚ
indirectbrÚinfoÚinitialexecÚinlineÚ
inlineBitsÚ
inlinehintÚinrangeÚinregÚinsertelementÚinsertvalueÚinstsÚintel_ocl_biccÚinteldialectÚinternalÚinttoptrÚinvokeÚ	jumptableÚkindÚ
landingpadÚlargestÚlinkageÚlinkonceÚlinkonce_odrÚliveÚloadÚlocal_unnamed_addrÚlocaldynamicÚ	localexecÚlshrrØ   ÚmetadatarÙ   Úminsizerˆ   Ú	monotonicÚmsp430_intrccrä   ÚmustprogressÚmusttailÚnakedrL   ÚnandÚneÚnestÚninfÚnnanÚnoaliasÚ	nobuiltinÚ
nocallbackÚ	nocaptureÚ
nocf_checkÚnoduplicateÚnoduplicatesÚnofreeÚnoimplicitfloatÚnoinlineÚnoInlineÚnomergeÚnoneÚnonlazybindÚnonnullÚ	noprofileÚ	norecurseÚ	noRecurseÚ	noredzoneÚnoreturnÚnosyncÚnotailÚnotEligibleToImportÚnoundefÚnounwindÚnswÚnszÚnullÚnull_pointer_is_validÚnuwÚoeqÚoffsetÚogeÚogtÚoleÚoltÚoneÚopaqueÚoptforfuzzingÚoptnoneÚoptsizerÔ   ÚordÚparamÚparamsÚ	partitionÚpathÚpersonalityÚphiÚpoisonÚpreallocatedÚprefixÚpreserve_allccÚpreserve_mostccrb  ÚprologueÚ	protectedÚptrtointÚ
ptx_deviceÚ
ptx_kernelÚreadnoneÚreadNoner`  ÚreadOnlyÚreassocÚrefsÚrelbfÚreleaseÚresByArgÚresumer$  ÚreturnDoesNotAliasÚreturnedÚreturns_twiceÚ	safestackÚsamesizeÚsanitize_addressÚsanitize_hwaddressÚsanitize_memoryÚsanitize_memtagÚsanitize_threadÚsdivÚsectionÚselectÚseq_cstÚsextÚsgeÚsgtÚshadowcallstackrÑ   ÚshufflevectorÚ
sideeffectÚsignextÚsingleÚ
singleImplÚsingleImplNameÚsitofpÚsizeM1ÚsizeM1BitWidthÚsleÚsltÚsource_filenameÚspeculatableÚspeculative_load_hardeningÚ	spir_funcÚspir_kernelÚsplatÚsremÚsretÚsspÚsspreqÚ	sspstrongÚstoreÚstrictfprÐ   Ú	summariesÚsummaryÚswiftccÚ
swifterrorÚ	swiftselfÚswitchÚ	syncscopeÚtailÚtailccÚtargetÚthread_localÚtoÚtokenÚtripleÚtruerÈ   ÚtypeÚtypeCheckedLoadConstVCallsÚtypeCheckedLoadVCallsÚtypeidÚtypeidCompatibleVTableÚ
typeIdInfoÚtypeTestAssumeConstVCallsÚtypeTestAssumeVCallsÚtypeTestResÚ	typeTestsÚudivÚueqÚugeÚugtÚuitofpÚuleÚultÚumaxÚuminÚundefÚuneÚuniformRetValÚuniqueRetValÚunknownÚunnamed_addrÚunoÚ	unorderedÚunreachableÚunsatÚunwindÚuremÚuselistorderÚuselistorder_bbÚuwtableÚva_argÚvarFlagsÚvariableÚvcall_visibilityÚvFuncIdÚvirtFuncÚvirtualConstPropÚvoidÚvolatileÚvscaleÚvTableFuncsÚweakÚweak_odrÚwebkit_jsccÚwin64ccÚwithinÚwpdResÚwpdResolutionsÚ	writeonlyÚxÚx86_64_sysvccÚx86_fastcallccÚ
x86_intrccÚx86_mmxÚx86_regcallccÚx86_stdcallccÚx86_thiscallccÚx86_vectorcallccÚxchgrÕ   ÚzeroextÚzeroinitializerÚzextÚimmargÚ
willreturnr1   rš   )rí  ÚhalfÚbfloatr‰  ÚdoubleÚfp128Úx86_fp80Ú	ppc_fp128Úlabelr<  rý  Úx86_amxrÁ  Úptrr‚  )r>   r2   r•  r„   N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   rR   rT   Úblock_labelr   r   rW   r\   r�  rŒ  r   r   r   r   r   r   r   r�  ra   rb   rG   rE   r   r   g  sÅ  „ ñð €DØ
.€CØˆh€GØ�€IØ�€IØ€Mð €FØ+¨fÑ4°sÑ:€JØ˜Ñ# jÑ0€Kñ �LÓ!ð ˜7Ñ" D§J¡JÐ/á�IÓà�JÑ §¡Ð.Ø�JÑ §¡× 4Ñ 4Ð5Ø�d—m‘m×-Ñ-Ð.Ø�d—m‘m×*Ñ*Ð+Ø�d—m‘m×*Ñ*Ð+Ø�JÑ §¡Ð.Ø�d—m‘m×-Ñ-Ð.Ø�V‰^˜VÐ$à)¨6Ð2Ø<¸fÐEà% {Ð3ð)
ð. ˜:Ð&Ø˜Ð Ø�W˜kÐ*ð
ð �wÐØ�W˜fÐ%à�GÐð	
ñ ð TCðj ôkUðj  'ðkU(ñp ð /ó 0ð —<‘<ð!ð ˜7Ÿ<™<Ð(ðAa
ñED�FrG   r   c                   óJ  — e Zd ZdZdZdZdgZg Zg ZdZ	 e
dd¬«      efd	ej                  fd
ej                  fdej                  fdefdefdej                  df ed«      dej                  j                   f e
ddd¬«      ej"                  f e
ddd¬«      ej"                  fdej&                  fdefdej"                  fdej"                  f e
d«      efd eej,                  e«      dfdej,                  d f ed!«      d" eee«      d#fd$efd%efd&efg ed!«      d'ed(fg ed)«      d'ed(fgd* eee«      d+fd, eee«      d-fd'ed(fgd. eeej                  j4                  «      fd/ eeej                  «      fd, eee«      d-fd'ed(fgd0 eeej,                  «      fd1 eeej,                  «      fded(fd'ed(fgd2efd3ef e
d4«      efd5efd6efd7ef ed!«       ed«      d8efd9efded(fgd:ej:                  fgd;ej<                  fgd<ej                  j                   fgd=œ
Zy>)?r   z9
    For LLVM MIR examples without the YAML wrapper.
    zLLVM-MIR Bodyú%https://llvm.org/docs/MIRLangRef.htmlzllvm-mir-bodyú2.6)ÚliveinsÚ
successorsr3   rš   z4bb\.[0-9]+(\.[a-zA-Z0-9_.-]+)?( \(address-taken\))?:z5bb\.[0-9]+ \(%[a-zA-Z0-9_.-]+\)( \(address-taken\))?:z%bb\.[0-9]+(\.\w+)?z%stack\.[0-9]+(\.\w+\.addr)?z%subreg\.\w+z%[a-zA-Z0-9_]+ *Úvregra  zintrinsic\(\@[a-zA-Z0-9_.]+\))
rñ  rD  r›  rš  r§  r¦  rÑ  rÐ  rÔ  rÓ  z	intpred\(z\))rz  r›   )
rf  rl  ri  rh  rk  rj  rÑ  rÐ  rÔ  rÓ  zfloatpred\(z\$\w+Ú=a  (G_ANYEXT|G_[SZ]EXT|G_SEXT_INREG|G_TRUNC|G_IMPLICIT_DEF|G_PHI|G_FRAME_INDEX|G_GLOBAL_VALUE|G_INTTOPTR|G_PTRTOINT|G_BITCAST|G_CONSTANT|G_FCONSTANT|G_VASTART|G_VAARG|G_CTLZ|G_CTLZ_ZERO_UNDEF|G_CTTZ|G_CTTZ_ZERO_UNDEF|G_CTPOP|G_BSWAP|G_BITREVERSE|G_ADDRSPACE_CAST|G_BLOCK_ADDR|G_JUMP_TABLE|G_DYN_STACKALLOC|G_ADD|G_SUB|G_MUL|G_[SU]DIV|G_[SU]REM|G_AND|G_OR|G_XOR|G_SHL|G_[LA]SHR|G_[IF]CMP|G_SELECT|G_GEP|G_PTR_MASK|G_SMIN|G_SMAX|G_UMIN|G_UMAX|G_[US]ADDO|G_[US]ADDE|G_[US]SUBO|G_[US]SUBE|G_[US]MULO|G_[US]MULH|G_FNEG|G_FPEXT|G_FPTRUNC|G_FPTO[US]I|G_[US]ITOFP|G_FABS|G_FCOPYSIGN|G_FCANONICALIZE|G_FMINNUM|G_FMAXNUM|G_FMINNUM_IEEE|G_FMAXNUM_IEEE|G_FMINIMUM|G_FMAXIMUM|G_FADD|G_FSUB|G_FMUL|G_FMA|G_FMAD|G_FDIV|G_FREM|G_FPOW|G_FEXP|G_FEXP2|G_FLOG|G_FLOG2|G_FLOG10|G_FCEIL|G_FCOS|G_FSIN|G_FSQRT|G_FFLOOR|G_FRINT|G_FNEARBYINT|G_INTRINSIC_TRUNC|G_INTRINSIC_ROUND|G_LOAD|G_[ZS]EXTLOAD|G_INDEXED_LOAD|G_INDEXED_[ZS]EXTLOAD|G_STORE|G_INDEXED_STORE|G_ATOMIC_CMPXCHG_WITH_SUCCESS|G_ATOMIC_CMPXCHG|G_ATOMICRMW_(XCHG|ADD|SUB|AND|NAND|OR|XOR|MAX|MIN|UMAX|UMIN|FADD|FSUB)|G_FENCE|G_EXTRACT|G_UNMERGE_VALUES|G_INSERT|G_MERGE_VALUES|G_BUILD_VECTOR|G_BUILD_VECTOR_TRUNC|G_CONCAT_VECTORS|G_INTRINSIC|G_INTRINSIC_W_SIDE_EFFECTS|G_BR|G_BRCOND|G_BRINDIRECT|G_BRJT|G_INSERT_VECTOR_ELT|G_EXTRACT_VECTOR_ELT|G_SHUFFLE_VECTOR)\bz6(COPY|PHI|INSERT_SUBREG|EXTRACT_SUBREG|REG_SEQUENCE)\b)ÚkilledÚimplicitz(i[0-9]+)( +)Úconstantintz(half|float|double) +ÚconstantfloatÚintegerz(::)( *)Úmmoú;.*z[a-zA-Z0-9_]+z	[(), \n]+z(?=.)r9   r‰  z( *)(:(?!:)))r9   Úvreg_bank_or_classz( *)(\()Ú	vreg_typez( *)(_)z( *)([a-zA-Z0-9_]+)z( *)([sp][0-9]+)z( *)(<[0-9]+ *x *[sp][0-9]+>)z\(z +)r7  r³  ÚonÚintor
  rŸ  r>  r™  rˆ  r˜  r˜  z%ir\.[a-zA-Z0-9_.-]+z%ir-block\.[a-zA-Z0-9_.-]+z[-+]Ú,z\), \(z-?[0-9]+z-?[0-9]+\.[0-9]+(e[+-][0-9]+)?z\@[a-zA-Z0-9_.]+)
r>   r  r  r  r   r!  r  r  r‰  ra  N) rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   rW   r\   r   r�  ÚBuiltinr   r]   r   r   r�  r   r   r   ÚMagicr   r   r[   rŽ  ra   rb   rG   rE   r   r   þ  s!  „ ñð €DØ
1€CØÐ€GØ€IØ€IØ€Mñ
 Ð,°SÔ9¸7ÐCàDÀdÇjÁjÐQØEÀtÇzÁzÐRØ# T§Z¡ZÐ0à,¨dÐ3à˜dÐ#à  $§-¡-°Ð8á�HÓà-¨t¯}©}×/CÑ/CÐDáð Ø#/¸ô?Ø@DÇÁðNáð "Ø*8ÀôHà�\‰\ðð �v—}‘}Ð%à�8Ðð$ð0 �\‰\ð1ð4 GØ�\‰\ðñ Ð)Ó*¨GÐ4à™x¨¯©°jÓAÀ=ÐQà% w§|¡|°_ÐEá�IÓà™( 8¨ZÓ8¸%Ð@à�WÐà˜tÐ$à˜4Ð ðOH
ñV �IÓØ�t˜VÐ$ð
ñ �GÓØ�t˜VÐ$ð
ð ™h z°7Ó;Ð=[Ð\à™( :¨tÓ4°kÐBØ�t˜VÐ$ð
ð ™ *¨d¯m©m×.AÑ.AÓBÐCØ#¡X¨j¸$¿-¹-Ó%HÐIà™( :¨tÓ4°kÐBØ�t˜VÐ$ð
ð !¡(¨:°w·|±|Ó"DÐEØ-©x¸
ÀGÇLÁLÓ/QÐRØ�D˜&Ð!Ø�t˜VÐ$ð
ð �DˆMØ�JÐÙð @ó Aàðð % dÐ+Ø*¨DÐ1Ø�hÐÙ�IÓÙ�HÓØ�;ÐØ˜ÐØ�D˜&Ð!ð
ð  ! &§.¡.Ð1Ð3Ø4°f·l±lÐCÐDØ'¨¯©×)=Ñ)=Ð>Ð?ñy}�FrG   r   c                   ó‚  — e Zd ZdZdZdZdgZdgZdZde	fde
d	fd
e
dfdefgde
dfd e ee«      «      fgde	fde
dfde
df edd¬«      e
df edd¬«      e
df edd¬«      e
fde
dfdefdefg	def ed«      gdej&                  f ed«      gdef ed«      gde
d fd! e ee«      «      fd" e ee«      «      fgd#œZy$)%r   aS  
    Lexer for the overall LLVM MIR document format.

    MIR is a human readable serialization format that's used to represent LLVM's
    machine specific intermediate representation. It allows LLVM's developers to
    see the state of the compilation process at various points, as well as test
    individual pieces of the compiler.
    zLLVM-MIRr  zllvm-mirz*.mirr  ú#.*z--- \|$Úllvm_irz---Úllvm_mirz[^-#]+|.z(\.\.\.|(?=---))r9   z((?:.|\n)+?)(?=(\.\.\.|---))zname:rL   )Ú	alignmentr3   rš   rU   )Ú	legalizedÚregBankSelectedÚtracksRegLivenessÚselectedÚexposesReturnsTwiceÚboolean)Ú	registersÚstackÚ
fixedStackr  Ú	frameInfoÚmachineFunctionInfoz	body: *\|Úllvm_mir_bodyz.+r<   z[^\n]+z *(true|false)z *[0-9]+z#pop:2z((?:.|\n)+?)(?=\.\.\.|---)z(?!\.\.\.|---)((?:.|\n)+))r>   r)  r*  rL   r1  rU   r7  N)rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   r   r   r   r   r   r   r   r	   r%  r   r   ra   rb   rG   rE   r   r   ‰  s„  „ ñð €DØ
1€CØˆl€GØ�	€IØ€Mð
 �WÐà˜ )Ð,à�W˜jÐ)à˜$Ðð	
ð ! '¨6Ð2à,©h±u¸YÓ7GÓ.HÐIð	
ð �WÐà  '¨6Ð2à�w Ð'Ù�?ØôØ '¨ð3áð 7àôà '¨ð4ñ ð +àôà 'ð)ð ˜7 OÐ4à�DˆMØ�JÐð)
ð. ˜ÐÙ�F‹Oð
ð
  §¡Ð-Ù�F‹Oð
ð
 ˜&Ð!Ù�F‹Oð
ð ! '¨8Ð4à*©H±UÐ;KÓ5LÓ,MÐNð *©8±EÐ:JÓ4KÓ+LÐMð	
ñg=�FrG   r   c                   ó\  — e Zd ZdZdZdgZg d¢ZdgZdZdZ	dZ
d	Zd
ZdZdZdZedz   ez   ZdZdZdZdZdZdZej0                  ej2                  z  Zdej8                  df ed«      edz   ej>                  fde› d� e ejB                  e"e#jH                  «      dfee#dfee#jH                  dfeejJ                  dfde"fgee&fee'jP                  fee'jR                  fee'jT                  fee'jV                  fee'jX                  f ed«      eejZ                  feej\                  fde"df ed«      gdej8                  fd ej^                  dfd!ej8                  dfgd!e"fd"e"fd#ej^                  fd$ej^                  fgd%e0fd&e1fd'e#jB                  fee1jd                  fee#jf                  fgd(œZ4d)„ Z5y*)+r    z)
    For Nasm (Intel) assembly code.
    ÚNASMÚnasm)ú*.asmú*.ASMz*.nasmztext/x-nasmzhttps://nasm.usr+   g      ð?z[a-z$._?][\w$.?#@~]*ú,(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)ú[0-7]+qú[01]+br‚   ú\.e?ú/"(\\"|[^"\n])*"|'(\\'|[^'\n])*'|`(\\`|[^`\n])*`ú(?:res|d)[bwdqt]|timeszŸ(r[0-9][0-5]?[bwd]?|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]|k[0-7]|[xyz]mm(?:[12][0-9]?|3[01]?|[04-9]))\bzseg|wrt|strict|rel|absúbyte|[dq]?wordz’(?:BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE)(?=\s)ú^\s*%Úpreprocr2   r3   rd   z)(\s+)(equ)r6   r7   r:   r9   ú[^;\n]+r”  r<   ú[ \t]+r  r(  z[,{}():\[\]]+z[&|^<>+*/%~-]+ú[$]+©r>   r6   rE  r2   r:   c                 óP   — t        j                  d| t         j                  «      ryy )NÚPROCF)r@   ÚmatchÚ
IGNORECASErC   s    rE   rF   zNasmLexer.analyse_text*  s   € ä�8‰8�G˜T¤2§=¡=Ô1Øð 2rG   N)6rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   ÚpriorityrT   ÚhexnÚoctnÚbinnÚdecnÚfloatnrR   ÚdeclkwrV   ÚwordoprÄ  Ú
directivesr@   rM  Ú	MULTILINEr  r   ÚPreprocr   r   rW   r   rZ   r   r   ÚDeclarationrY   r   r   r_   ÚOctÚBinrŽ  r[   r%  r\   r]   r   r   ÚWordr�  ra   rF   rb   rG   rE   r    r    Ø  sD  „ ñð €DØˆh€GÚ,€IØ�€IØ
€CØ€Mð €Hà(€JØ:€DØ€DØ€DØ€DØ�G‰^˜dÑ"€FØK€FØ&€Fð:€Hð '€FØ€Dð2€Jð �M‰M˜BŸL™LÑ(€Eð �w—‘¨	Ð2Ù�LÓ!Ø˜#Ñ˜tŸz™zÐ*Ø�*�˜[Ð)Ù˜Ÿ™¨
°G×4GÑ4GÓHØ"ð$ð ˜Ð"4Ð5Ø�W×(Ñ(Ð*<Ð=Ø˜Ÿ™Ð(:Ð;Ø˜Ð$ð
ð �VÐØ�6—:‘:ÐØ�6—:‘:ÐØ�6—:‘:ÐØ�V—\‘\Ð"Ø�6—>‘>Ð"Ù�MÓ"Ø�t—|‘|Ð$Ø˜Ÿ™Ð'Ø˜ VÐ,Ù�LÓ!ð
ð ˜Ÿ™Ð)Ø˜Ÿ™¨Ð/Ø�G—O‘O VÐ,ð
ð �JÐØ˜
Ð#Ø�W—^‘^Ð$Ø�W—^‘^Ð$ð	
ð ˜{Ð+Ø Ð)Ø�g×&Ñ&Ð'Ø�X—]‘]Ð#Ø�7—<‘<Ð ð
ñK,€Fó\rG   r    c                   ó>   — e Zd ZdZdZdgZdgZdgZdZdZ	 e
e«      Zy)r!   z4
    For the output of ``objdump -d -M intel``.
    zobjdump-nasmz*.objdump-intelztext/x-nasm-objdumpr*   z2.0N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rh   r    ra   rb   rG   rE   r!   r!   0  s:   „ ñð €DØÐ€GØ"Ð#€IØ&Ð'€IØ
1€CØ€Má" 9Ó-�FrG   r!   c                   óˆ  — e Zd ZdZdZdgZg d¢ZdgZdZdZ	dZ
d	Zd
ZdZdZedz   ez   ZdZdZdZdZdZdZdZej0                  ej2                  z  Zdej8                  df ed«      e
dz   ej>                  fee dfde
› de› d� e!ejD                  e#e jH                  «      dfee jH                  dfe
ejJ                  dfde#fgee&fee'jP                  fee'jR                  fee'jT                  fee'jV                  fee'jX                  f ed«      eejZ                  fe
ej\                  fd e!e/e#ej`                  e#«      fde#d f ed«      gd!ej8                  fd"ej`                  d fd#ej8                  d fgd$e#fd% e!e/e#«      fd&e#fd'ej`                  fgd(e1fd)e2fd*e jD                  fee2jf                  fee jh                  fgd+œZ5d,„ Z6y-).r"   z3
    For Tasm (Turbo Assembler) assembly code.
    ÚTASMÚtasm)r;  r<  z*.tasmztext/x-tasmz-https://en.wikipedia.org/wiki/Turbo_Assemblerr+   z[@a-z$._?][\w$.?#@~]*r=  r>  r?  r‚   r@  rA  rB  zs(r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7])\bzseg|wrt|strictrC  zÛBITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|ENDS|COMMON|CPU|GROUP|UPPERCASE|INCLUDE|EXPORT|LIBRARY|MODULE|PROC|ENDP|USES|ARG|DATASEG|UDATASEG|END|IDEAL|P386|MODEL|ASSUME|CODESEG|SIZEzdb|dd|dw|T[A-Z][a-z]+rD  rE  r2   r3   r6   rd   z)(\s+)(r�   r7   r:   z(\\)(\s*)(;.*)([\r\n])r9   rF  r”  r<   z[\n\r]z(\\)([\n\r])rG  r  z[,():\[\]]+z[&|^<>+*=/%~-]+rH  rI  c                 óP   — t        j                  d| t         j                  «      ryy )NrK  T)r@   rL  ÚIrC   s    rE   rF   zTasmLexer.analyse_text�  s   € ä�8‰8�G˜T¤2§4¡4Ô(Øð )rG   N)7rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rT   rO  rP  rQ  rR  rS  rR   rT  rV   rU  rÄ  rV  Údatatyper@   rM  rW  r  r   rX  r   r   rW   r   r   rZ   r   rY  rY   r   r   r_   rZ  r[  rŽ  r[   r%  r\   r   r]   r   r   r\  r�  ra   rF   rb   rG   rE   r"   r"   >  sf  „ ñð €DØˆh€GÚ,€IØ�€IØ
9€CØ€Mà)€JØ:€DØ€DØ€DØ€DØ�G‰^˜dÑ"€FØK€FØ&€Fð8€Hð €FØ€Dð4€Jð )€Hà�M‰M˜BŸL™LÑ(€Eð �w—‘¨	Ð2Ù�LÓ!Ø˜#Ñ˜tŸz™zÐ*Ø˜Ð"4Ð5Ø�*�˜W X J¨aÐ0Ù˜Ÿ™¨
°G×4GÑ4GÓHØ"ð$ð �W×(Ñ(Ð*<Ð=Ø˜Ÿ™Ð(:Ð;Ø˜Ð$ð
ð �VÐØ�6—:‘:ÐØ�6—:‘:ÐØ�6—:‘:ÐØ�V—\‘\Ð"Ø�6—>‘>Ð"Ù�MÓ"Ø�t—|‘|Ð$Ø˜Ÿ™Ð'à&Ù�d˜J¨¯©¸
ÓCðEà˜ VÐ,Ù�LÓ!ð
ð" ˜Ÿ™Ð)Ø˜Ÿ™¨Ð/Ø�G—O‘O VÐ,ð
ð ˜
Ð#Ø™h t¨ZÓ8Ð9Ø˜
Ð#Ø�W—^‘^Ð$ð	
ð ˜[Ð)Ø Ð*Ø�g×&Ñ&Ð'Ø�X—]‘]Ð#Ø�7—<‘<Ð ð
ñQ/€FóbrG   r"   c                   ó(  — e Zd ZdZdZdgZdgZdZdZe	j                  Zddej                  fd	efd
ej                   fdefdej$                  fdefdefdej*                  fdej.                  fdej0                  fdej2                  fdefdefgiZd„ Zy)r#   z%
    For ca65 assembler sources.
    zca65 assemblerÚca65r)   zhttps://cc65.github.ioz1.6r>   r  r=   z[a-z_.@$][\w.@$]*:z·((ld|st)[axy]|(in|de)[cxy]|asl|lsr|ro[lr]|adc|sbc|cmp|cp[xy]|cl[cvdi]|se[cdi]|jmp|jsr|bne|beq|bpl|bmi|bvc|bvs|bcc|bcs|p[lh][ap]|rt[is]|brk|nop|ta[xy]|t[xy]a|txs|tsx|and|ora|eor|bit)\bz\.\w+z[-+~*/^&|!<>=]z	"[^"\n]*.z	'[^'\n]*.z\$[0-9a-f]+|[0-9a-f]+h\br†   z%[01]+z[#,.:()=\[\]]z[a-z_.@$][\w.@$]*c                 óP   — t        j                  d|t         j                  «      ryy )Nz^\s*;gÍÌÌÌÌÌì?)r@   rA   rW  )rq   rD   s     rE   rF   zCa65Lexer.analyse_text·  s   € ä�9‰9�X˜t¤R§\¡\Ô2Øð 3rG   N)rH   rI   rJ   rK   rL   rM   rN   rP   rQ   r@   rM  r  r   r]   r   r   rW   r   ÚPseudor   r   r`   r   r_   r[   r[  r   ra   rF   rb   rG   rE   r#   r#   –  sÒ   „ ñð €DØˆh€GØ�€IØ
"€CØ€Mà�M‰M€Eð 	Ø�W—^‘^Ð$Ø�ZÐ Ø" D§J¡JÐ/ðð !ð"ð �w—~‘~Ð&Ø Ð)Ø˜6Ð"Ø˜6Ÿ;™;Ð'Ø(¨&¯*©*Ð5Ø�V—^‘^Ð$Ø˜Ÿ
™
Ð#Ø˜{Ð+Ø! 4Ð(ð!
ð€Fó*rG   r#   c                   óR  — e Zd ZdZdZdZdgZddgZdgZdZ	g d	¢Z
g d
¢ZdZdez   dz   ez   dz   ZdZdZddj!                  e
«      z   dz   Zdez   dz   ZdZd„ Z ed«      dez   ej.                  fedz   ej.                  feej0                  dfdez   ej0                  dfdefgeej6                  feej6                  feefgeef ed«      gdefd ed!f ed"«       ed«      gded!fd#ed!f ed«      gd$efd%ed&f ed"«       ed'«      gd$ef ed«      eef ed'«      gd(efd)efd*efgd+œZy,)-r$   z
    For DCPU-16 Assembly.
    ÚDASM16z http://0x10c.com/doc/dcpu-16.txtÚdasm16z*.dasm16z*.dasmztext/x-dasm16z2.4)$ÚSETÚADDÚSUBÚMULÚMLIÚDIVÚDVIÚMODÚMDIÚANDÚBORÚXORÚSHRÚASRÚSHLÚIFBÚIFCÚIFEÚIFNÚIFGÚIFAÚIFLÚIFUÚADXÚSBXÚSTIÚSTDÚJSRÚINTÚIAGÚIASÚRFIÚIAQÚHWNÚHWQÚHWI)ÚAÚBÚCÚXÚYÚZrb  ÚJÚSPÚPCÚEXÚPOPÚPEEKÚPUSHz[a-zA-Z0-9_$@.]r-   r.   r/   z[+-]?(?:0[xX][a-zA-Z0-9]+|\d+)z0b[01_]+z(?i)(rœ   r�   z'\\?Ú'r,   c              #   óÐ   K  — |j                  d«      }|j                  «       | j                  v rt        j                  nt        j
                  }|j                  «       ||f–— y ­w)Nr   )rc  ÚupperÚ	REGISTERSr   r\   rW   Ústart)ÚlexerrL  ÚidentÚklasss       rE   Úguess_identifierzDasm16Lexer.guess_identifierè  sF   è ø€ Ø—‘˜A“ˆØ!&§¡£°%·/±/Ñ!A”—’ÄtÇzÁzˆØ�k‰k‹m˜U EÐ)Ó)ùs   ‚A$A&r2   r3   r6   r4   ú	data-argsr7   Únumericz\+z\]r9   re  z;.*?$r$  z\[Úderefúinstruction-liner<   r=   r”  )r>   r¦  re  r§  r¨  r6   r¥  r2   N) rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   ÚINSTRUCTIONSrŸ  rS   rT   rU   Úbinary_numberÚjoinÚinstructionÚsingle_charrR   r¤  r   r   rW   rY   r   r   r[   r   r   r   ra   rb   rG   rE   r$   r$   ½  sö  „ ñð €DØ
,€CØˆj€GØ˜XÐ&€IØ Ð!€IØ€Mò€Lò€Ið €DØ! DÑ(¨7Ñ2°TÑ9¸DÑ@€JØ.€FØ€MØ˜SŸX™X lÓ3Ñ3°cÑ9€KØ˜D‘. 3Ñ&€KØ€Fò*ñ �LÓ!Ø�:Ñ˜tŸz™zÐ*Ø˜#Ñ˜tŸz™zÐ*Ø˜$Ÿ-™-Ð);Ð<Ø�ZÑ §¡°Ð<Ø˜Ð$ð
ð ˜FŸN™NÐ+Ø�V—^‘^Ð$Ø˜&Ð!ð
ð Ð)Ð*Ù�IÓð
ð �KÐ Ø�K Ð(Ù�E‹NÙ�LÓ!ð	
ð ˜ VÐ,Ø�w Ð'Ù�LÓ!ð
ð �;ÐØ�K Ð)Ù�E‹NÙÐ&Ó'ð	
ð �;ÐÙ�IÓØ�VÐÙÐ&Ó'ð	
ð �JÐØ�ZÐ Ø˜Ð ð
ña5�FrG   r$   )*rK   r@   Úpygments.lexerr   r   r   r   r   r   r	   Úpygments.lexers.c_cppr
   r   Úpygments.lexers.dr   Úpygments.tokenr   r   r   r   r   r   r   r   r   r   Ú__all__r   rh   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   rb   rG   rE   Ú<module>r³     s   ðñó 
÷÷ ñ ç 2Ý $÷)÷ )÷ )ò'€ôRˆzô Ròj2ôj-�:ô -ô:�Oô :ô<�oô <ô:�Oô :ô D�ô DôNT�
ô TônH�zô HôVL�:ô Lô^U�
ô Uôp.�|ô .ôU�
ô Uôp$�
ô $ôNe�*õ erG   