YBFjdZddlZddlmZmZmZmZmZmZm Z ddl m Z m Z ddl mZddlmZmZmZmZmZmZmZmZmZmZgdZGdd eZd ZGd d eZGd deZGddeZGddeZ GddeZ!GddeZ"GddeZ#GddeZ$GddeZ%GddeZ&Gdd eZ'Gd!d"eZ(Gd#d$eZ)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) RegexLexerincludebygroupsusingwordsDelegatingLexerdefault)CppLexerCLexer)DLexer) TextNameNumberStringComment PunctuationOtherKeywordOperator Whitespace)GasLexer ObjdumpLexer DObjdumpLexerCppObjdumpLexer CObjdumpLexer HsailLexer LlvmLexerLlvmMirBodyLexer LlvmMirLexer NasmLexerNasmObjdumpLexer TasmLexer Ca65Lexer Dasm16Lexerc"eZdZdZdZddgZddgZdgZdZd Z d Z d Z d e zd ze zdzZ dZ de zdzZede dzejfde zejdfdejfe ejdfdefge ejfe efde zejfe ejfeejfdedfdejdfdejfdejdfededg de zd zeejee eje fde zd!ze zd zeejee eje eje fe ejfe ejfeejfd"e zejfd#ej!fdedfdejdfdejfdejdfededg d$efd%efdejfd&ejfgd'e fgd(Z"d)Z#d*S)+rz' For Gas (AT&T) assembly code. GASgasasm*.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[-*,.()\[\]!:{}]+)rootr5r6r2r:ctjd|tjrdStjd|tjrdSdS)Nz^\.(text|data|section)Tz^\.\w+g?)researchMtexts AC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/asm.py analyse_textzGasLexer.analyse_texthsG 9.bd ; ; 4 Yy$ - - 3  N)$__name__ __module__ __qualname____doc__namealiases filenames mimetypesurl version_addedstringchar identifiernumberregisterrrLabel AttributeFunctionr ConstantrrIntegerVariablerrSingle MultilinerHexrChartokensrFrGrErrs DenGII 1CMF D!D(72T9D@J -FZ%'H GL ! ! # tz * Z 1A B & 7 (: ;     ' V  : t~ . V^ $ t} % V ,  7 W. / %w'8& A GM " " GL ! !  ""* ,V 3T; $&& '"* ,Z 7 >v ET; $fnkCC D  ' V^ $ t} % Z ( FK ( V ,  7 W. / %w'8& A GM " " GL ! !1 6J  Z  / '"3 4  "; / o::FxrGrcjd}ddttjttt fdtttjtfd|zdztt jtttj tt jtfd|zdztt jtttj tfd|zd z|z|zd ztttjtt jtt|fd|zd ztttjtt|fd|zd z|z|zd ztttjtt jtt fd|zd z|z|zd ztttjtt jfdtfd|zdz|zdztttjttj ttj tt jfd|zdztttjttj ttj 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)rrrWrr rrr_rrYrPropertyrZr) asm_lexerhex_res rE_objdump_lexer_tokensrhos>F -[$?? A2tz;77 9ZE EZdm$fj+?? @Z, ,Zdm$&& 'V^N *6 1& 89S STZVZy))++ ,V^6 6TZy))++ ,V^N *6 1& 89I ITZVZU[\\ ^V^N *6 1& 8 @TZVZHH J4 & !D DV KE QTZT]J VZAA B& !< <TZT]J(( )% U+ - -rGcFeZdZdZdZdgZdgZdgZdZdZ e e Z dS)rz, For the output of ``objdump -dr``. objdumpz *.objdumpztext/x-objdumpr*r+N) rHrIrJrKrLrMrNrOrPrQrhrrarbrGrErrsO DkG I!"I 1CM " "8 , ,FFFrGrc@eZdZdZdZdgZdgZdgZdZdZ fdZ xZ S)rz@ For the output of ``objdump -Sr`` on compiled D files. z d-objdumpz *.d-objdumpztext/x-d-objdumpr*r+c Rtjttfi|dSN)super__init__r rselfoptions __class__s rErozDObjdumpLexer.__init__*9999999rG rHrIrJrKrLrMrNrOrPrQro __classcell__rss@rErrsi DmGI#$I 1CM:::::::::rGrcDeZdZdZdZgdZgdZdgZdZdZ fdZ xZ S) rzB For the output of ``objdump -Sr`` on compiled C++ files. cpp-objdump)ryz c++-objdumbz cxx-objdump)z *.cpp-objdumpz *.c++-objdumpz *.cxx-objdumpztext/x-cpp-objdumpr*r+c Rtjttfi|dSrm)rnror rrps rErozCppObjdumpLexer.__init__s*<;;7;;;;;rGrurws@rErrsq D;;;GCCCI%&I 1CM<<<<<<<<{}\[\]()*.,:;!]|x\bz(\n|\s)+z /\*.*?\*/z//.*?\nkernargz+\$(full|base|small|large|default|zero|near))module extensionpragmaprogindirect signaturedeclkernelfunctionenablebreakexceptionsenabledetectexceptionsmaxdynamicgroupsizemaxflatgridsizemaxflatworkgroupsize requireddimrequiredgridsizerequiredworkgroupsizerequirenopartialworkgroupsr1suffixz_(|)_kernargz(nop|imagefence)\b)cleardetectexceptclockcuid debugtrapdimgetdetectexcept groupbaseptrkernargbaseptrlaneidmaxcuid maxwaveidpacketidsetdetectexceptwaveidworkitemflatabsidworkitemflatidnullptrabsbitrevcurrentworkgroupsizecurrentworkitemflatidfractncosnegnexp2nlog2nrcpnrsqrtnsinnsqrt gridgroupsgridsizenotsqrt workgroupid workgroupsize workitemabsid workitemidceilfloorrinttruncaddbitmaskborrowcarrycopysigndivremsubshlshrandorxorunpackhiunpacklomaxminfmamad bitextract bitselectshufflecmovbitalign bytealignlerpnfmamulmulhimul24himul24mad24mad24hi bitinsertcombineexpandldamovpackunpackpackcvt unpackcvtsadsementpftosstofcmpldst_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_sgeuatomic_ld_st_cas_add_and_exch_max_min_or_sub_wrapdec_wrapinc_xorretcvt _readonlyr_globalbrcbrsbr_scacq_screl_scar_rlx_wave_wg_agent_systemldimagestimage_v2_v3_v4_1d_2d_3d_1da_2da_1db_2ddepth _2dadepth_width_height_depth_array _channelorder _channeltype querysampler_coord_filter _addressingbarrier wavebarrierinitfbarjoinfbarwaitfbar arrivefbar leavefbar releasefbarldf activelaneidactivelanecountactivelanemaskactivelanepermutecallscallicallallocapacketcompletionsigaddqueuewriteindexcasqueuewriteindexldqueuereadindexstqueuereadindexreadonlyglobalprivategroupspillarg_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>r2rrN)*rHrIrJrKrLrMrNrOrPrQrRrTregister_numberrV alignQual widthQual allocQual roundingMod datatypeModfloathexfloat ieeefloatrrrrWr\ AnonymousGlobalrr_Floatr[rrrr^r]rTyperrarbrGrErrs0 DG I I bCM F#JO069H!I'I#I6K :K 0E^HRI GL ! ! GJ   V  J  %tz 2 t}. / GI   J  4 5 J  . vz " !6: .  % FL ! V^ $ ' 5+ 0* % 7, -  ( + %w| 4{}\[\]()*.,!]|x\bz (\n|\s+)+;.*?\nz/\* c-commentz[^*]+z\*/r9z\*(aarch64_sve_vector_pcsaarch64_vector_pcsacq_relacquirer addrspace addrspacecastafnaliasaliaseealign alignLog2 alignstackrZ allocsizeallOnes alwaysinline alwaysInline amdgpu_cs amdgpu_es amdgpu_gfx amdgpu_gs amdgpu_hs amdgpu_kernel amdgpu_ls amdgpu_ps amdgpu_vsranyanyregcc appendingarcp argmemonlyargsarm_aapcs_vfpcc arm_aapcscc arm_apcsccashrr(r atomicrmw attributesavailable_externally avr_intrcc avr_signalccbitbitcastbitMask blockaddress blockcountr( branchFunnelbuiltinbyArgbyrefbyte byteArraybyvalcrWcallbrcalleecallercalls canAutoHidecatchcatchpadcatchret catchswitchccccccfguard_checkcccleanup cleanuppad cleanupretcmpxchgcoldcoldcccomdatcommonconstantcontract convergentcriticalcxx_fast_tlscc datalayoutdeclarer definedeplibsdereferenceabledereferenceable_or_nulldistinct dllexport dllimport dso_localdso_local_equivalentdso_preemptabledsoLocaleqexact exactmatch extern_weakexternalexternally_initializedextractelement extractvaluefaddfalsefastfastccfcmpfdivfencefilterflagsfmulfnegfpextfptosifptouifptruncfreezefremfromfsub funcFlagsrgc getelementptrghcccraguidgvhashhhvm_ccchhvmcchiddenhothotnessicmpifuncinaccessiblemem_or_argmemonlyinaccessiblememonlyinallocainboundsindir indirectbrinfo initialexecinline inlineBits inlinehintinrangeinreg insertelement insertvalueinstsintel_ocl_bicc inteldialectinternalinttoptrinvoke jumptablekind landingpadlargestlinkagelinkonce linkonce_odrliveloadlocal_unnamed_addr localdynamic localexeclshrrmetadatarminsizer monotonic msp430_intrccr mustprogressmusttailnakedrLnandnenestninfnnannoalias nobuiltin nocallback nocapture nocf_check noduplicate noduplicatesnofreenoimplicitfloatnoinlinenoInlinenomergenone nonlazybindnonnull noprofile norecurse noRecurse noredzonenoreturnnosyncnotailnotEligibleToImportnoundefnounwindnswnsznullnull_pointer_is_validnuwoeqoffsetogeogtoleoltoneopaque optforfuzzingoptnoneoptsizerordparamparams partitionpath personalityphipoison preallocatedprefixpreserve_allccpreserve_mostccrbprologue protectedptrtoint ptx_device ptx_kernelreadnonereadNoner`readOnlyreassocrefsrelbfreleaseresByArgresumer$returnDoesNotAliasreturned returns_twice safestacksamesizesanitize_addresssanitize_hwaddresssanitize_memorysanitize_memtagsanitize_threadsdivsectionselectseq_cstsextsgesgtshadowcallstackr shufflevector sideeffectsignextsingle singleImplsingleImplNamesitofpsizeM1sizeM1BitWidthslesltsource_filename speculatablespeculative_load_hardening spir_func spir_kernelsplatsremsretsspsspreq sspstrongstorestrictfpr summariessummaryswiftcc swifterror swiftselfswitch syncscopetailtailcctarget thread_localtotokentripletruertypetypeCheckedLoadConstVCallstypeCheckedLoadVCallstypeidtypeidCompatibleVTable typeIdInfotypeTestAssumeConstVCallstypeTestAssumeVCalls typeTestRes typeTestsudivuequgeugtuitofpuleultumaxuminundefune uniformRetVal uniqueRetValunknown unnamed_addruno unordered unreachableunsatunwindurem uselistorderuselistorder_bbuwtableva_argvarFlagsvariablevcall_visibilityvFuncIdvirtFuncvirtualConstPropvoidvolatilevscale vTableFuncsweakweak_odr webkit_jsccwin64ccwithinwpdReswpdResolutions writeonlyx x86_64_sysvccx86_fastcallcc x86_intrccx86_mmx x86_regcallcc x86_stdcallccx86_thiscallccx86_vectorcallccxchgrzeroextzeroinitializerzextimmarg willreturnr1r)rhalfbfloatrdoublefp128x86_fp80 ppc_fp128labelr<rx86_amxrptrr)r>r2rrN)rHrIrJrKrLrPrMrNrOrQrRrT block_labelrrrWr\rrrrrrrrrrrarbrGrErrgs D .ChGIIMF+f4s:J#j0K GL ! !7 "DJ / GI   J  . J  4 5 dm- . dm* + dm* + J  . dm- . V^V $ )6 2 S)?rz9 For LLVM MIR examples without the YAML wrapper. z LLVM-MIR Body%https://llvm.org/docs/MIRLangRef.htmlz llvm-mir-body2.6)liveins successorsr3rz4bb\.[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_]+ *vregrazintrinsic\(\@[a-zA-Z0-9_.]+\)) rrDrrrrrrrrz intpred\(z\))rzr) rfrlrirhrkrjrrrrz 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)killedimplicitz (i[0-9]+)( +) constantintz(half|float|double) + constantfloatintegerz(::)( *)mmo;.*z [a-zA-Z0-9_]+z [(), \n]+z(?=.)r9rz ( *)(:(?!:)))r9vreg_bank_or_classz( *)(\() vreg_typez( *)(_)z( *)([a-zA-Z0-9_]+)z( *)([sp][0-9]+)z( *)(<[0-9]+ *x *[sp][0-9]+>)z\(z +) r7ronintor rr>rrrrz%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>rrrr r!rrrraN) rHrIrJrKrLrPrMrNrOrQrrrrWr\rrBuiltinrr]rrrrrr Magicrrr[rrarbrGrErrs D 1CGIIM U,S 9 9 97 C Ddj Q Etz R #TZ 0 ,d 3 d # $- 8 GH   -t}/C D U#/???@D  N U"*8HHH \ v} % 8 $0\1 4G \ U) * *G 4 xx jAA= Q %w|_ E GI   ((8Z88% @ W  t $ 4 OH V GI   tV $ GG   tV $ hhz7;;=[ \ ((:t44k B tV $  *dm.ABB C #XXj$-%H%H I ((:t44k B tV $  !((:w|"D"D E -xx GL/Q/Q R D& ! tV $  DM J  U@AA  %d + *D 1 h  GI   GH   ;    D& ! !&.134flCD')=>?y}}FFFrGrceZdZdZdZdZdgZdgZdZde fde d fd e d fd e fgd e dfde e efgde fd e dfde dfedde dfedde dfedde fde dfde fdefg defedgdejfedgdefedgd e d fd!e e efd"e e efgd#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-MIRrzllvm-mirz*.mirr#.*z--- \|$llvm_irz---llvm_mirz[^-#]+|.z(\.\.\.|(?=---))r9z((?:.|\n)+?)(?=(\.\.\.|---))zname:rL) alignmentr3rrU) legalizedregBankSelectedtracksRegLivenessselectedexposesReturnsTwiceboolean) registersstack fixedStackr frameInfomachineFunctionInfoz body: *\| llvm_mir_bodyz.+r<z[^\n]+z *(true|false)z *[0-9]+z#pop:2z((?:.|\n)+?)(?=\.\.\.|---)z(?!\.\.\.|---)((?:.|\n)+))r>r)r*rLr1rUr7N)rHrIrJrKrLrPrMrNrQrrr rrrrrrr r%rrrarbrGrErrs D 1ClG IM W  ) , Wj ) $   !'6 2 ,hhuuY7G7G.H.H I  W  '6 2 w ' U? ' 3 U7 ' 4U+ ' )7O 4 DM J ) .  GFOO  - GFOO & ! GFOO !'8 4 *HHUU;K5L5L,M,M N*88EE:J4K4K+L+L M  g==FFFrGrceZdZdZdZdgZgdZdgZdZdZ dZ d Z d Z d Z d Zd ZedzezZdZdZdZdZdZdZejejzZdejdfede dzejfde de ej!e"e#j$dfee#dfee#j$dfe ej%dfde"fgee&fe e'j(fe e'j)fee'j*fee'j+fee'j,fedeej-fe ej.fde"dfedg dejfd ej/dfd!ejdfgd!e"fd"e"fd#ej/fd$ej/fgd%e0fd&e1fd'e#j!fee1j2fee#j3fgd(Z4d)Z5d*S)+r z) For Nasm (Intel) assembly code. NASMnasm)*.asm*.ASMz*.nasmz text/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]+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|absbyte|[dq]?wordz(?:BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE)(?=\s)^\s*%preprocr2r3rdz )(\s+)(equ)r6r7r:r9[^;\n]+rr<[ \t]+rr(z [,{}():\[\]]+z[&|^<>+*/%~-]+[$]+r>r6rEr2r:cJtjd|tjrdSdS)NPROCF)r@match IGNORECASErCs rErFzNasmLexer.analyse_text*s) 8GT2= 1 1 5  rGN)6rHrIrJrKrLrMrNrOrPrQpriorityrThexnoctnbinndecnfloatnrRdeclkwrVwordopr directivesr@rM MULTILINErrPreprocrrrWrrZrr DeclarationrYrrr_OctBinrr[r%r\r]rrWordrrarFrbrGrEr r sU DhG,,,II CMH(J :D D D D G^d "F KF &F:H'F D2J MBL (Ew 2 GL ! ! # tz * )* ) ) ) G4GHH" $"4 5 W(*< = (: ;  $  V  6:  6:  6:  V\ " 6> " GM " " t| $  ' V , GL ! !   )  / GOV , J   # W^ $ W^ $  { +  ) g& ' X] # 7<  K,,F\rGr cFeZdZdZdZdgZdgZdgZdZdZ e e Z dS)r!z4 For the output of ``objdump -d -M intel``. z objdump-nasmz*.objdump-intelztext/x-nasm-objdumpr*z2.0N) rHrIrJrKrLrMrNrOrPrQrhr rarbrGrEr!r!0sQ DG"#I&'I 1CM " "9 - -FFFrGr!ceZdZdZdZdgZgdZdgZdZdZ dZ d Z d Z d Z d Zed zezZdZdZdZdZdZdZdZejejzZdejdfede dzejfee dfde dede!ej"e#e j$dfee j$dfe ej%dfde#fgee&fe e'j(fe e'j)fe e'j*fee'j+fee'j,fedeej-fe ej.fde!e/e#ej0e#fde#d fedg d!ejfd"ej0d fd#ejd fgd$e#fd%e!e/e#fd&e#fd'ej0fgd(e1fd)e2fd*e j"fee2j3fee j4fgd+Z5d,Z6d-S).r"z3 For Tasm (Turbo Assembler) assembly code. TASMtasm)r;r<z*.tasmz text/x-tasmz-https://en.wikipedia.org/wiki/Turbo_Assemblerr+z[@a-z$._?][\w$.?#@~]*r=r>r?rr@rArBzs(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|strictrCzBITS|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]+rDrEr2r3r6rdz)(\s+)(rr7r:z(\\)(\s*)(;.*)([\r\n])r9rFrr<z[\n\r]z (\\)([\n\r])rGrz [,():\[\]]+z[&|^<>+*=/%~-]+rHrIcJtjd|tjrdSdS)NrKT)r@rLIrCs rErFzTasmLexer.analyse_texts) 8GT24 ( ( 4  rGN)7rHrIrJrKrLrMrNrOrPrQrTrOrPrQrRrSrRrTrVrUrrVdatatyper@rMrWrrrXrrrWrrrZrrYrYrrr_rZr[rr[r%r\r r]rrr\rrarFrbrGrEr"r">s DhG,,,II 9CM)J :D D D D G^d "F KF &F8HF D4J )H MBL (Ew 2 GL ! ! # tz * "4 5 0* 0 0X 0 0 0 G4GHH" $W(*< = (: ;  $  V  6:  6:  6:  V\ " 6> " GM " " t| $  ' & XdJ C C E V , GL ! ! " )  / GOV ,  # hhtZ88 9  # W^ $  [ )  * g& ' X] # 7<  Q//FbrGr"ceZdZdZdZdgZdgZdZdZe j Z dde j fd efd ejfd efd ejfd efdefdejfdejfdejfdejfdefdefg iZdZdS)r#z% For ca65 assembler sources. zca65 assemblerca65r)zhttps://cc65.github.ioz1.6r>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\brz%[01]+z [#,.:()=\[\]]z[a-z_.@$][\w.@$]*cJtjd|tjrdSdS)Nz^\s*;g?)r@rArW)rqrDs rErFzCa65Lexer.analyse_texts) 9XtR\ 2 2 3  rGN)rHrIrJrKrLrMrNrPrQr@rMrrr]rrrWrPseudorrr`rr_r[r[rrarFrbrGrEr#r#s DhGI "CM ME  W^ $ Z "DJ /! "w~ &  ) 6 " 6; ' (&* 5 V^ $  # { + !4 (! F*rGr#c VeZdZdZdZdZdgZddgZdgZdZ gd Z gd Z d Z d e zd ze zdzZ dZdZdde zdzZde zdzZdZdZedde zejfe dzejfeejdfde zejdfdefgeejfeejfeefge efedgdefd ed!fed"edgded!fd#ed!fedgd$efd%ed&fed"ed'gd$efedeefed'gd(efd)efd*efgd+Zd,S)-r$z For DCPU-16 Assembly. DASM16z http://0x10c.com/doc/dcpu-16.txtdasm16z*.dasm16z*.dasmz text/x-dasm16z2.4)$SETADDSUBMULMLIDIVDVIMODMDIANDBORXORSHRASRSHLIFBIFCIFEIFNIFGIFAIFLIFUADXSBXSTISTDJSRINTIAGIASRFIIAQHWNHWQHWI)ABCXYZrbJSPPCEXPOPPEEKPUSHz[a-zA-Z0-9_$@.]r-r.r/z[+-]?(?:0[xX][a-zA-Z0-9]+|\d+)z0b[01_]+z(?i)(rrz'\\?'r,c#K|d}||jvr tjn tj}|||fVdS)Nr)rcupper REGISTERSrr\rWstart)lexerrLidentklasss rEguess_identifierzDasm16Lexer.guess_identifiersW A!&%/!A!A tzkkmmUE))))))rGr2r3r6r4 data-argsr7numericz\+z\]r9rez;.*?$r$z\[derefinstruction-liner<r=r)r>rrerrr6rr2N) rHrIrJrKrLrPrMrNrOrQ INSTRUCTIONSrrSrTrU binary_numberjoin instruction single_charrRrrrrWrYrrr[rrrrarbrGrEr$r$sL D ,CjGX&I !IM   LI D!D(72T9D@J .FMSXXl333c9KD.3&K F*** GL ! ! : tz * # tz * $-); < Z  <  $  FN + V^ $ & ! ) * GI   K K ( GENN GL ! !  V , w ' GL ! ! ;  K ) GENN G& ' '  ;  GI   V  G& ' '  J  Z   a55FFFrGr$)*rKr@pygments.lexerrrrrrrr pygments.lexers.c_cppr r pygments.lexers.dr pygments.tokenr rrrrrrrrr__all__rrhrrrrrrrrr r!r"r#r$rbrGrErs 22222222$$$$$$)))))))))))))))))))))))) ' ' ' RRRRRzRRRj222j - - - - -: - - - : : : : :O : : : < < < <