
    ,h                        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-2025 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    U/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pygments/lexers/asm.pyanalyse_textzGasLexer.analyse_texth   s6    99.bdd;YYy$- .    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enGII
1CM FD!D(72T9D@J-FZ%'H L!#tzz*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;$fnnkCD
 'V^^$t}}%Z(FKK(V,7W../%w'8'8&AM"L!1
6 JZ / '"3"34	
 ";/
o:Fx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tzz;79 ZEEZdmm$fjj+?@ Z,,Zdmm$&' V^N*61&89SSTZZVZZy)+, V^66TZZy)+, V^N*61&89IITZZVZZU[\^ V^N*61&8@TZZVZZHJ 4  & !DDVKEQTZZT]]JVZZAB & !<<TZZ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kGI!"I
1C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mGI#$I
1C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CI%&I
1C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mGI#$I
1C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
bCMF#JO069H!I'I#I6K
:K 0E^HRI L!JVJ%tzz2t}}../IJ 4 45J.vzz"!6::.%FLL!V^^$'5+
0 *%
 7,,-(
 +%w||4 <WE G   '( '"'"Y$y036@'""G, %E %FJ HOK%PP 7#y=
?]FrG   r   c                   F   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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+)+;.*?\n(  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   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hGIIM F+f4s:J#j0K L! 7"DJJ/IJ.J 4 45dmm--.dmm**+dmm**+J.dmm--.V^V$)62<fE%{3)
. :& 
  TCj kUj  'kU(p  / 0 <<! 7<<(Aa
7}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  rC  r  r  r  r  r  r  r  r  z	intpred\(z\))ry  r   )
re  rk  rh  rg  rj  ri  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 +)r6  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
1CGIIM
 ,S97CDdjjQEtzzR#TZZ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(8Z8%@Wt$4 OH
V ItV$
 GtV$
 hz7;=[\(:t4kBtV$
 *dmm.A.ABC#Xj$--%HI(:t4kBtV$
 !(:w||"DE-x
GLL/QRD&!tV$
 DMJ @ A %d+*D1hIH;D&!
  !&..134fll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   r0  rU   r6  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
1ClG	IM
 W),Wj)$	
 !'62,huY7G.HI	
 W '62w'? '3 7 '4  + ') 7O4DMJ)
. FO

 -FO

 &!FO
 !'84*HU;K5L,MN *8E:J4K+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   rD  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    88GT2==1 2rG   N)6rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   priorityrT   hexnoctnbinndecnfloatnrR   declkwrV   wordopr  
directivesr@   rL  	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hG,II
CM H(J:DDDDG^d"FKF&F:H 'FD2J MMBLL(E w	2L!#tzz**[)
G4G4GH"$ "45W((*<=(:;$
 V6::6::6::V\\"6>>"M"t||$'V,L!
 )/GOOV,
 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!   )  s:     DG"#I&'I
1C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?  r@  rA  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|strictrB  zBITS|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]+rC  rD  r2   r3   r6   rd   z)(\s+)(r   r7   r:   z(\\)(\s*)(;.*)([\r\n])r9   rE  r  r<   z[\n\r]z(\\)([\n\r])rF  r  z[,():\[\]]+z[&|^<>+*=/%~-]+rG  rH  c                 P    t        j                  d| t         j                        ryy )NrJ  T)r@   rK  IrC   s    rE   rF   zTasmLexer.analyse_text  s    88GT244( )rG   N)7rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rT   rN  rO  rP  rQ  rR  rR   rS  rV   rT  r  rU  datatyper@   rL  rV  r   r   rW  r   r   rW   r   r   rZ   r   rX  rY   r   r   r_   rY  rZ  r  r[   r$  r\   r   r]   r   r   r[  r  ra   rF   rb   rG   rE   r"   r"   7  sf    DhG,II
9CM)J:DDDDG^d"FKF&F8H FD4J )HMMBLL(E w	2L!#tzz*"45*WXJa0
G4G4GH"$ W((*<=(:;$
 V6::6::6::V\\"6>>"M"t||$'&dJ
CEV,L!
" )/GOOV,
 
#htZ89
#W^^$	
 [)*g&&'X]]#7<< 
Q/Fb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   rV  )rq   rD   s     rE   rF   zCa65Lexer.analyse_text  s    99XtR\\2 3rG   N)rH   rI   rJ   rK   rL   rM   rN   rP   rQ   r@   rL  r   r   r]   r   r   rW   r   Pseudor   r   r`   r   r_   r[   rZ  r   ra   rF   rb   rG   rE   r#   r#     s     DhGI
"CMMME 	W^^$Z "DJJ/ !" 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Zra  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)lexerrK  identklasss       rE   guess_identifierzDasm16Lexer.guess_identifier  sF     A!&%//!AtzzkkmUE))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jGX&I !IMLI D!D(72T9D@J.FMSXXl33c9KD.3&KF* L!:tzz*#tzz*$--);<Z<$
 FNN+V^^$&!
 )*I
 K K(ENL!	
 V,w'L!
 ;K)EN&'	
 ;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M
 M`Hz HVL: L^U
 Up.| .U
 Up$
 $Ne* erG   