HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/__pycache__/asm.cpython-310.pyc
o

;j��@spdZddlZddlmZmZmZmZmZmZm	Z	ddl
mZmZddl
mZddlmZmZmZmZmZmZmZmZmZmZgd�ZGdd	�d	e�Zd
d�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#Gdd�de�Z$Gdd�de�Z%Gdd�de�Z&Gd d!�d!e�Z'Gd"d#�d#e�Z(Gd$d%�d%e�Z)dS)&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@s�eZdZdZdZddgZddgZdgZdZd	Z	d
Z
dZded
edZdZ
dedZed�edejfdeejdfdejfeejdfdefgeejfe
efdeejfe
ejfeejfdedfdejdfdejfdejdfed�ed�gded eejee eje �fded!e
d eejee eje eje �feejfe
ejfeejfd"e
ejfd#ej!fdedfdejdfdejfdejdfed�ed�g
d$efd%efdejfd&ejfgd'e fgd(�Z"d)d*�Z#d+S),rz'
    For Gas (AT&T) assembly code.
    ZGASZgas�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-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[-*,.()\[\]!:{}]+)�rootr1r2r.r6cCs,t�d|tj�r
dSt�d|tj�rdSdS)Nz^\.(text|data|section)Tz^\.\w+g�������?)�re�search�M��text�r@�G/opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/asm.py�analyse_texths
�zGasLexer.analyse_textN)$�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenames�	mimetypes�url�
version_added�string�char�
identifier�number�registerrr
�LabelZ	Attribute�Functionr�Constantrr�Integer�Variablerr�Single�	Multiliner�Hexr�Char�tokensrBr@r@r@rArs~
�	

�
����

����<rcCspd}ddttjttt�fdtttjt�fd|dttjtttj	ttjt�fd|dttjtttj	t�fd|d	||d
tttjttjtt
|��fd|dtttjtt
|��fd|d	||dtttjttjtt�fd|d	||d
tttjttj�fdtfd|d|dtttjttjttjttj�fd|dtttjttjttj�fdt
fg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)rr
rRrrrrrYrrSrZPropertyrTr)Z	asm_lexerZhex_rer@r@rA�_objdump_lexer_tokensos`��
��
����

����
��
����r]c@�6eZdZdZdZdgZdgZdgZdZdZ	e
e�ZdS)rz,
    For the output of ``objdump -dr``.
    Zobjdumpz	*.objdumpztext/x-objdumpr&r'N)
rCrDrErFrGrHrIrJrKrLr]rr[r@r@r@rAr��rc�>eZdZdZdZdgZdgZdgZdZdZ	�fdd�Z
�ZS)	rz@
    For the output of ``objdump -Sr`` on compiled D files.
    z	d-objdumpz*.d-objdumpztext/x-d-objdumpr&r'c�t�jttfi|��dS�N)�super�__init__rr��self�options��	__class__r@rArd��zDObjdumpLexer.__init__�rCrDrErFrGrHrIrJrKrLrd�
__classcell__r@r@rhrAr�srcsBeZdZdZdZgd�Zgd�ZdgZdZdZ	�fdd	�Z
�ZS)
rzB
    For the output of ``objdump -Sr`` on compiled C++ files.
    �cpp-objdump)rmzc++-objdumbzcxx-objdump)z
*.cpp-objdumpz
*.c++-objdumpz
*.cxx-objdumpztext/x-cpp-objdumpr&r'crarb)rcrdr	rrerhr@rArd�rjzCppObjdumpLexer.__init__rkr@r@rhrAr�srcr`)	rz@
    For the output of ``objdump -Sr`` on compiled C files.
    z	c-objdumpz*.c-objdumpztext/x-c-objdumpr&r'crarb)rcrdr
rrerhr@rArd�rjzCObjdumpLexer.__init__rkr@r@rhrAr�src@sdeZdZdZdZddgZdgZdgZdZdZ	d	Z
d
ZdZded
Z
dZdZdZdZdZdZdZdZed�ed�e
efdedejfe
ejjfed�deejjfdeejfeejfdejfeejfeejfdej fde!fgd e"fgd!e#j$fd"e#j%fgd#ee&j'fd$e&fe(d%d&d'�e&fee&fee&fd(ed)ed*e&fd+e&fd,e&fe(d-�e&fd.e&fg
d/�Z)d0S)1rz"
    For HSAIL assembly code.
    ZHSAILZhsailZhsaz*.hsailztext/x-hsailzVhttps://en.wikipedia.org/wiki/Heterogeneous_System_Architecture#HSA_Intermediate_Layerz2.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})r.�commentsr4z:?�keyword�&r,z0[xX][a-fA-F0-9]+�\d+z[=<>{}\[\]()*.,:;!]|x\bz(\n|\s)+z	/\*.*?\*/z//.*?\nZkernargz+\$(full|base|small|large|default|zero|near))�module�	extensionZpragma�progZindirectZ	signatureZdeclZkernel�functionZenablebreakexceptionsZenabledetectexceptionsZmaxdynamicgroupsizeZmaxflatgridsizeZmaxflatworkgroupsizeZrequireddimZrequiredgridsizeZrequiredworkgroupsizeZrequirenopartialworkgroupsr-��suffixz_(�|�)�_kernargz(nop|imagefence)\b)�ZcleardetectexceptZclockZcuidZ	debugtrapZdimZgetdetectexceptZgroupbaseptrZkernargbaseptrZlaneidZmaxcuidZ	maxwaveidZpacketidZsetdetectexceptZwaveidZworkitemflatabsidZworkitemflatidZnullptr�absZbitrevZcurrentworkgroupsizeZcurrentworkitemflatidZfractZncos�negZnexp2Znlog2ZnrcpZnrsqrtZnsinZnsqrtZ
