Advertisement
NaZaRa

GAS highlighting

Dec 13th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 20.78 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE language SYSTEM "language.dtd">
  3. <language _name="Assembly (GAS x86-64)" version="1.0" _section="Sources" mimetypes="text/x-asm;text/x-assembler" globs="*.sx;*.s;*.S;*.asm;*.inc">
  4.    
  5.     <escape-char>\</escape-char>
  6.  
  7.     <keyword-list _name = "Assembler Cmds" style = "Preprocessor"
  8.         case-sensitive="FALSE"
  9.         match-empty-string-at-beginning = "TRUE"
  10.         match-empty-string-at-end = "TRUE">
  11.        
  12.         <keyword>(format|section|org)</keyword>
  13.         <keyword>(as|at)</keyword>
  14.         <keyword>use16</keyword>
  15.         <keyword>use32</keyword>
  16.         <keyword>use64</keyword>
  17.        
  18.         <keyword>equ</keyword>
  19.         <keyword>times</keyword>
  20.         <keyword>(if|else|ifdef|ifndef|undef|then|struc|struct)</keyword>
  21.         <keyword>repeat</keyword>
  22.         <keyword>while</keyword>
  23.         <keyword>end</keyword>
  24.         <keyword>break</keyword>
  25.        
  26.         <keyword>display</keyword>
  27.         <keyword>err</keyword>
  28.        
  29.         <keyword>include</keyword>
  30.         <keyword>(macro|define|union|struct|class|local|at)</keyword>
  31.         <keyword>(align|locals|eq|bits)</keyword>
  32.        
  33.         <keyword>(i|u)?(proc|global)(g)?</keyword>
  34.         <keyword>end(g|p|l|if|struc|struct)?</keyword>
  35.        
  36.         <keyword>res(u|d|w|b|q|p|t)</keyword>
  37.         <keyword>(du|dd|dw|db|dq|dp|dt)</keyword>
  38.         <keyword>(ru|rb|rw|rd|rq|rt)</keyword>
  39.    
  40.         <!--<keyword>\.(text|data|bss)</keyword>-->
  41.     </keyword-list>
  42.    
  43.     <keyword-list _name = "Assembler Cmds #2" style = "Preprocessor"
  44.         case-sensitive="FALSE"
  45.         match-empty-string-at-beginning = "TRUE"
  46.         match-empty-string-at-end = "TRUE">
  47.        
  48.         <keyword>short</keyword>
  49.         <keyword>near</keyword>
  50.         <keyword>far</keyword>
  51.        
  52.         <keyword>byte</keyword>
  53.         <keyword>word</keyword>
  54.         <keyword>dword</keyword>
  55.         <keyword>qword</keyword>
  56.     </keyword-list>
  57.         <keyword-list _name = "Instructions" style = "Keyword" case-sensitive="FALSE"
  58.         match-empty-string-at-beginning = "TRUE"
  59.         match-empty-string-at-end = "TRUE">
  60.         <keyword>extern</keyword>
  61.         <keyword>pcmpeq[bwlq]</keyword>
  62.     </keyword-list>
  63.  
  64.    
  65.    
  66.    
  67.     <block-comment _name = "Block Comment" style="Comment">
  68.         <start-regex>/\*</start-regex>
  69.         <end-regex>\*/</end-regex>
  70.     </block-comment>
  71.  
  72.     <string _name = "NASM Identifiers" style = "Keyword" end-at-line-end = "TRUE">
  73.         <start-regex>\[</start-regex>
  74.         <end-regex>\]</end-regex>
  75.     </string>
  76.  
  77.     <pattern-item _name = "Operators" style = "Operator">
  78.         <regex>[-,:\+\*\(\)\{\}\[]|]</regex>
  79.     </pattern-item>
  80.  
  81.     <pattern-item _name = "Label" style = "Preprocessor">
  82.         <regex>^[A-Za-z_][A-Za-z_0-9]*\:</regex>
  83.     </pattern-item>
  84.  
  85.     <pattern-item _name = "Local Label" style = "Preprocessor">
  86.         <regex>.[\.A-Za-z_0-9]+\:</regex>
  87.     </pattern-item>
  88.    
  89.     <!--<pattern-item _name="dotAnything" style="def:preprocessor" case-sensitive="false">
  90.         <prefix>(?!\w)</prefix>
  91.         <regex>\.[a-zA-Z_0-9]+$</regex>
  92.     </pattern-item>-->
  93.  
  94.     <string _name = "String" style = "String" end-at-line-end = "TRUE">
  95.         <start-regex>&quot;</start-regex>
  96.         <end-regex>&quot;</end-regex>
  97.     </string>
  98.  
  99.     <pattern-item _name= "InstData Normal" style= "def:keyword" case-sensitive="false">
  100.         <regex>\b(?i:aa[adms]|adc[bwlq]?|x?add[bwlq]?|and[bwlq]?|arpl|bound[wl]?|bs[fr][wlq]?|bswap[lq]?|bt[crs]?[wlq]?|call[wlq]?|clc|cld|cli|cltd[dqw]?|clts|cmc|cmov(n?[abgl]e?|n?[ceosz]|np|p[eo]?)?[lqw]?|cmp[bwlq]?|cmps[bwdlq]?|cmpxchg[bwlq]?|cmpxchg(8|16)b|cpuid|c[lw]td[bwlq]?|daa|das|dec[bwlq]?|div[bwlq]?|enter[wl]?|esc|hlt|idiv[bwlq]?|imul[bwlq]?|in[bwlq]?|inc[bwlq]?|insd?[bwlq]?|int(\s*3|o)?|inv(d|pcid)?|invlpg|iret[dfwq]?|j(n?[abgl]e?|n?[ceosz]|np|p[eo]?)|jmp[lq]?|j[er]?cxz|[ls]ahf|lar|lcall[wlq]?|l[d-gs]s[wl]|lea[bwlq]?|leave[lwq]?|l[defgs]s|[ls][gil]dt[wl]?|ljmp[wl]?|lmsw|loadall|lods[bwdlq]?|loop(n?[ez][dw]?)?|loopw|lret|lsl|ltr|mov((s?(b[lwq]?|w[lq]?|lq?|q)?)|(z?(b[lwq]|w[lq]|l|q)))?|movd|movabs[bwlq]?A?|movs(x?d|w)|mov[sz]x[bwl]?|movzb|mul[bwlq]?|neg[bwlq]?|nop|not[bwlq]?|x?or[bwlq]?|out[bwlq]?|outs[bdwl]?|pop[bwlq]?|popal?|pop[af]d|popf[wlq]?|push[bwlq]?|pushal?|push[af]d|pushf[wlq]?|rc[lr][bwlq]?|(rd|wr)msr|rdtscp?|ret[fw]?[ql]?|ro[lr][bwlq]?|rsm|sa[lr][bwlq]?|sbb[bwlq]?|scas[bwdlq]?|set(n?[abgl]e?|n?[ceosz]|np|p[eo]?)b?|sh[lr]d?[bwlq]?|smsw|stc|std|sti|stos[bdqlw]?|str|sub[bwlq]?|swapgs|syscall|sysret|sysenter|sysexit|test[bwlq]?|ud1|ud2[ab]?|ver[rw]|fwait|wbinvd|xchg[bwlq]?A?|x[gs]etbv|xlatb?|xsave[cs]?(64)?|xrstors?(64)?)(?!:)\b</regex>
  101.     </pattern-item>
  102.  
  103.     <pattern-item _name= "InstData Conversions" style= "def:keyword" case-sensitive="false">
  104.         <regex>\b(?i:cbw|cdqe?|cwde?|cdo|cqo|cbtw|cwt[ld]|clt[dq]|cqto)(?!:)\b</regex>
  105.     </pattern-item>
  106.  
  107.     <pattern-item _name= "InstData prefixes" style= "def:keyword" case-sensitive="false">
  108.         <regex>\b(?i:rep(n?[ez])?|(addr|data)(16|32)|lock|wait|rex(64(xyz)?)?)(?!:)\b</regex>
  109.     </pattern-item>
  110.  
  111.     <pattern-item _name= "InstData mmx" style= "def:keyword" case-sensitive="false">
  112.         <regex>b(?i:emms|movdq|mov[dq]b|pack(ssdw|[us]swb)|padd([bdw]|u?s[bw])|pandn?|pcmp(eq|gt)[bdw]|pmaddwd|pmul[hl]w|psll[dqw]|psr(a[dw]|l[dqw])|psub([bdw]|u?s[bw])|punpck[hl](bw|dq|wd)|px?or|rdpmc)(?!:)\b</regex>
  113.     </pattern-item>
  114.  
  115.     <pattern-item _name= "InstData sse" style= "def:keyword" case-sensitive="false">
  116.         <regex>\b(?i:maskmovq|movntps|movntq|prefetcht[012]|prefetchnta|sfence)(?!:)\b</regex>
  117.     </pattern-item>
  118.  
  119.     <pattern-item _name= "InstData sse simd" style= "def:keyword" case-sensitive="false">
  120.         <regex>\b(?i:add[sp]s|cmp[ps]s|u?comiss|cvt(p(i2ps|s2pi)|s(i2ss|s2sd)q?|t(ps2pi|s[sd]2siq?))|div[ps]s|ldmxcsr|(max|min)[ps]s|mov(a|hl?|lh?|msk|nt)ps|v?mov(s|up)s|mul[ps]s|rcp[ps]s|r?sqrt[ps]s|shufps|stmxcsr|sub[ps]s|unpck[hl]ps|andn?ps|x?orps|pavg[bw]|pextrw|pminsrw|p(max|min)(sw|ub)|pmovmskb|pmulhuw|psadbw|pshufw)(?!:)\b</regex>
  121.     </pattern-item>
  122.  
  123.     <pattern-item _name= "InstData sse2" style= "def:keyword" case-sensitive="false">
  124.         <regex>\b(?i:clflush|[lm]fence|maskmovdqu|v?movnt(dq|i[lw]?|pd)|pause)(?!:)\b</regex>
  125.     </pattern-item>
  126.  
  127.     <pattern-item _name= "InstData sse2 simd" style= "def:keyword" case-sensitive="false">
  128.         <regex>\b(?i:v?add[ps][ds]|andn?pd|bzhi[wl]?|cmp[ps]d|u?comisd|cvtdq2p[ds]|cvtt?pd2(dq|pi)|cvtpd2ps|cvtp[is]2pd|cvtt?ps2dq|cvtt?sd2s[is]|cvts[is]2sd|div[ps][ds]|v?(max|min)[ps][ds]|v?mov[ahlu]pd|v?movmskpd|v?mul[ps]d|x?orpd|shufpd|sqrt[ps]d|sub[ps]d|unpck[hl]pd|unpcklpd|movdq(2q|[au])|movq2dq|paddq|psubq|pmuludq|pshuf([hl]w|d)|ps[lr]ldq|punpck[hl]qdq)(?!:)\b</regex>
  129.     </pattern-item>
  130.  
  131.     <pattern-item _name= "InstData sse3" style= "def:keyword" case-sensitive="false">
  132.         <regex>\b(?i:lddqu|monitor|mwait)(?!:)\b</regex>
  133.     </pattern-item>
  134.  
  135.     <pattern-item _name= "InstData sse3 simd" style= "def:keyword" case-sensitive="false">
  136.         <regex>\b(?i:addsubp[ds]|haddp[ds]|hsubp[ds]|v?mov(d|s[hl])dup|psign[bdw]|pshufb|pmulhrsw|pmaddubsw|phsub(s?w|d)|phadd(s?w|d)|palignr|pabs[bdw])(?!:)\b</regex>
  137.     </pattern-item>
  138.  
  139.     <pattern-item _name= "InstData sse4" style= "def:keyword" case-sensitive="false">
  140.         <regex>\b(?i:v?mpsadbw|phminposuw|pmul(ld|dq)|dpp[ds]|blendv?p[ds]|pblendvb|pblendw|pswapd|p(max|min)(s[bd]|u[wd])|roundp[ds]|rounds[ds]|insertps|pinsr[bwdq]|extractps|pextr[bdq]|pmov[sz]xb[dwq]|pmov[sz]xw[dq]|pmov[sz]xdq|pmov[sz]x|ptest|pcmpeqq|packusdw|v?movntdqa|lzcnt|popcnt|extrq|insertq|movnts[ds]|crc32|pcmp[ei]str[im]|pcmpgtq)(?!:)\b</regex>
  141.     </pattern-item>
  142.  
  143.     <pattern-item _name= "InstData x87" style= "def:keyword" case-sensitive="false">
  144.         <regex>\b(?i:f(2xm1|abs|add[psl]?|bld|b?stp|chs|n?clex|fcomp?l|u?comp{0,2}|decstp|n?disi|divr?[psl]?|n?eni|nsetpm|rstpm|free(p|\s*ST)?|iadd[sl]?|icomp?|idivr?[sl]?|ildl?|imul[sl]?|incstp|n?init|ist((pl?|l)|tp)?|isubr?[sl]?|ld[1slt]?|ldcw|ldenv[dw]?|ldl2[et]|ldl[gn]2|ldpi|ldz|mul[psl]?|nop|n?stenv[wd]?|n?stsw|pa?tan|prem1?|rndint|rstor[dw]?|n?savew?|scale|sqrt|st(p?[slt])|n?stcw|subr?[psl]?|tst|wait|xam|xch|xtract|yl2x(p1)?|setpm|cos|saved|sin(cos)?|cmovn?b?e?|cmovn?u|u?comip?|xrstor(64)?|xsave(64)?))(?!:)\b</regex>
  145.     </pattern-item>
  146.  
  147.     <pattern-item _name= "InstData aes" style= "def:keyword" case-sensitive="false">
  148.         <regex>\b(?i:v?aes(en|de)c(last)?|v?aeskeygenassist|aesimc)(?!:)\b</regex>
  149.     </pattern-item>
  150.  
  151.     <pattern-item _name= "InstData sha" style= "def:keyword" case-sensitive="false">
  152.         <regex>\b(?i:sha((1|256)msg[12]|1nexte|1rnds4|256rnds2))(?!:)\b</regex>
  153.     </pattern-item>
  154.  
  155.     <pattern-item _name="InstData bmi1" style="def:keyword" case-sensitive="false">
  156.         <regex>\b(?i:andn[lq]?|bextr[lq]?|blsi[lq]?|blsmsk[lq]?|blsr[dlq]?|tzcnt[wlq]?)(?!:)\b</regex>
  157.     </pattern-item>
  158.  
  159.     <pattern-item _name="InstData bmi2" style="def:keyword" case-sensitive="false">
  160.         <regex>\b(?i:mulx[lq]?|pdep[lq]?|pext[lq]?|rorx[lq]?|s(h[lr]|ar)x)(?!:)\b</regex>
  161.     </pattern-item>
  162.  
  163.     <pattern-item _name="InstData adx" style="def:keyword" case-sensitive="false">
  164.         <regex>\b(?i:ad[co]x)l?(?!:)\b</regex>
  165.     </pattern-item>
  166.  
  167.     <pattern-item _name="InstData clmul" style="def:keyword" case-sensitive="false">
  168.         <regex>\b(?i:pclmulqdq)(?!:)\b</regex>
  169.     </pattern-item>
  170.  
  171.     <pattern-item _name="InstData prefetchwt" style="def:keyword" case-sensitive="false">
  172.         <regex>\b(?i:prefetchw(t1)?)(?!:)\b</regex>
  173.     </pattern-item>
  174.  
  175.     <pattern-item _name="InstData amd3DNow" style="def:keyword" case-sensitive="false">
  176.         <regex>\b(?i:prefetch|femms|pavgusb|pf2id|pfacc|pfadd|pfcmpeq|pfcmpge|pfcmpgt|pfmax|pfmin|pfmul|pfrcp|pfrcpit[12]|pfrsqit1|pfrsqrt|pfsubr?|pi2fd|pmulhrw)\b</regex>
  177.     </pattern-item>
  178.  
  179.     <pattern-item _name="InstData amdnops" style="def:keyword" case-sensitive="false">
  180.         <regex>\b(nop[lwq])</regex>
  181.     </pattern-item>
  182.  
  183.     <pattern-item _name="InstData clflushopt" style="def:keyword" case-sensitive="false">
  184.         <regex>\b(?i:clflushopt)(?!:)\b</regex>
  185.     </pattern-item>
  186.  
  187.     <pattern-item _name="InstData rdseed" style="def:keyword" case-sensitive="false">
  188.         <regex>\b(?i:rdseed)(?!:)\b</regex>
  189.     </pattern-item>
  190.  
  191.     <pattern-item _name="InstData mpx" style="def:keyword" case-sensitive="false">
  192.         <regex>\b(?i:bnd(c[uln]|mk|stx))(?!:)\b</regex>
  193.     </pattern-item>
  194.  
  195.     <pattern-item _name="InstData fsgsbase" style="def:keyword" case-sensitive="false">
  196.         <regex>\b(?i:(rd|wr)[fg]sbase)(?!:)\b</regex>
  197.     </pattern-item>
  198.  
  199.     <pattern-item _name="InstData rdrand" style="def:keyword" case-sensitive="false">
  200.         <regex>\b(?i:rdrand)(?!:)\b</regex>
  201.     </pattern-item>
  202.  
  203.     <pattern-item _name="InstData AVX" style="def:keyword" case-sensitive="false">
  204.         <regex>\b(?i:vadd(sub)?p[ds]|vandn?p[ds]|vblendv?p[ds]|vbroadcastf128|vbroadcasts[ds]|vroundp[ds]|vcmp[ps][ds]|vcvtdq2p[ds]|vcvtpd2(dq|ps)[xy]?|vcvtps2(dq|pd)|vcvttpd2dq[xy]?|vcvttps2dq|vdivp[ds]|vdpps|vextractf128|vh(add|sub)p[ds]|vinsertf128|vlddqu|vmovap[ds]|vmovd(q[au])?|vmovup[ds]|vmaskmovp[ds]|v(max|min)p[ds]|vmov(d|s[hl])?dup|vmovmskp[ds]|vmulp[ds]|vx?orp[ds]|vpermilp[ds]|vperm2f128|vrcpps|vrsqrtps|vpxor|vshufp[ds]|vsqrtp[ds]|vmovntp[ds]|vmovntdq|vsubp[ds]|vtestp[ds]|vptest|vunpck[lh]p[ds]|vzero(all|upper)|vpcmp[ei]str[im])(?!:)\b</regex>
  205.     </pattern-item>
  206.  
  207.     <pattern-item _name="InstData AVX2" style="def:keyword" case-sensitive="false">
  208.         <regex>\b(?i:vpabs[bdw]|vpadd[bdqw]|vpaddu?s[bw]|vpalignr|vpandn?|vpavg[bw]|vpblend[dw]|vpblendvb|vpbroadcast[bdqw]|movddup|vbroadcasts[ds]|vbroadcasti128|vps[lr]ldq|vpcmp(eq|gt)[bdqw]|vpmovsx(wd|wq|dq|bw)|v(extract|insert)i128|vperm2i128|vph(add|sub)(d|s?w)|vpmaskmov[dq]|vpmovmskb|vpor|vpsign[bdw]|vp(ext|ins)rq|vphminposuw|vaesimc)(?!:)\b</regex>
  209.     </pattern-item>
  210.  
  211.     <pattern-item _name="InstData AVX512" style="def:keyword" case-sensitive="false">
  212.         <regex>\b(?i:vpabs[bdqw]|vpandn?[dq]|vpadd[bdwq]|valignq|vpblendm[bdqw]|vbroadcast[if]32x[248]|vbroadcast[if]64x[24]|vpbroadcastm(b2q|w2d)|vpcmpu?[bdqw]|vcomis[ds]|vpcompress[dq]|vcompressp[ds]|vpconflict[dq]|vcvtqq2ps[xy]?|vcvtqq2pd|vcvtudq2p[ds]|vcvtuqq2pd|vcvtuqq2ps[xy]|vcvtsi2sd|vcvtsi2ssl?|vcvtt?p[ds]2u?[dq]q|vcvtt?sd2(u?si|s[is])|vcvtss2u?si|vcvtss2s[di]|vcvtusi2s[sd]l?|vpmov[sz]x(w[dq]|dq|b[wdq])|vpmovu?s?(wb|d[wb]|q[wdb])|vcvtts[ds]2u?si|vdbpsadbw|vdiv[ps][ds]|vexp2p[ds]|vpexpand[dq]|vexpandp[ds]|v(extract|insert)[fi]32x[48]|v(extract|insert)[if]64x[24]|vfixupimm[ps][ds]|vfpclassp[ds][xyz]?|vfpclasss[ds]|vgetexp[ps][ds]|vgetmant[ps][ds]|vp?(gather|scatter)[dq](ps|[qd]|pd)|kandn?w|kmovw|knotw|k(xn?)?orw|kortestw|kunpck(bw|dq|wd)|vmovq|vmovdqa(32|64)|vmovs[ds]|vmovdqu(8|16|32|64)|vplzcnt[dq]|vpmadd(wd|52[hl]uq|ubsw)|vp(max|min)[su][bdqw]|vpmov[bdqw]2m|vpmovm2[bdqw]|vpmulu?dq|vmulss|vpmulhu?w|vpmulhrsw|vpmull[dqw]|vpmultishiftqb|vpor[dq]|vpack[us]s(wb|dw)|vperm[bdqw]|vpermp[ds]|vperm[it]2[bdqw]|vperm[it]2p[ds]|v(gather|scatter)pf[01][dq]p[ds]|v(range|reduce)[ps][ds]|vrcp(14|28)[ps][ds]|vpro[lr]v?[dq]|vrndscale[ps][ds]|vrsqrt(14|28)[ps][ds]|vpsadbw|vscalef[ps][ds]|vpxor[dq]|vpshuf[bd]|vshuf[if]32x4|vshuf[if]64x2|vpshuf[hl]w|vpsllv?[wdq]|vsqrts[ds]|vpsr[al]v?[dqw]|vpsub[bdqw]|vsubs[ds]|vpsubu?s[bw]|vpternlog[dq]|vptestn?m[bdqw]|vpunpck[hl](wd|q?dq|bw)|vpxord|vucomis[ds]|vcvtpd2udq[xy]|vpclmul[lh]q[lh]qdq)(?!:)\b</regex>
  213.     </pattern-item>
  214.  
  215.     <pattern-item _name="InstData AVX512BW" style="def:keyword" case-sensitive="false">
  216.         <regex>\b(?i:k(andn?|or|xn?or|not|ortest|test|shift[rl]w?|mov[qd]|add)[dq]|cmp(eq|le|lt|neq|nle[p]s|nlt|ord|unord)[ps]s)(?!:)\b</regex>
  217.     </pattern-item>
  218.  
  219.     <pattern-item _name="InstData AVX512DQ" style="def:keyword" case-sensitive="false">
  220.         <regex>\b(?i:k(andn?b|orb|xn?orb|notb|ortestb|test[bw]|shift[rl]b|movb|add[bw])[bw])(?!:)\b</regex>
  221.     </pattern-item>
  222.  
  223.     <pattern-item _name="InstData F16c" style="def:keyword" case-sensitive="false">
  224.         <regex>\b(?i:vcvt(ph2ps|ps2ph))(?!:)\b</regex>
  225.     </pattern-item>
  226.  
  227.     <pattern-item _name="InstData FMA" style="def:keyword" case-sensitive="false">
  228.         <regex>\b(?i:vfn?m((add(sub)?|sub(add)?)((132|213|231)?[ps][ds])))(?!:)\b</regex>
  229.     </pattern-item>
  230.  
  231.     <pattern-item _name="InstData KNC" style="def:keyword" case-sensitive="false">
  232.         <regex>\b(?i:vpandn?[dq]|vpad[cd]d|vaddn?p[ds]|vpaddset[cs]d|vaddsetsps|valignd|vpblendm[dq]|vblendmp[ds]|clevict[01]|vpcmpu?d)(?!:)\b</regex>
  233.     </pattern-item>
  234.  
  235.     <pattern-item _name="InstData RTM" style="def:keyword" case-sensitive="false">
  236.         <regex>\b(?i:x(abort|begin|end|test))(?!:)\b</regex>
  237.     </pattern-item>
  238.  
  239.     <pattern-item _name="InstData HLE" style="def:keyword" case-sensitive="false">
  240.         <regex>\b(?i:x(acquire|release|test))(?!:)\b</regex>
  241.     </pattern-item>
  242.  
  243.     <pattern-item _name="InstData xsave" style="def:keyword" case-sensitive="false">
  244.         <regex>\b(?i:xsaveopt(64)?)(?!:)\b</regex>
  245.     </pattern-item>
  246.  
  247.     <pattern-item _name="InstData crc32" style="def:keyword" case-sensitive="false">
  248.         <regex>\b(?i:crc32[bwlq])(?!:)\b</regex>
  249.     </pattern-item>
  250.  
  251.     <pattern-item _name="InstData miscellaneous" style="def:keyword" case-sensitive="false">
  252.         <regex>\b(?i:xstorerng|vmxoff|getsec|vpclmulqdq|movbe|invept|invvpid|vmload|blcfill|v(ld|st)mxcsr)(?!:)\b</regex>
  253.     </pattern-item>
  254.  
  255.     <!-- End of instructions -->
  256.  
  257.     <pattern-item _name= "Line Comment workaround" style= "def:comment">
  258.         <regex>^\s*##.*$</regex>
  259.     </pattern-item>
  260.  
  261.     <pattern-item _name="Preprocessor C-style" style= "def:preprocessor">
  262.         <regex>^\s*(?&lt;!#)(#(#(?!#)|(un)?assert|define|elif|else|endif|error|ident|(ifn?|un)?def|if|import|include(_next)?|line|pragma|sccs|warning))|__(FILE|LINE|DATE|TIME(STAMP)?|STDC_(VERSION|HOSTED)?|GNUC|GNUC_MINOR|GNUC_PATCHLEVEL|VERSION|STRICT_ANSI|BASE_FILE|INCLUDE_LEVEL|OPTIMIZE|OPTIMIZE_SIZE|NO_INLINE|CHAR_UNSIGNED|CHAR_BIT|INT_SHORT|SCHAR_MAX|SHRT_MAX|INT_MAX|LONG_MAX|LONG_LONG_MAX|REGISTER_PREFIX|USER_LABEL_PREFIX)__\b</regex>
  263.     </pattern-item>
  264.  
  265.     <pattern-item _name= "Line Comment" style= "def:comment" end-at-line-end="true">
  266.         <regex>(;).*</regex>
  267.     </pattern-item>
  268.  
  269.     <pattern-item _name= "CPP Line Comment" style= "def:comment" end-at-line-end="true">
  270.         <regex>(//).*</regex>
  271.     </pattern-item>
  272.  
  273.     <block-comment _name= "Block Comment" style= "def:comment">
  274.         <start-regex>/\*</start-regex>
  275.         <end-regex>\*/</end-regex>
  276.     </block-comment>
  277.  
  278.     <!--<pattern-item _name= "Line Comment single slash" style= "def:comment">
  279.         <regex>^[ \t]*/.*$</regex>
  280.     </pattern-item>-->
  281.  
  282.     <!-- <pattern-item _name= "ImOperand" style= "def:keyword">
  283.         <regex>\$[A-Za-z0-9_\-\+]*</regex>
  284.     </pattern-item> -->
  285.  
  286.     <pattern-item _name= "Label" style= "Data Type">
  287.         <regex>((\s+|;|^)(([A-Za-z$_.0-9]|C-[BA])+[:]))</regex>
  288.     </pattern-item>
  289.  
  290.     <pattern-item _name= "Preprocessor Definitions" style= "def:preprocessor" case-sensitive="false">
  291.         <regex>(?&lt;!\w)(?i:\.(allow_index_reg|app-file|asci[iz]|b?align|bundle_(align_mode|(un)?lock)|bss|[42]?byte|cfi_(sections|startproc|endproc|personality|lsda|def_cfa|def_cfa_register|def_cfa_offset|adjust_cfa_offset|offset|rel_offset|register|restore|undefined|same_value|remember_state|return_column|signal_frame|window_save|escape|val_encoded_addr)|code(16(gcc)?|32|64)|data|def|desc|dim|double|eject|else(if)?|end([ei]f|func|[mr])?|exitm|equ(iv)?|eqv|err(or)?|extern|fail|file|fill|t?float|globa?l|hidden|hword|ident|if(def|eqs?|[gl][et]|n?[bc]|n(ot)?def|nes?)?|incbin|include|int(ernal)?|irpc?|l?comm|lflags|linkonce|loc(_mark_labels|al)?|mri|(no)?list|long|macro|(no)?altmacro|octa|operand_check|org|p2align[wl]?|(pop|push)?section|previous|print|protected|p?size|purgem|quad|rept|sbttl|scl|set|secrel32|short|single|skip|sleb128|space|sse_check|stab[dns]|string(8|16|32|64)?|struct|subsection|symver|tag|text|title|type|uleb128|val(ue)?|version|vtable_(entry|inherit)|warning|weak(ref)?|word|zero|att_syntax(\s*prefix)?)\b)|(LOCAL\b)</regex>
  292.     </pattern-item>
  293.  
  294.     <pattern-item _name= "Floating Point Number" style= "Floating Point">
  295.         <regex>(?&lt;!\w)(?i)0[DFT][+-]?(\d+(\.\d*)|\.\d+)(e[+-]?[0-9]+)?</regex>
  296.     </pattern-item>
  297.  
  298.     <pattern-item _name= "Floating Point Number Literal" style="Base-N Integer">
  299.         <regex>(?&lt;!\w)[$](?i)0[DFT][+-]?(\d+(\.\d*)|\.\d+)(e[+-]?[0-9]+)?</regex>
  300.     </pattern-item>
  301.  
  302.     <pattern-item _name= "Hex Number" style= "Base-N Integer">
  303.         <regex>(?&lt;!\w)[-+~]?(?i)(0x)[A-F0-9]+\b</regex>
  304.     </pattern-item>
  305.  
  306.     <pattern-item _name= "Hex Number Literal" style="Base-N Integer">
  307.         <regex>(?&lt;!\w)[$][-+~]?(?i)(0x)[A-F0-9]+\b</regex>
  308.     </pattern-item>
  309.  
  310.     <pattern-item _name= "Bin Number" style= "Base-N Integer">
  311.         <regex>(?&lt;!\w)[-+~]?(0[Bb])[01]+\b</regex>
  312.     </pattern-item>
  313.  
  314.     <pattern-item _name= "Bin Number Literal" style="Base-N Integer">
  315.         <regex>(?&lt;!\w)[$][-+~]?(0[Bb])[01]+\b</regex>
  316.     </pattern-item>
  317.  
  318.     <pattern-item _name= "Oct Number" style= "Base-N Integer">
  319.         <regex>(?&lt;!\w)[-+~]?0[0-7]*\b</regex>
  320.     </pattern-item>
  321.  
  322.     <pattern-item _name= "Oct Number Literal" style="Base-N Integer">
  323.         <regex>(?&lt;!\w)[$][-+~]?0[0-7]*\b</regex>
  324.     </pattern-item>
  325.  
  326.     <pattern-item _name= "Decimal" style= "Decimal">
  327.         <regex>(?&lt;!\w)[-+~]?(\d+(\.\d*)?|\.\d+)(e[+-]?[0-9]+)?(?=[-\s,;&lt;&gt;/+~$%()]|$)</regex>
  328.     </pattern-item>
  329.  
  330.     <pattern-item _name= "Decimal Literal" style="Base-N Integer">
  331.         <regex>(?&lt;!\w)[$][-+~]?(\d+(\.\d*)?|\.\d+)(e[+-]?[0-9]+)?(?=[-\s,;&lt;&gt;/+~$%()]|$)</regex>
  332.     </pattern-item>
  333.  
  334.     <pattern-item _name= "Character Constant" style= "String">
  335.         <regex>(?&lt;!\w)[$]?(?i)'([!-\[\]-~]|\\([\\bfnrt]|x[0-9a-f]{1,2}|[0-9]{3}))(?!')</regex>
  336.     </pattern-item>
  337.    
  338.     <pattern-item _name = "Decimal XXX" style = "Decimal">
  339.         <regex>\b[0-9][0-9a-fA-F]*([Uu]([Ll]|LL|ll)?|([Ll]|LL|ll)[Uu]?)?(b|d|h|o|O|B|D|H)?\b</regex>
  340.     </pattern-item>
  341.  
  342.     <pattern-item _name = "Floating Point Number XXX" style = "Floating Point">
  343.         <regex>\b([0-9]+[Ee][-]?[0-9]+|([0-9]*\.[0-9]+|[0-9]+\.)([Ee][-]?[0-9]+)?)[fFlL]?</regex>
  344.     </pattern-item>
  345.  
  346.     <pattern-item _name = "Hex Number XXX" style = "Base-N Integer">
  347.         <regex>\b0[xX][0-9a-fA-F]+([Uu]([Ll]|LL|ll)?|([Ll]|LL|ll)[Uu]?)?\b</regex>
  348.     </pattern-item>
  349.    
  350.     <pattern-item _name= "String" style= "String">
  351.         <regex>(".*?(?&lt;![^\\][\\])"|&lt;.*?(?&lt;![^\\][\\])&gt;)</regex>
  352.     </pattern-item>
  353.  
  354.     <!--<pattern-item _name= "Registers" style= "Data Type" case-sensitive="FALSE">
  355.         <regex>[%$]?\s*(?i:[er]?[a-d]x|[a-d][lh]|[re]?s[ip]|s[ip]l|[re]?di|dil|[re]?bp|bpl|[c-gs]s|[re]?ip|e?flags|db([0236-9]|1[0-5]?)|tr[0267]?|st(?!\(([89]|\d{2,})\))|esp[0-2]|[xy]?mm([02-9]|1[0-5]?)|zmm([4-9]|[12][0-9]?|3[10]?)|xmcrt|[gli]dtr|[cd]r([02-9]|1[0-5]?)|msr|r([89]|1[0-5])[dwb]?|[cst]w|fp_([id]p|[cd]s|opc)|mxcsr|msw)\b</regex>
  356.     </pattern-item>-->
  357.     <keyword-list _name="Registers-" style="Data Type" case-sensitive="false">
  358.         <keyword>[%$]?\s*([er]?[a-d]x|[a-d][lh]|[re]?s[ip]|s[ip]l|[re]?di|dil|[re]?bp|bpl|[c-gs]s|[re]?ip|e?flags|db([0236-9]|1[0-5]?)|tr[0267]?|st(?!\(([89]|\d{2,})\))|esp[0-2]|[xy]?mm([02-9]|1[0-5]?)|zmm([4-9]|[12][0-9]?|3[10]?)|xmcrt|[gli]dtr|[cd]r([02-9]|1[0-5]?)|msr|r([89]|1[0-5])[dwb]?|[cst]w|fp_([id]p|[cd]s|opc)|mxcsr|msw)</keyword>
  359.     </keyword-list>
  360.  
  361. </language>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement