HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pygments/lexers/__pycache__/asm.cpython-311.pyc
�

�E�c����dZddlZddlmZmZmZmZmZmZm	Z	ddl
mZmZddl
mZddlmZmZmZmZmZmZmZmZmZmZgd�ZGd�d	e��Zd
�ZGd�de��ZGd
�de��ZGd�de��ZGd�de��Z Gd�de��Z!Gd�de��Z"Gd�de��Z#Gd�de��Z$Gd�de��Z%Gd�de��Z&Gd�d e��Z'Gd!�d"e��Z(Gd#�d$e��Z)dS)%z�
    pygments.lexers.asm
    ~~~~~~~~~~~~~~~~~~~

    Lexers for assembly languages.

    :copyright: Copyright 2006-2022 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��eZdZdZdZddgZddgZdgZdZd	Z	d
e	zdze	zdzZ
d
Zde
zdzZe
d��e
dzejfde
zejdfdejfe
ejdfdefge
ejfeefde
zejfeejfeejfdedfdejdfdejfdejdfe
d��e
d��gde
zdzeejeeeje��fde
zdzezdzeejeeejeeje��fe
ejfeejfeejfd ezejfd!ejfdedfdejdfdejfdejdfe
d��e
d��g
d"efd#efdejfd$ejfgd%efgd&�Z d'�Z!d(S))rz'
    For Gas (AT&T) assembly code.
    �GAS�gas�asm�*.sz*.Sz
text/x-gas�
"(\\"|[^"])*"z[\w$.@-]�
(?:[a-zA-Z$_]�*|\.�+)z(?:0[xX][a-fA-F0-9]+|#?-?\d+)�%�\b�
whitespace�:�\.�directive-argszlock|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[-*,.()\[\]!:{}]+)�rootr3r4r0r8c��tjd|tj��rdStjd|tj��rdSdS)Nz^\.(text|data|section)Tz^\.\w+g�������?)�re�search�M��texts �5/usr/lib/python3/dist-packages/pygments/lexers/asm.py�analyse_textzGasLexer.analyse_textfsG��
�9�.��b�d�;�;�	��4�
�Y�y�$���
-�
-�	��3�	�	�N)"�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenames�	mimetypes�string�char�
identifier�number�registerrr�Label�	Attribute�Functionr
�Constantrr�Integer�Variablerr�Single�	Multiliner�Hexr�Char�tokensrD�rErCrrs����������D��e�n�G����I���I��F��D�!�D�(�7�2�T�9�D�@�J�
-�F��Z��%�'�H�
�G�L�!�!�
�#�
�t�z�*�
�Z�
���1A�B�
&���7�
���(:�;�
���

����'�
�V��
�:�
�t�~�.�
�V�^�$�
�t�}�%�
��V�,�
����7�
�W�.�/�
%�w�'8�&�A��G�M�"�"��G�L�!�!�

�""�*�
,�V�
3�����T�;��
�$�&�&�
'�"�*�
,�Z�
7��
>�v�
E�����T�;��
�$�f�n�k�C�C�
D�
���'�
�V�^�$�
�t�}�%�
��Z���(�
�F�K�(�
��V�,�
����7�
�W�.�/�
%�w�'8�&�A��G�M�"�"��G�L�!�!�1
�6�J��
�Z� �
���/�
 �'�"3�4�	
�"�;�/�
�o:�:�F�x����rErc�j�d}ddttjttt
��fdtttjt��fd|zdzttjtttj	ttjt��fd|zdzttjtttj	t��fd|zd	z|z|zd
ztttjttjtt|����fd|zdztttjtt|����fd|zd	z|z|zdztttjttjtt
��fd|zd	z|z|zd
ztttjttj��fdtfd|zdz|zdztttjttjttjttj��fd|zdztttjttjttj��fdtfgiS)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)rrrSrr
rrr[rrUr�PropertyrVr)�	asm_lexer�hex_res  rC�_objdump_lexer_tokensrdms>���F��
-����[�$��?�?�
A�2���t�z�;�7�7�
9���Z�E�
E����Z��d�m�$�f�j�+�?�?�
@���Z�,�
,����Z��d�m�$�&�&�
'��V�^�N�
*�6�
1�&�
8�9S�
S���T�Z��V�Z���y�)�)�+�+�
,��V�^�6�
6���T�Z���y�)�)�+�+�
,��V�^�N�
*�6�
1�&�
8�9I�
I���T�Z��V�Z��U[�\�\�
^��V�^�N�
*�6�
1�&�
8��
@���T�Z��V�Z�H�H�
J��4� ��&�
 �!D�
D�V�
K�E�
Q���T�Z��T�]�J����V�Z�A�A�
B��&�
 �!<�
<���T�Z��T�]�J���(�(�
)��%� �U+
�-�-rEc�>�eZdZdZdZdgZdgZdgZee	��Z
dS)rz,
    For the output of ``objdump -dr``.
    �objdumpz	*.objdumpztext/x-objdumpN)rFrGrHrIrJrKrLrMrdrr]r^rErCrr�sE���������D��k�G��
�I�!�"�I�
"�
"�8�
,�
,�F�F�FrErc�8��eZdZdZdZdgZdgZdgZ�fd�Z�xZ	S)rz@
    For the output of ``objdump -Sr`` on compiled D files.
    z	d-objdumpz*.d-objdumpztext/x-d-objdumpc�R��t��jttfi|��dS�N)�super�__init__rr��self�options�	__class__s  �rCrkzDObjdumpLexer.__init__��*����������9�9��9�9�9�9�9rE�
rFrGrHrIrJrKrLrMrk�
__classcell__�ros@rCrr��_����������D��m�G���I�#�$�I�:�:�:�:�:�:�:�:�:rErc�<��eZdZdZdZgd�Zgd�ZdgZ�fd�Z�xZ	S)rzB
    For the output of ``objdump -Sr`` on compiled C++ files.
    �cpp-objdump)rvzc++-objdumbzcxx-objdump)z
*.cpp-objdumpz
*.c++-objdumpz
*.cxx-objdumpztext/x-cpp-objdumpc�R��t��jttfi|��dSri)rjrkr
rrls  �rCrkzCppObjdumpLexer.__init__�s*���������<�;�;�7�;�;�;�;�;rErqrss@rCrr�sg����������D�;�;�;�G�C�C�C�I�%�&�I�<�<�<�<�<�<�<�<�<rErc�8��eZdZdZdZdgZdgZdgZ�fd�Z�xZ	S)rz@
    For the output of ``objdump -Sr`` on compiled C files.
    z	c-objdumpz*.c-objdumpztext/x-c-objdumpc�R��t��jttfi|��dSri)rjrkrrrls  �rCrkzCObjdumpLexer.__init__�rprErqrss@rCrr�rtrErc�*�eZdZdZdZddgZdgZdgZdZdZ	d	Z
d
e
zdzZdZd
Z
dZdZdZdZdZdZed��ed��eefde	zdzejfeejjfed��de	zejjfde	zejfeejfdejfeejfeejfdejfdefgde fgde!j"fd e!j#fgd!eze$j%fd"e$fe&d#d$�%��e$fee$fee$fd&ezd'ze
zd(ze$fd)e$fd*e$fe&d+��e$fd,e$fg
d-�Z'd.S)/rz=
    For HSAIL assembly code.

    .. versionadded:: 2.2
    �HSAIL�hsail�hsaz*.hsailztext/x-hsail�"[^"]*?"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})r0�commentsr6z:?�keyword�&r.�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�requirenopartialworkgroupsr/��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<r0r�r�N)(rFrGrHrIrJrKrLrMrNrP�register_numberrR�	alignQual�	widthQual�	allocQual�roundingMod�datatypeMod�float�hexfloat�	ieeefloatrrrrSrX�	Anonymous�Globalrr[�FloatrWrrrrZrYr�Typerr]r^rErCrr�s&��������
�D����G���I�� �I�
�F�#�J��O���0�6�9�H�!�I�'�I�#�I�6�K�
:�K�
0�E�^�H�R�I�
�G�L�!�!��G�J���
�V��
�J�
��
%�t�z�2�
�t�}�.�/��G�I���
�J�
��
� 4�5�
�J�
��
�.�
�v�z�"�
!�6�:�.�
���%�
�F�L�!�
�V�^�$�
'��5�+
�0�*�%�
��7�,�-�
���(�
��+�
%�w�|�4�<�W�E�
�U�G��
��� '�

(��'�"�
�'�"�
�Y�
��
$�y�
0�3�
6��@�
�'�"�
"�G�,�
�U�%E�%F�%F�JHO�K%
P�P�7�#�y=
�?]�]�F�F�FrErc���eZdZdZdZdZdgZdgZdgZdZ	de	zd	zZ
d
e
zdzZed��ed
ze
jfed��de
ze
jfde
ze
jjfde
jjfde
jjfde
jjfde
ze
jfde
jjfde	zefdefdefdefgdefdefgedd���efed��ejfd ejfgd!�Zd"S)#rz!
    For LLVM assembly code.
    �LLVMz"https://llvm.org/docs/LangRef.html�llvmz*.llztext/x-llvmr~z([-a-zA-Z$._][\w\-$.]*|r�r`z|(\d+))r0z\s*:r�r.r6z%\d+z@\d+z#\d+�!z!\d+zc?r�z,-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?z[=<>{}\[\]()*.,!]|x\bz	(\n|\s+)+�;.*?\n(��aarch64_sve_vector_pcs�aarch64_vector_pcs�acq_rel�acquirer��	addrspace�
addrspacecast�afn�alias�aliasee�align�	alignLog2�
alignstackrX�	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�crU�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�ghcccr_�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�nakedrJ�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_mostccr`�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�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�
willreturnr/r�)r��half�bfloatr��double�fp128�x86_fp80�	ppc_fp128�labelr9r��x86_amxr��ptrr�)r<r0r�N)rFrGrHrIrJ�urlrKrLrMrNrP�block_labelrrrSrXr�r�rrrrrrrr�r]r^rErCrr\s����������D�
.�C��h�G���I���I��F�+�f�4�s�:�J���#�j�0�K�
�G�L�!�!��7�
"�D�J�/��G�I���
�J�
��
�.�
�J�
��
� 4�5�
�d�m�-�.�
�d�m�*�+�
�d�m�*�+�
�J�
��
�.�
�d�m�-�.�
�V�^�V�$�
!�6�*�
<�f�E�
%�{�3�)
�.�:�&�
�� �
��U�SC�h�iT�T�T�h '�iT
(�n�U�/�0�0��<�
!��7�<�(�`
�7|�|�F�F�FrErc���eZdZdZdZdZdgZgZgZe	dd���e
fdejfd	ejfd
ejfdefdefd
ej
dfed��dej
jfe	ddd���ejfe	ddd���ejfdejfdefdejfdejfe	d��e
fdee
je��dfde
jdfed ��d!eee��d"fd#efd$efd%efged ��d&ed'fged(��d&ed'fgd)eee
��d*fd+eee��d,fd&ed'fgd-eeej
j��fd.eeej
��fd+eee��d,fd&ed'fgd/eee
j��fd0eee
j��fded'fd&ed'fgd1efd2efe	d3��e
fd4efd5efd6efed ��ed��d7efd8efded'fgd9ejfgd:ejfgd;ej
jfgd<�
Zd=S)>rzT
    For LLVM MIR examples without the YAML wrapper.

    .. versionadded:: 2.6
    z
LLVM-MIR Body�%https://llvm.org/docs/MIRLangRef.htmlz
llvm-mir-body)�liveins�
successorsr1r�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_]+ *�vregr_zintrinsic\(\@[a-zA-Z0-9_.]+\))
r�rAr�r�r�r�r�r�r�r�z	intpred\(z\))rwr�)
rcrirfrerhrgr�r�r�r�zfloatpred\(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(?=.)r7r�z( *)(:(?!:)))r7�vreg_bank_or_classz( *)(\()�	vreg_typez( *)(_)z( *)([a-zA-Z0-9_]+)z( *)([sp][0-9]+)z( *)(<[0-9]+ *x *[sp][0-9]+>)z\(z +)r4r��on�intorr�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<rrrrrrrr�r_N)rFrGrHrIrJr
rKrLrMrrrrSrXrr��BuiltinrrYrrr�rrr
�MagicrrrWr�r]r^rErCrr�s~��������
�D�
1�C���G��I��I�
�U�,�S�
9�
9�
9�7�C�
D�d�j�Q�
E�t�z�R�
#�T�Z�0�
,�d�3�
�d�#�
 �$�-��8��G�H���
-�t�}�/C�D�
�U��#/��?�?�?�@D��
N�
�U�"�*8��H�H�H�
�\�
��v�}�%�
�8��$�0�\�1
�4G�
�\�
��U�)�
*�
*�G�4�
�x�x���j�A�A�=�Q�
%�w�|�_�E��G�I���
�(�(�8�Z�8�8�%�@�
�W��
�t�$�
�4� �OH
�V
�G�I���
�t�V�$�
�
�G�G���
�t�V�$�
��h�h�z�7�;�;�=[�\�
�(�(�:�t�4�4�k�B�
�t�V�$�
����*�d�m�.A�B�B�C�
#�X�X�j�$�-�%H�%H�I�
�(�(�:�t�4�4�k�B�
�t�V�$�

�!�(�(�:�w�|�"D�"D�E�
-�x�x�
�G�L�/Q�/Q�R�
�D�&�!�
�t�V�$�
��D�M�
�J��
�U�@�A�A�
�
�%�d�+�
*�D�1�
�h���G�I����G�H���
�;��
���
�D�&�!�
� !�&�.�1�3�4�f�l�C�D�'���)=�>�?�y}�}�F�F�FrErc��eZdZdZdZdZdgZdgZdefde	dfd	e	d
fde
fgde	d
fdeee
����fgdefde	d
fde	dfedd���e	dfedd���e	dfedd���e	fde	dfde
fdefg	defed
��gdejfed
��gdefed
��gde	dfd eee����fd!eee����fgd"�Zd#S)$ran
    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.

    .. versionadded:: 2.6
    zLLVM-MIRrzllvm-mirz*.mir�#.*z--- \|$�llvm_irz---�llvm_mirz[^-#]+|.z(\.\.\.|(?=---))r7z((?:.|\n)+?)(?=(\.\.\.|---))zname:rJ)�	alignmentr1r�rQ)�	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&rJr-rQr3N)rFrGrHrIrJr
rKrLrrr
rrrrrrr	r!rrr]r^rErCrrvs�������	�	��D�
1�C��l�G��	�I�
�W��
��)�,�
�W�j�)�
�$��	
�!�'�6�2�
,�h�h�u�u�Y�7G�7G�.H�.H�I�	
��W��
 �'�6�2�
�w��'�
�U�?����� '��
3�
�U�7����� '��
4��U�+����� '�
)��7�O�4�
�D�M�
�J��)
�.����G�F�O�O�
�
���-��G�F�O�O�
�
�&�!��G�F�O�O�
�!�'�8�4�
*�H�H�U�U�;K�5L�5L�,M�,M�N�*�8�8�E�E�:J�4K�4K�+L�+L�M�	
�g=�=�F�F�FrErc��eZdZdZdZdgZgd�ZdgZdZdZ	dZ
d	Zd
ZdZ
e
dze
zZd
ZdZdZdZdZdZejejzZdejdfed��e	dzejfde	zeeje e!j"��dfee!dfee!j"dfe	ej#dfde fgee$fe
e%j&fee%j'fee%j(fee%j)fe
e%j*fed��eej+fe	ej,fde dfed��gdejfdej-dfdejdfgde fde fd ej-fd!ej-fgd"e.fd#e/fd$e!jfee/j0fee!j1fgd%�Z2d&�Z3d'S)(r z)
    For Nasm (Intel) assembly code.
    �NASM�nasm)�*.asm�*.ASMz*.nasmztext/x-nasmg�?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]))\bzseg|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*%�preprocr0r1z(%s)(\s+)(equ)r4r5r8r7�[^;\n]+r�r:�[ \t]+rr$z
[,{}():\[\]]+z[&|^<>+*/%~-]+�[$]+�r<r4rAr0r8c�J�tjd|tj��rdSdS)N�PROCF)r>�match�
IGNORECASErAs rCrDzNasmLexer.analyse_texts)��
�8�G�T�2�=�1�1�	��5�	�	rEN)4rFrGrHrIrJrKrLrM�priorityrP�hexn�octn�binn�decn�floatnrN�declkwrR�wordopr��
directivesr>rI�	MULTILINEr�r�PreprocrrrSrrVrr�DeclarationrUrrr[�Oct�Binr�rWr!rXrYrr�Wordr�r]rDr^rErCr r �sE���������D��h�G�,�,�,�I���I��H�(�J�:�D��D��D��D�
�G�^�d�
"�F�
K�F�
&�F�:�H�'�F��D�2�J�
�M�B�L�(�E��w��	�2��G�L�!�!�
�#�
�t�z�*�
��
+�����
�G�4G�H�H�"�
$���"4�5�
�W�(�*<�=�
���(:�;�
��$�
��V��
�6�:��
�6�:��
�6�:��
�V�\�"�
�6�>�"��G�M�"�"�
�t�|�$�
���'�
��V�,��G�L�!�!�
����)�
����/�
�G�O�V�,�
��J��
�
�#�
�W�^�$�
�W�^�$�	
��{�+�
��)�
�g�&�'�
�X�]�#�
�7�<� �
�K,�,�F�\����rEr c�>�eZdZdZdZdgZdgZdgZee	��Z
dS)r!zO
    For the output of ``objdump -d -M intel``.

    .. versionadded:: 2.0
    zobjdump-nasmz*.objdump-intelztext/x-nasm-objdumpN)rFrGrHrIrJrKrLrMrdr r]r^rErCr!r!sG��������
�D���G�"�#�I�&�'�I�
"�
"�9�
-�
-�F�F�FrEr!c��eZdZdZdZdgZgd�ZdgZdZdZ	dZ
d	Zd
ZedzezZ
dZd
ZdZdZdZdZdZejejzZdejdfed��edzejfeedfde�de�d�eej e!ej"��dfeej"dfeej#dfde!fgee$fe	e%j&fe
e%j'fee%j(fe
e%j)fee%j*fed��eej+feej,fdee-e!ej.e!��fde!dfed��gdejfd ej.dfd!ejdfgd"e!fd#ee-e!��fd$e!fd%ej.fgd&e/fd'e0fd(ej fee0j1feej2fgd)�Z3d*�Z4d+S),r"z3
    For Tasm (Turbo Assembler) assembly code.
    �TASM�tasm)r7r8z*.tasmztext/x-tasmz[@a-z$._?][\w$.?#@~]*r9r:r;rr<r=r>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])\bzseg|wrt|strictr?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|SIZEzdb|dd|dw|T[A-Z][a-z]+r@rAr0r1r4r`z)(\s+)(r�r5r8z(\\)(\s*)(;.*)([\r\n])r7rBr�r:z[\n\r]z(\\)([\n\r])rCrz[,():\[\]]+z[&|^<>+*=/%~-]+rDrEc�J�tjd|tj��rdSdS)NrGT)r>rH�IrAs rCrDzTasmLexer.analyse_textzs)��
�8�G�T�2�4�(�(�	��4�	�	rEN)5rFrGrHrIrJrKrLrMrPrKrLrMrNrOrNrPrRrQr�rR�datatyper>rIrSr�rrTrrrSrrrVrrUrUrrr[rVrWr�rWr!rXr
rYrrrXr�r]rDr^rErCr"r"*sv���������D��h�G�,�,�,�I���I�)�J�:�D��D��D��D�
�G�^�d�
"�F�
K�F�
&�F�8�H��F��D�4�J�)�H��M�B�L�(�E��w��	�2��G�L�!�!�
�#�
�t�z�*�
��"4�5�5�!+���X�X�X�
6�����
�G�4G�H�H�"�
$��W�(�*<�=�
���(:�;�
��$�
��V��
�6�:��
�6�:��
�6�:��
�V�\�"�
�6�>�"��G�M�"�"�
�t�|�$�
���'�
&�
�X�d�J���
�
C�
C�
E�
��V�,��G�L�!�!�
�"���)�
����/�
�G�O�V�,�
��
�#�
�h�h�t�Z�8�8�9�
�
�#�
�W�^�$�	
��[�)�
��*�
�g�&�'�
�X�]�#�
�7�<� �
�Q/�/�F�b����rEr"c���eZdZdZdZdgZdgZejZ	dde
jfdefde
jfd	efd
ejfdefdefd
ejfdejfdejfdejfdefde
fg
iZd�ZdS)r#z@
    For ca65 assembler sources.

    .. versionadded:: 1.6
    zca65 assembler�ca65r)r<rr;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�J�tjd|tj��rdSdS)Nz^\s*;g�������?)r>r?rS)rmrBs  rCrDzCa65Lexer.analyse_text�s)��
�9�X�t�R�\�2�2�	��3�	�	rEN)rFrGrHrIrJrKrLr>rIr�rrYrrrSr�Pseudorrr\rr[rWrWrr]rDr^rErCr#r#�s���������
�D��h�G���I��M�E�	�
�W�^�$�
�Z� �
"�D�J�/��!�
"��w�~�&�
��)�
�6�"�
�6�;�'�
(�&�*�5�
�V�^�$�
��
�#�
�{�+�
!�4�(�!
��F�*����rEr#c�R�eZdZdZdZdZdgZddgZdgZgd�Z	gd	�Z
d
Zdezdzezd
zZdZ
dZdd�e	��zdzZdezdzZdZd�Zed��dezejfedzejfeejdfdezejdfdefgeejfe
ejfeefgeefed��gdefded fed!��ed��gded fd"ed fed��gd#efd$ed%fed!��ed&��gd#efed��eefed&��gd'efd(efd)efgd*�Zd+S),r$z:
    For DCPU-16 Assembly.

    .. versionadded:: 2.4
    �DASM16z http://0x10c.com/doc/dcpu-16.txt�dasm16z*.dasm16z*.dasmz
text/x-dasm16)$�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�Zr^�J�SP�PC�EX�POP�PEEK�PUSHz[a-zA-Z0-9_$@.]r+r,r-z[+-]?(?:0[xX][a-zA-Z0-9]+|\d+)z0b[01_]+z(?i)(r�r�z'\\?�'r*c#��K�|�d��}|���|jvrtjntj}|���||fV�dS)Nr)ra�upper�	REGISTERSrrXrS�start)�lexerrH�ident�klasss    rC�guess_identifierzDasm16Lexer.guess_identifier�sW�������A����!&�����%�/�!A�!A��
�
�t�z���k�k�m�m�U�E�)�)�)�)�)�)rEr0r1r4r2�	data-argsr5�numericz\+z\]r7rcz;.*?$r z\[�deref�instruction-liner:r;r�)r<r�rcr�r�r4r�r0N)rFrGrHrIrJr
rKrLrM�INSTRUCTIONSr�rOrPrQ�
binary_number�join�instruction�single_charrNr�rrrSrUrrrWrrrr]r^rErCr$r$�sG��������
�D�
,�C��j�G��X�&�I� �!�I�
�
�
�L����I��D�!�D�(�7�2�T�9�D�@�J�
.�F��M��S�X�X�l�3�3�3�c�9�K��D�.�3�&�K�
�F�*�*�*�
�G�L�!�!�
�:�
�t�z�*�
�#�
�t�z�*�
�$�-�);�<�
�Z�
����<�
��$�

��F�N�+�
�V�^�$�
�&�!�
��)�*��G�I���
��K� �
�K��(��G�E�N�N��G�L�!�!�	
���V�,�
�w��'��G�L�!�!�
��;��
�K��)��G�E�N�N��G�&�'�'�	
��;���G�I���
�V���G�&�'�'�	
��J��
�Z� �
�� �
�a5�5�F�F�FrEr$)*rIr>�pygments.lexerrrrrrrr	�pygments.lexers.c_cppr
r�pygments.lexers.dr�pygments.tokenr
rrrrrrrrr�__all__rrdrrrrrrrrr r!r"r#r$r^rErC�<module>r�s�����
�	�	�	�������������������2�2�2�2�2�2�2�2�$�$�$�$�$�$�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�'�'�'��P�P�P�P�P�z�P�P�P�f2�2�2�j	-�	-�	-�	-�	-�:�	-�	-�	-�
:�
:�
:�
:�
:�O�
:�
:�
:�
<�
<�
<�
<�
<�o�
<�
<�
<�
:�
:�
:�
:�
:�O�
:�
:�
:�D�D�D�D�D��D�D�D�NK�K�K�K�K�
�K�K�K�\I�I�I�I�I�z�I�I�I�XM�M�M�M�M�:�M�M�M�`S�S�S�S�S�
�S�S�S�l.�.�.�.�.�|�.�.�.�S�S�S�S�S�
�S�S�S�l$�$�$�$�$�
�$�$�$�Nf�f�f�f�f�*�f�f�f�f�frE