gridgroupsZgridsize�not�sqrtZworkgroupidZ
workgroupsizeZ
workitemabsidZ
workitemid�ceil�floorZrint�trunc�addZbitmaskZborrowZcarry�copysignZdiv�rem�sub�shlZshr�and�or�xorZunpackhiZunpacklo�max�minZfmaZmadZ
bitextractZ	bitselect�shuffleZcmovZbitalignZ	bytealignZlerpZnfma�mulZmulhiZmul24hiZmul24Zmad24Zmad24hiZ	bitinsert�combine�expandZldaZmov�pack�unpackZpackcvtZ	unpackcvtZsadZsementpZftosZstof�cmpZld�st�_eqZ_neZ_ltZ_leZ_gtZ_geZ_equZ_neuZ_ltuZ_leuZ_gtuZ_geuZ_numZ_nanZ_seqZ_sneZ_sltZ_sleZ_sgtZ_sgeZ_snumZ_snanZ_sequZ_sneuZ_sltuZ_sleuZ_sgtuZ_sgeu�atomicZ_ldZ_stZ_casZ_addZ_andZ_exchZ_maxZ_minZ_orZ_subZ_wrapdecZ_wrapincZ_xor�retZcvtZ	_readonlyr|Z_global�brZcbrZsbrZ_scacqZ_screlZ_scarZ_rlxZ_waveZ_wgZ_agentZ_systemZldimageZstimageZ_v2Z_v3Z_v4Z_1dZ_2dZ_3dZ_1daZ_2daZ_1dbZ_2ddepthZ	_2dadepth�_widthZ_heightZ_depthZ_arrayZ
_channelorderZ_channeltypeZquerysamplerZ_coord�_filterZ_addressingZbarrierZwavebarrierZinitfbarZjoinfbarZwaitfbarZ
arrivefbarZ	leavefbarZreleasefbarZldfZactivelaneidZactivelanecountZactivelanemaskZactivelanepermute�callZscallZicall�allocaZpacketcompletionsigZaddqueuewriteindexZcasqueuewriteindexZldqueuereadindexZstqueuereadindex�readonly�global�private�groupZspill�argZ_upiZ_downiZ_zeroiZ_neariZ_upi_satZ
_downi_satZ
_zeroi_satZ
_neari_satZ_supiZ_sdowniZ_szeroiZ_sneariZ	_supi_satZ_sdowni_satZ_szeroi_satZ_sneari_satZ_ppZ_psZ_sp�_ssZ_sZ_pZ_pp_satZ_ps_satZ_sp_satZ_ss_satZ_s_satZ_p_sat�	i[1-9]\d*)r:r.rprqN)*rCrDrErFrGrHrIrJrKrLrMrOZregister_numberrQZ	alignQualZ	widthQualZ	allocQualZroundingModZdatatypeMod�floatZhexfloatZ	ieeefloatrrr
rRrV�	Anonymous�GlobalrrY�FloatrUrrrrXrWr�Typerr[r@r@r@rAr�st

�����	%�(�
�rc@s$eZdZdZdZdZdgZdgZdgZdZ	dZ
d	e
d
ZdedZe
d
�edejfe
d�deejfdeejjfdejjfdejjfdejjfdeejfdejjfde
efdefdefdefgdefdefdedfgdefd ed!fd"efged#d$d%�efed&�ejfd'ejfgd(�Zd)S)*rz!
    For LLVM assembly code.
    ZLLVMz"https://llvm.org/docs/LangRef.htmlZllvmz*.llztext/x-llvmr'rnz([-a-zA-Z$._][\w\-$.]*|r{r\z|(\d+))r.z\s*:rqr,r4z%\d+z@\d+z#\d+�!z!\d+zc?z0[xX][KLMHR]?[a-fA-F0-9]+z,-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?z[=<>{}\[\]()*.,!]|x\bz	(\n|\s+)+�;.*?\nz/\*�	c-commentz[^*]+z\*/r5z\*(�Zaarch64_sve_vector_pcsZaarch64_vector_pcs�acq_rel�acquirer�Z	addrspaceZ
addrspacecastZafn�aliasZaliasee�alignZ	alignLog2Z
alignstackr�Z	allocsizeZallOnesZalwaysinlineZalwaysInlineZ	amdgpu_csZ	amdgpu_esZ
amdgpu_gfxZ	amdgpu_gsZ	amdgpu_hsZ
amdgpu_kernelZ	amdgpu_lsZ	amdgpu_psZ	amdgpu_vsr��anyZanyregccZ	appendingZarcpZ
argmemonly�argsZarm_aapcs_vfpccZarm_aapcsccZ
arm_apcsccZashrr$r�Z	atomicrmwZ
attributesZavailable_externallyZ
avr_intrccZavr_signalcc�bitZbitcastZbitMaskZblockaddressZ
blockcountr�ZbranchFunnelZbuiltinZbyArg�byrefZbyteZ	byteArrayZbyval�cr�ZcallbrZcalleeZcallerZcallsZcanAutoHideZcatchZcatchpadZcatchretZcatchswitchZcc�cccZcfguard_checkccZcleanupZ
cleanuppadZ
cleanupretZcmpxchgZcoldZcoldccZcomdat�commonZconstantZcontractZ
convergent�criticalZcxx_fast_tlsccZ
datalayoutZdeclarerZdefineZdeplibsZdereferenceableZdereferenceable_or_nullZdistinctZ	dllexportZ	dllimportZ	dso_localZdso_local_equivalentZdso_preemptableZdsoLocal�eq�exactZ
exactmatchZextern_weakZexternalZexternally_initializedZextractelementZextractvalueZfadd�falseZfastZfastccZfcmpZfdivZfence�filter�flagsZfmulZfnegZfpextZfptosiZfptouiZfptruncZfreezeZfrem�fromZfsubZ	funcFlagsrw�gcZ
getelementptrZghcccr�Zguid�gv�hashZhhvm_cccZhhvmccZhiddenZhotZhotnessZicmpZifuncZinaccessiblemem_or_argmemonlyZinaccessiblememonlyZinallocaZinboundsZindirZ
indirectbr�infoZinitialexec�inlineZ
inlineBitsZ
inlinehintZinrangeZinregZ
insertelementZinsertvalueZinstsZintel_ocl_biccZinteldialectZinternalZinttoptrZinvokeZ	jumptable�kindZ
landingpadZlargest�linkageZlinkonceZlinkonce_odrZlive�loadZlocal_unnamed_addrZlocaldynamicZ	localexecZlshrr��metadatar�Zminsizert�	monotonicZ
msp430_intrccr�ZmustprogressZmusttailZnakedrGZnand�neZnestZninfZnnanZnoaliasZ	nobuiltinZ
nocallbackZ	nocaptureZ
nocf_checkZnoduplicateZnoduplicatesZnofreeZnoimplicitfloatZnoinlineZnoInlineZnomerge�noneZnonlazybindZnonnullZ	noprofileZ	norecurseZ	noRecurseZ	noredzoneZnoreturnZnosyncZnotailZnotEligibleToImportZnoundefZnounwindZnswZnsz�nullZnull_pointer_is_validZnuw�oeq�offset�oge�ogt�ole�olt�oneZopaqueZ
optforfuzzingZoptnoneZoptsizer��ord�param�params�	partition�pathZpersonalityZphiZpoisonZpreallocated�prefixZpreserve_allccZpreserve_mostccr�ZprologueZ	protectedZptrtointZ
ptx_deviceZ
ptx_kernelZreadnoneZreadNoner�ZreadOnlyZreassocZrefsZrelbf�releaseZresByArgZresumer�ZreturnDoesNotAliasZreturnedZ
returns_twiceZ	safestackZsamesizeZsanitize_addressZsanitize_hwaddressZsanitize_memoryZsanitize_memtagZsanitize_threadZsdiv�section�select�seq_cstZsext�sge�sgtZshadowcallstackr�Z
shufflevectorZ
sideeffectZsignextZsingleZ
singleImplZsingleImplNameZsitofpZsizeM1ZsizeM1BitWidth�sle�sltZsource_filenameZspeculatableZspeculative_load_hardeningZ	spir_funcZspir_kernelZsplatZsremZsretZsspZsspreqZ	sspstrong�storeZstrictfpr�Z	summariesZsummaryZswiftccZ
swifterrorZ	swiftselfZswitchZ	syncscope�tailZtailcc�targetZthread_local�to�tokenZtriple�truer��typeZtypeCheckedLoadConstVCallsZtypeCheckedLoadVCallsZtypeidZtypeidCompatibleVTableZ
typeIdInfoZtypeTestAssumeConstVCallsZtypeTestAssumeVCallsZtypeTestResZ	typeTestsZudivZueq�uge�ugtZuitofp�ule�ultZumaxZuminZundefZuneZ
uniformRetValZuniqueRetVal�unknownZunnamed_addrZunoZ	unorderedZunreachableZunsatZunwindZuremZuselistorderZuselistorder_bbZuwtableZva_argZvarFlags�variableZvcall_visibilityZvFuncIdZvirtFuncZvirtualConstProp�voidZvolatileZvscaleZvTableFuncsZweakZweak_odrZwebkit_jsccZwin64ccZwithinZwpdResZwpdResolutionsZ	writeonly�xZ
x86_64_sysvccZx86_fastcallccZ
x86_intrcc�x86_mmxZ
x86_regcallccZ
x86_stdcallccZx86_thiscallccZx86_vectorcallccZxchgr�ZzeroextZzeroinitializerZzextZimmargZ
willreturnr-rx)r�ZhalfZbfloatr�ZdoubleZfp128Zx86_fp80Z	ppc_fp128Zlabelr�r�Zx86_amxr��ptrr�)r:r.r�rqN)rCrDrErFrGrKrHrIrJrLrMrOZblock_labelrr
rRrVr�r�rrrrrrrr�r[r@r@r@rArgsZ




���U�U�X��
�rc@seZdZdZdZdZdgZgZgZdZ	e
ddd�efd	ej
fd
ej
fdej
fdefd
efdejdfed�dejjfe
dddd�ejfe
dddd�ejfdejfdefdejfdejfe
d�efdeeje�dfdejd fed!�d"eee�d#fd$efd%efd&efged!�d'ed(fged)�d'ed(fgd*eee�d+fd,eee�d-fd'ed(fgd.eeejj�fd/eeej�fd,eee�d-fd'ed(fgd0eeej�fd1eeej�fded(fd'ed(fgd2efd3efe
d4�efd5efd6efd7efed!�ed�d8efd9efded(fgd:ejfgd;ejfgd<ejjfgd=�
Zd>S)?rz9
    For LLVM MIR examples without the YAML wrapper.
    z
LLVM-MIR Body�%https://llvm.org/docs/MIRLangRef.htmlz
llvm-mir-body�2.6)�liveinsZ
successorsr/rxz4bb\.[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�r�r�r�r�r�r�r�r�r�z	intpred\(z\))r�ry)
r�r�r�r�r�r�r�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)ZkilledZimplicitz
(i[0-9]+)( +)�constantintz(half|float|double) +�
constantfloat�integerz(::)( *)�mmo�;.*z
[a-zA-Z0-9_]+z	[(), \n]+z(?=.)r5r�z( *)(:(?!:)))r5�vreg_bank_or_classz( *)(\()�	vreg_typez( *)(_)z( *)([a-zA-Z0-9_]+)z( *)([sp][0-9]+)z( *)(<[0-9]+ *x *[sp][0-9]+>)z\(z +)r�r��onZintor�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�r�N) rCrDrErFrGrKrHrIrJrLrrr
rRrVrr��BuiltinrrWrrr�rrrZMagicrrrUr�r[r@r@r@rAr�s�

������

�K���	�
���


�rc@seZdZdZdZdZdgZdgZdZde	fde
d	fd
e
dfdefgd
e
dfdee
e��fgde	fd
e
dfde
dfeddd�e
dfeddd�e
dfeddd�e
fde
dfdefdefg	defed�gdejfed�gdefed�gd
e
d fd!ee
e��fd"ee
e��fgd#�Zd$S)%raS
    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.
    zLLVM-MIRr�zllvm-mirz*.mirr��#.*z--- \|$�llvm_irz---�llvm_mirz[^-#]+|.z(\.\.\.|(?=---))r5z((?:.|\n)+?)(?=(\.\.\.|---))zname:rG)�	alignmentr/rxrP)Z	legalizedZregBankSelectedZtracksRegLiveness�selectedZexposesReturnsTwice�boolean)Z	registers�stackZ
fixedStackr�Z	frameInfoZmachineFunctionInfoz	body: *\|�
llvm_mir_bodyz.+r8z[^\n]+z *(true|false)z *[0-9]+z#pop:2z((?:.|\n)+?)(?=\.\.\.|---)z(?!\.\.\.|---)((?:.|\n)+))r:rrrGrrPrN)rCrDrErFrGrKrHrIrLrrrrrrrrr
rrrrr[r@r@r@rAr�sf�������������
�rc
@s�eZdZdZdZdgZgd�ZdgZdZdZ	dZ
d	Zd
ZdZ
dZd
ZedeZdZdZdZdZdZdZejejBZdejdfed�edejfde�d�e ej!e"e#j$�dfee#dfee#j$dfeej%dfde"fgee&fee'j(fe
e'j)fee'j*fee'j+fee'j,fed�eej-feej.fde"dfed�gdejfd ej/dfd!ejdfgd!e"fd"e"fd#ej/fd$ej/fgd%e0fd&e1fd'e#j!fee1j2fee#j3fgd(�Z4d)d*�Z5d+S),rz)
    For Nasm (Intel) assembly code.
    ZNASMZnasm)�*.asm�*.ASMz*.nasmztext/x-nasmzhttps://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]+bro�\.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*%�preprocr.r/r\z)(\s+)(equ)r2r3r6r5�[^;\n]+r�r8�[ \t]+r�rz
[,{}():\[\]]+z[&|^<>+*/%~-]+�[$]+�r:r2rr.r6cC�t�d|tj�r
dSdS)N�PROCF)r;�match�
IGNORECASEr>r@r@rArB*��zNasmLexer.analyse_textN)6rCrDrErFrGrHrIrJrKrL�priorityrO�hexn�octn�binn�decn�floatnrM�declkwrQ�wordopr��
directivesr;r�	MULTILINEr�r�Preprocrr
rRrrTrr�DeclarationrSrrrY�Oct�Binr�rUrrVrWrr�Wordr�r[rBr@r@r@rAr�s~

�

�
�

����.rc@r^)r z4
    For the output of ``objdump -d -M intel``.
    zobjdump-nasmz*.objdump-intelztext/x-nasm-objdumpr&z2.0N)
