HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/pygments/lexers/__pycache__/asm.cpython-312.pyc
�

|�e�����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)y)%z�
    pygments.lexers.asm
    ~~~~~~~~~~~~~~~~~~~

    Lexers for assembly languages.

    :copyright: Copyright 2006-2023 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
zej dfdej fe
ej"dfdefge
ej&feefde
zej feej,feej.fdedfdej4dfdej6fdej6dfe
d�e
d�gde
zdzeej:eeej&e�fde
zdzezdzeej:eeej&eej,e�fe
ej&feej,feej.fd ezej,fd!ej>fdedfdej4dfdej6fdej6dfe
d�e
d�g
d"efd#efdej4fd$ej6fgd%efgd&�Z d'�Z!y())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�rytjd|tj�ryy)Nz^\.(text|data|section)Tz^\.\w+g�������?)�re�search�M��texts �5/usr/lib/python3/dist-packages/pygments/lexers/asm.py�analyse_textzGasLexer.analyse_textfs6��
�9�9�.��b�d�d�;��
�Y�Y�y�$����
-��.�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�
�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�xrErc�r�d}ddttjttt
�fdtttjt�fd|zdzttjtttjttjt�fd|zdzttjtttjt�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|zdztttjttjttjtt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_tokensrdms7���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+
�-�-rEc�6�eZdZdZdZdgZdgZdgZee	�Z
y)rz,
    For the output of ``objdump -dr``.
    �objdumpz	*.objdumpztext/x-objdumpN)rFrGrHrIrJrKrLrMrdrr]r^rErCrr�s.����D��k�G��
�I�!�"�I�
"�8�
,�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�8��t�|�ttfi|��y�N)�super�__init__rr��self�options�	__class__s  �rCrkzDObjdumpLexer.__init__�����
�����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�8��t�|�ttfi|��yri)rjrkr
rrls  �rCrkzCppObjdumpLexer.__init__�s���
����<�;�7�;rErqrss@rCrr�s+�����D�;�G�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�8��t�|�ttfi|��yri)rjrkrrrls  �rCrkzCObjdumpLexer.__init__�rprErqrss@rCrr�rtrErc��eZdZdZdZddgZdgZdgZdZdZ	d	Z
d
e
zdzZdZd
Z
dZdZdZdZdZdZed�ed�eefde	zdzej.feej0j2fed�de	zej0j4fde	zej0feej8fdej8feej:feej:fdej<fdefgde fgde!jDfd e!jFfgd!eze$jJfd"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'y.)/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�
�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�JHO�K%
P�P�7�#�y=
�?]�FrErc�B�eZdZdZdZdZdgZdgZdgZdZ	de	zd	zZ
d
e
zdzZed�ed
ze
jfed�de
ze
jfde
ze
jj fde
jj"fde
jj fde
jj fde
ze
jfde
jj"fde	zefdefdefdefgdefdefgedd��efed�ej2fd ej2fgd!�Zy")#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�
�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�*�
<�f�E�
%�{�3�)
�.�:�&�
�� �
��SC�h�iT�h '�iT
(�n�/�0��<�<�
!��7�<�<�(�`
�7|�FrErc�F�eZdZdZdZdZdgZgZgZe	dd��e
fdejfd	ejfd
ejfdefdefd
ejdfed�dejjfe	ddd��ej fe	ddd��ej fdej$fdefdej fdej fe	d�e
fdee
j*e�dfde
j*dfed �d!eee�d"fd#efd$efd%efged �d&ed'fged(�d&ed'fgd)eee
�d*fd+eee�d,fd&ed'fgd-eeejj2�fd.eeej�fd+eee�d,fd&ed'fgd/eee
j*�fd0eee
j*�fded'fd&ed'fgd1efd2efe	d3�e
fd4efd5efd6efed �ed�d7efd8efded'fgd9ej8fgd:ej:fgd;ejjfgd<�
Zy=)>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�
�,�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
�4G�
�\�\�
��)�
*�G�4�
�x����j�A�=�Q�
%�w�|�|�_�E��I��
�(�8�Z�8�%�@�
�W��
�t�$�
�4� �OH
�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}�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
�gdej$fed
�gdefed
�gde	dfd eee��fd!eee��fgd"�Zy#)$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�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=�FrErc�R�eZdZdZdZdgZgd�ZdgZdZdZ	dZ
d	Zd
ZdZ
e
dze
zZd
ZdZdZdZdZdZej,ej.zZdej4dfed�e	dzej:fde	zeej>e e!jD�dfee!dfee!jDdfe	ejFdfde fgee$fe
e%jLfee%jNfee%jPfee%jRfe
e%jTfed�eejVfe	ejXfde dfed�gdej4fdejZdfdej4dfgde fde fd ejZfd!ejZfgd"e.fd#e/fd$e!j>fee/j`fee!jbfgd%�Z2d&�Z3y')(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�P�tjd|tj�ryy)N�PROCF)r>�match�
IGNORECASErAs rCrDzNasmLexer.analyse_texts��
�8�8�G�T�2�=�=�1��2rEN)4rFrGrHrIrJrKrLrM�priorityrP�hexn�octn�binn�decn�floatnrN�declkwrR�wordopr��
directivesr>rI�	MULTILINEr�r�PreprocrrrSrrVrr�DeclarationrUrrr[�Oct�Binr�rWr!rXrYrr�Wordr�r]rDr^rErCr r �s6����D��h�G�,�I���I��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�\rEr c�6�eZdZdZdZdgZdgZdgZee	�Z
y)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!s0���
�D���G�"�#�I�&�'�I�
"�9�
-�FrEr!c��eZdZdZdZdgZgd�ZdgZdZdZ	dZ
d	Zd
ZedzezZ
dZd
ZdZdZdZdZdZej,ej.zZdej4dfed�edzej:feedfde�de�d�eej@e!ejD�dfeejDdfeejFdfde!fgee$fe	e%jLfe
e%jNfee%jPfe
e%jRfee%jTfed�eejVfeejXfdee-e!ej\e!�fde!dfed�gdej4fd ej\dfd!ej4dfgd"e!fd#ee-e!�fd$e!fd%ej\fgd&e/fd'e0fd(ej@fee0jbfeejdfgd)�Z3d*�Z4y+),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�P�tjd|tj�ryy)NrGT)r>rH�IrAs rCrDzTasmLexer.analyse_textzs��
�8�8�G�T�2�4�4�(��)rEN)5rFrGrHrIrJrKrLrMrPrKrLrMrNrOrNrPrRrQr�rR�datatyper>rIrSr�rrTrrrSrrrVrrUrUrrr[rVrWr�rWr!rXr
rYrrrXr�r]rDr^rErCr"r"*sR����D��h�G�,�I���I�)�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�!+�X�
6�����
�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�brEr"c� �eZdZdZdZdgZdgZejZ	dde
jfdefde
jfd	efd
ej fdefdefd
ej&fdej*fdej,fdej.fdefde
fg
iZd�Zy)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�P�tjd|tj�ryy)Nz^\s*;g�������?)r>r?rS)rmrBs  rCrDzCa65Lexer.analyse_text�s��
�9�9�X�t�R�\�\�2��3rEN)rFrGrHrIrJrKrLr>rIr�rrYrrrSr�Pseudorrr\rr[rWrWrr]rDr^rErCr#r#�s����
�D��h�G���I��M�M�E�	�
�W�^�^�$�
�Z� �
"�D�J�J�/��!�
"��w�~�~�&�
��)�
�6�"�
�6�;�;�'�
(�&�*�*�5�
�V�^�^�$�
��
�
�#�
�{�+�
!�4�(�!
��F�*rEr#c�N�eZdZdZdZdZdgZddgZdgZgd�Z	gd	�Z
d
Zdezdzezd
zZdZ
dZddje	�zdzZdezdzZdZd�Zed�dezej,fedzej,feej.dfdezej.dfdefgeej4fe
ej4feefgeefed�gdefded fed!�ed�gded fd"ed fed�gd#efd$ed%fed!�ed&�gd#efed�eefed&�gd'efd(efd)efgd*�Zy+),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�|jd�}|j�|jvrtjntj
}|j
�||f��y�w)Nr)ra�upper�	REGISTERSrrXrS�start)�lexerrH�ident�klasss    rC�guess_identifierzDasm16Lexer.guess_identifier�sF�������A���!&����%�/�/�!A��
�
�t�z�z���k�k�m�U�E�)�)�s�A$A&r0r1r4r2�	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$�s����
�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�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� �
�� �
�a5�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�$�)�)�)�'��P�z�P�f2�j	-�:�	-�
:�O�
:�
<�o�
<�
:�O�
:�D��D�NK�
�K�\I�z�I�XM�:�M�`S�
�S�l.�|�.�S�
�S�l$�
�$�Nf�*�frE