rCrDrErFrGrHrIrJrKrLr]rr[r@r@r@rAr 0r_r c@s�eZdZdZdZdgZgd�ZdgZdZdZ	dZ
d	Zd
ZdZ
dZed
eZdZdZdZdZdZdZdZejejBZdejdfed�e
dejfee dfde
�de�d�e!ej"e#e j$�dfee j$dfe
ej%dfde#fgee&fee'j(fee'j)fe
e'j*fee'j+fee'j,fed�eej-fe
ej.fde!e/e#ej0e#�fde#d fed�gd!ejfd"ej0d fd#ejd fgd$e#fd%e!e/e#�fd&e#fd'ej0fgd(e1fd)e2fd*e j"fee2j3fee j4fgd+�Z5d,d-�Z6d.S)/r!z3
    For Tasm (Turbo Assembler) assembly code.
    ZTASMZtasm)r	r
z*.tasmztext/x-tasmz-https://en.wikipedia.org/wiki/Turbo_Assemblerr'z[@a-z$._?][\w$.?#@~]*rrr
rorrrzs(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|strictrz�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]+rrr.r/r2r\z)(\s+)(r{r3r6z(\\)(\s*)(;.*)([\r\n])r5rr�r8z[\n\r]z(\\)([\n\r])rr�z[,():\[\]]+z[&|^<>+*=/%~-]+rrcCr)NrT)r;r�Ir>r@r@rArB�rzTasmLexer.analyse_textN)7rCrDrErFrGrHrIrJrKrLrOrrr r!r"rMr#rQr$r�r%Zdatatyper;rr&r�rr'rr
rRrrrTrr(rSrrrYr)r*r�rUrrVrrWrrr+r�r[rBr@r@r@rAr!>s�
�

�
��

����1r!c@s�eZdZdZdZdgZdgZdZdZe	j
Zddej
fd	efd
ejfdefdejfd
efdefdejfdejfdejfdejfdefdefg
iZdd�ZdS)r"z%
    For ca65 assembler sources.
    zca65 assemblerZca65r%zhttps://cc65.github.ioz1.6r:r�r9z[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\brsz%[01]+z
[#,.:()=\[\]]z[a-z_.@$][\w.@$]*cCst�d|tj�r
dSdS)Nz^\s*;g�������?)r;r<r&)rfr?r@r@rArB�rzCa65Lexer.analyse_textN)rCrDrErFrGrHrIrKrLr;rr�rrWrr
rRrZPseudorrrZrrYrUr*rr[rBr@r@r@rAr"�s6���r"c@sreZdZdZdZdZdgZddgZdgZdZ	gd	�Z
gd
�ZdZded
edZ
dZdZdd�e
�dZdedZdZdd�Zed�de
ejfe
dejfeejdfde
ejdfdefgeejfeejfeefge
efed�gd efd!ed"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.
    ZDASM16z http://0x10c.com/doc/dcpu-16.txtZdasm16z*.dasm16z*.dasmz
text/x-dasm16z2.4)$ZSETZADDZSUBZMULZMLIZDIVZDVIZMODZMDIZANDZBORZXORZSHRZASRZSHLZIFBZIFCZIFEZIFNZIFGZIFAZIFLZIFUZADXZSBXZSTIZSTDZJSRZINTZIAGZIASZRFIZIAQZHWNZHWQZHWI)�A�B�C�X�Y�Zr,�J�SPZPCZEXZPOPZPEEKZPUSHz[a-zA-Z0-9_$@.]r)r*r+z[+-]?(?:0[xX][a-zA-Z0-9]+|\d+)z0b[01_]+z(?i)(rzr{z'\\?�'r(ccs:�|�d�}|��|jvrtjntj}|��||fVdS)Nr)r��upper�	REGISTERSr
rVrR�start)Zlexerr�ident�klassr@r@rA�guess_identifier�s�
zDasm16Lexer.guess_identifierr.r/r2r0�	data-argsr3�numericz\+z\]r5r�z;.*?$r�z\[�deref�instruction-liner8r9r�)r:r=r�r>r?r2r<r.N) rCrDrErFrGrKrHrIrJrLZINSTRUCTIONSr7rNrOrPZ
binary_number�joinZinstructionZsingle_charrMr;rr
rRrSrrrUrrrr[r@r@r@rAr#�sp	
�
�������
�r#)*rFr;Zpygments.lexerrrrrrrrZpygments.lexers.c_cppr	r
Zpygments.lexers.drZpygments.tokenrr
rrrrrrrr�__all__rr]rrrrrrrrrr r!r"r#r@r@r@rA�<module>s2
$0U5OXX'