1" Vim syntax file for the D programming language (version 1.076 and 2.069). 2" 3" Language: D 4" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com> 5" Last Change: 2016 Feb 2 6" Version: 0.28 7" 8" Contributors: 9" - Jason Mills: original Maintainer 10" - Kirk McDonald 11" - Tim Keating 12" - Frank Benoit 13" - Shougo Matsushita 14" - Ellery Newcomer 15" - Steven N. Oliver 16" - Sohgo Takeuchi 17" - Robert Clipsham 18" - Petar Kirov 19" 20" Please submit bugs/comments/suggestions to the github repo: 21" https://github.com/JesseKPhillips/d.vim 22" 23" Options: 24" d_comment_strings - Set to highlight strings and numbers in comments. 25" 26" d_hl_operator_overload - Set to highlight D's specially named functions 27" that when overloaded implement unary and binary operators (e.g. opCmp). 28" 29" d_hl_object_types - Set to highlight some common types from object.di. 30 31" Quit when a syntax file was already loaded 32if exists("b:current_syntax") 33 finish 34endif 35 36" Support cpoptions 37let s:cpo_save = &cpo 38set cpo&vim 39 40" Set the current syntax to be known as d 41let b:current_syntax = "d" 42 43" Keyword definitions 44" 45syn keyword dExternal contained import module 46syn keyword dAssert assert 47syn keyword dConditional if else switch 48syn keyword dBranch goto break continue 49syn keyword dRepeat while for do foreach foreach_reverse 50syn keyword dBoolean true false 51syn keyword dConstant null 52syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__ 53syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__ 54syn keyword dConstant __MODULE__ __FUNCTION__ __PRETTY_FUNCTION__ 55syn keyword dTypedef alias typedef 56syn keyword dStructure template interface class struct union 57syn keyword dEnum enum 58syn keyword dOperator new delete typeof typeid cast align is 59syn keyword dOperator this super 60if exists("d_hl_operator_overload") 61 syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd 62 syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod 63 syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr 64 syn keyword dOpOverload opShr_r opUShr opUShr_r opCat 65 syn keyword dOpOverload opCat_r opEquals opCmp 66 syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign 67 syn keyword dOpOverload opDivAssign opModAssign opAndAssign 68 syn keyword dOpOverload opOrAssign opXorAssign opShlAssign 69 syn keyword dOpOverload opShrAssign opUShrAssign opCatAssign 70 syn keyword dOpOverload opIndex opIndexAssign opIndexOpAssign 71 syn keyword dOpOverload opCall opSlice opSliceAssign opSliceOpAssign 72 syn keyword dOpOverload opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r 73 syn keyword dOpOverload opIn opIn_r opPow opDispatch opStar opDot 74 syn keyword dOpOverload opApply opApplyReverse opDollar 75 syn keyword dOpOverload opUnary opIndexUnary opSliceUnary 76 syn keyword dOpOverload opBinary opBinaryRight 77endif 78 79syn keyword dType byte ubyte short ushort int uint long ulong cent ucent 80syn keyword dType void bool Object 81syn keyword dType float double real 82syn keyword dType ushort int uint long ulong float 83syn keyword dType char wchar dchar string wstring dstring 84syn keyword dType ireal ifloat idouble creal cfloat cdouble 85syn keyword dType size_t ptrdiff_t sizediff_t equals_t hash_t 86if exists("d_hl_object_types") 87 syn keyword dType Object Throwable AssociativeArray Error Exception 88 syn keyword dType Interface OffsetTypeInfo TypeInfo TypeInfo_Typedef 89 syn keyword dType TypeInfo_Enum TypeInfo_Pointer TypeInfo_Array 90 syn keyword dType TypeInfo_StaticArray TypeInfo_AssociativeArray 91 syn keyword dType TypeInfo_Function TypeInfo_Delegate TypeInfo_Class 92 syn keyword dType ClassInfo TypeInfo_Interface TypeInfo_Struct 93 syn keyword dType TypeInfo_Tuple TypeInfo_Const TypeInfo_Invariant 94 syn keyword dType TypeInfo_Shared TypeInfo_Inout MemberInfo 95 syn keyword dType MemberInfo_field MemberInfo_function ModuleInfo 96endif 97syn keyword dDebug deprecated unittest invariant 98syn keyword dExceptions throw try catch finally 99syn keyword dScopeDecl public protected private export package 100syn keyword dStatement debug return with 101syn keyword dStatement function delegate __ctfe mixin macro __simd 102syn keyword dStatement in out body 103syn keyword dStorageClass contained in out scope 104syn keyword dStorageClass inout ref lazy pure nothrow 105syn keyword dStorageClass auto static override final abstract volatile 106syn keyword dStorageClass __gshared __vector 107syn keyword dStorageClass synchronized shared immutable const lazy 108syn keyword dIdentifier _arguments _argptr __vptr __monitor 109syn keyword dIdentifier _ctor _dtor __argTypes __overloadset 110syn keyword dScopeIdentifier contained exit success failure 111syn keyword dTraitsIdentifier contained isAbstractClass isArithmetic 112syn keyword dTraitsIdentifier contained isAssociativeArray isFinalClass 113syn keyword dTraitsIdentifier contained isPOD isNested isFloating 114syn keyword dTraitsIdentifier contained isIntegral isScalar isStaticArray 115syn keyword dTraitsIdentifier contained isUnsigned isVirtualFunction 116syn keyword dTraitsIdentifier contained isVirtualMethod isAbstractFunction 117syn keyword dTraitsIdentifier contained isFinalFunction isStaticFunction 118syn keyword dTraitsIdentifier contained isOverrideFunction isTemplate 119syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember 120syn keyword dTraitsIdentifier contained identifier getAliasThis 121syn keyword dTraitsIdentifier contained getAttributes getFunctionAttributes getMember 122syn keyword dTraitsIdentifier contained getOverloads getPointerBitmap getProtection 123syn keyword dTraitsIdentifier contained getVirtualFunctions getVirtualIndex 124syn keyword dTraitsIdentifier contained getVirtualMethods getUnitTests 125syn keyword dTraitsIdentifier contained parent classInstanceSize allMembers 126syn keyword dTraitsIdentifier contained derivedMembers isSame compiles 127syn keyword dPragmaIdentifier contained inline lib mangle msg startaddress GNU_asm 128syn keyword dExternIdentifier contained C C++ D Windows Pascal System Objective-C 129syn keyword dAttribute contained safe trusted system 130syn keyword dAttribute contained property disable nogc 131syn keyword dVersionIdentifier contained DigitalMars GNU LDC SDC D_NET 132syn keyword dVersionIdentifier contained X86 X86_64 ARM PPC PPC64 IA64 MIPS MIPS64 Alpha 133syn keyword dVersionIdentifier contained SPARC SPARC64 S390 S390X HPPA HPPA64 SH SH64 134syn keyword dVersionIdentifier contained linux Posix OSX FreeBSD Windows Win32 Win64 135syn keyword dVersionIdentifier contained OpenBSD BSD Solaris AIX SkyOS SysV3 SysV4 Hurd 136syn keyword dVersionIdentifier contained Cygwin MinGW 137syn keyword dVersionIdentifier contained LittleEndian BigEndian 138syn keyword dVersionIdentifier contained D_InlineAsm_X86 D_InlineAsm_X86_64 139syn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC 140syn keyword dVersionIdentifier contained unittest assert none all 141 142syn cluster dComment contains=dNestedComment,dBlockComment,dLineComment 143 144" Highlight the sharpbang 145syn match dSharpBang "\%^#!.*" display 146 147" Attributes/annotations 148syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute 149 150" Version Identifiers 151syn match dVersion "\<version\>" 152syn match dVersion "\<version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier 153 154" Scope Identifiers 155syn match dStatement "\<scope\>" 156syn match dStatement "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier 157 158" Traits Statement 159syn match dStatement "\<__traits\>" 160syn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier 161 162" Pragma Statement 163syn match dPragma "\<pragma\>" 164syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+6 contains=dPragmaIdentifier 165 166" Necessary to highlight C++ in extern modifiers. 167syn match dExternIdentifier "C\(++\)\?" contained 168 169" Extern Identifiers 170syn match dExternal "\<extern\>" 171syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier 172 173" Make import a region to prevent highlighting keywords 174syn region dImport start="\<import\_s" end=";" contains=dExternal,@dComment 175 176" Make module a region to prevent highlighting keywords 177syn region dImport start="\<module\_s" end=";" contains=dExternal,@dComment 178 179" dTokens is used by the token string highlighting 180syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean 181syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload 182syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement 183syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum 184syn cluster dTokens add=dParenString,dBrackString,dAngleString,dCurlyString 185syn cluster dTokens add=dTokenString,dDelimString,dHereString 186 187" Create a match for parameter lists to identify storage class 188syn region paramlist start="(" end=")" contains=@dTokens 189 190" Labels 191" 192" We contain dScopeDecl so public: private: etc. are not highlighted like labels 193syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum 194syn keyword dLabel case default 195 196syn cluster dTokens add=dUserLabel,dLabel 197 198" Comments 199" 200syn match dCommentError display "\*/" 201syn match dNestedCommentError display "+/" 202 203syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX 204syn match dCommentStar contained "^\s*\*[^/]"me=e-1 205syn match dCommentStar contained "^\s*\*$" 206syn match dCommentPlus contained "^\s*+[^/]"me=e-1 207syn match dCommentPlus contained "^\s*+$" 208if exists("d_comment_strings") 209 syn region dBlockCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell 210 syn region dNestedCommentString contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell 211 syn region dLineCommentString contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell 212endif 213 214syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,dCommentStartError,@Spell fold 215syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold 216syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell 217 218hi link dLineCommentString dBlockCommentString 219hi link dBlockCommentString dString 220hi link dNestedCommentString dString 221hi link dCommentStar dBlockComment 222hi link dCommentPlus dNestedComment 223 224syn cluster dTokens add=dBlockComment,dNestedComment,dLineComment 225 226" /+ +/ style comments and strings that span multiple lines can cause 227" problems. To play it safe, set minlines to a large number. 228syn sync minlines=200 229" Use ccomment for /* */ style comments 230syn sync ccomment dBlockComment 231 232" Characters 233" 234syn match dSpecialCharError contained "[^']" 235 236" Escape sequences (oct,specal char,hex,wchar, character entities \&xxx;) 237" These are not contained because they are considered string literals. 238syn match dEscSequence "\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)" 239syn match dEscSequence "\\&[^;& \t]\+;" 240syn match dCharacter "'[^']*'" contains=dEscSequence,dSpecialCharError 241syn match dCharacter "'\\''" contains=dEscSequence 242syn match dCharacter "'[^\\]'" 243 244syn cluster dTokens add=dEscSequence,dCharacter 245 246" Unicode characters 247" 248syn match dUnicode "\\u\d\{4\}" 249 250" String. 251" 252syn match dFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained 253syn match dFormat display "%%" contained 254 255syn region dString start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dFormat,dEscSequence,@Spell 256syn region dRawString start=+`+ end=+`[cwd]\=+ contains=@Spell 257syn region dRawString start=+r"+ end=+"[cwd]\=+ contains=@Spell 258syn region dHexString start=+x"+ end=+"[cwd]\=+ contains=@Spell 259syn region dDelimString start=+q"\z(.\)+ end=+\z1"+ contains=@Spell 260syn region dHereString start=+q"\z(\I\i*\)\n+ end=+^\z1"+ contains=@Spell 261 262 263" Nesting delimited string contents 264" 265syn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell 266syn region dNestBrackString start=+\[+ end=+\]+ contained transparent contains=dNestBrackString,@Spell 267syn region dNestAngleString start=+<+ end=+>+ contained transparent contains=dNestAngleString,@Spell 268syn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell 269 270" Nesting delimited strings 271" 272syn region dParenString matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell 273syn region dBrackString matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell 274syn region dAngleString matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell 275syn region dCurlyString matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell 276 277hi link dParenString dNestString 278hi link dBrackString dNestString 279hi link dAngleString dNestString 280hi link dCurlyString dNestString 281 282syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString 283 284" Token strings 285" 286syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens,dFormat 287syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens,dFormat 288 289syn cluster dTokens add=dTokenString 290 291" Numbers 292" 293syn case ignore 294 295syn match dDec display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>" 296 297" Hex number 298syn match dHex display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>" 299 300syn match dOctal display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>" 301" flag an octal number with wrong digits 302syn match dOctalError display "\<0[0-7_]*[89][0-9_]*" 303 304" binary numbers 305syn match dBinary display "\<0b[01_]\+\(u\=l\=\|l\=u\=\)\>" 306 307"floating point without the dot 308syn match dFloat display "\<\d[0-9_]*\(fi\=\|l\=i\)\>" 309"floating point number, with dot, optional exponent 310syn match dFloat display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=" 311"floating point number, starting with a dot, optional exponent 312syn match dFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>" 313"floating point number, without dot, with exponent 314"syn match dFloat display "\<\d\+e[-+]\=\d\+[fl]\=\>" 315syn match dFloat display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>" 316 317"floating point without the dot 318syn match dHexFloat display "\<0x[0-9a-f_]\+\(fi\=\|l\=i\)\>" 319"floating point number, with dot, optional exponent 320syn match dHexFloat display "\<0x[0-9a-f_]\+\.[0-9a-f_]*\(p[-+]\=[0-9_]\+\)\=[fl]\=i\=" 321"floating point number, without dot, with exponent 322syn match dHexFloat display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>" 323 324syn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat 325 326syn case match 327 328" Pragma (preprocessor) support 329" TODO: Highlight following Integer and optional Filespec. 330syn region dPragma start="#\s*\(line\>\)" skip="\\$" end="$" 331 332" Block 333" 334syn region dBlock start="{" end="}" transparent fold 335 336 337" The default highlighting. 338" 339hi def link dBinary Number 340hi def link dDec Number 341hi def link dHex Number 342hi def link dOctal Number 343hi def link dFloat Float 344hi def link dHexFloat Float 345hi def link dDebug Debug 346hi def link dBranch Conditional 347hi def link dConditional Conditional 348hi def link dLabel Label 349hi def link dUserLabel Label 350hi def link dRepeat Repeat 351hi def link dExceptions Exception 352hi def link dAssert Statement 353hi def link dStatement Statement 354hi def link dScopeDecl dStorageClass 355hi def link dStorageClass StorageClass 356hi def link dBoolean Boolean 357hi def link dUnicode Special 358hi def link dTokenStringBrack String 359hi def link dHereString String 360hi def link dNestString String 361hi def link dDelimString String 362hi def link dRawString String 363hi def link dString String 364hi def link dHexString String 365hi def link dCharacter Character 366hi def link dEscSequence SpecialChar 367hi def link dFormat SpecialChar 368hi def link dSpecialCharError Error 369hi def link dOctalError Error 370hi def link dOperator Operator 371hi def link dOpOverload Identifier 372hi def link dConstant Constant 373hi def link dTypedef Typedef 374hi def link dEnum Structure 375hi def link dStructure Structure 376hi def link dTodo Todo 377hi def link dType Type 378hi def link dLineComment Comment 379hi def link dBlockComment Comment 380hi def link dNestedComment Comment 381hi def link dCommentError Error 382hi def link dNestedCommentError Error 383hi def link dCommentStartError Error 384hi def link dExternal Include 385hi def link dAnnotation PreProc 386hi def link dSharpBang PreProc 387hi def link dAttribute StorageClass 388hi def link dIdentifier Identifier 389hi def link dVersion dStatement 390hi def link dVersionIdentifier Identifier 391hi def link dScopeIdentifier Identifier 392hi def link dTraitsIdentifier Identifier 393hi def link dPragma PreProc 394hi def link dPragmaIdentifier Identifier 395hi def link dExtern dExternal 396hi def link dExternIdentifier Identifier 397 398" Marks contents of the asm statement body as special 399 400syn match dAsmStatement "\<asm\>" 401syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel 402 403hi def link dAsmBody dUnicode 404hi def link dAsmStatement dStatement 405hi def link dAsmOpCode Identifier 406 407syn keyword dAsmOpCode contained aaa aad aam aas 408syn keyword dAsmOpCode contained add addpd addps addsd 409syn keyword dAsmOpCode contained and andnpd andnps andpd 410syn keyword dAsmOpCode contained arpl bound bsf bsr 411syn keyword dAsmOpCode contained bt btc btr bts 412syn keyword dAsmOpCode contained call bswap andps addss 413syn keyword dAsmOpCode contained cbw cdq clc cld 414syn keyword dAsmOpCode contained cli clts cmc cmova 415syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove 416syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna 417syn keyword dAsmOpCode contained cmovnae cmovg cmovae clflush 418syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne 419syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno 420syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp 421syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp 422syn keyword dAsmOpCode contained cmppd cmovpe cmovnp cmovng 423syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd 424syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd 425syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq 426syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq 427syn keyword dAsmOpCode contained cvtps2pd cvtpd2pi comiss cmpss 428syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd 429syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi 430syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd 431syn keyword dAsmOpCode contained da daa das db 432syn keyword dAsmOpCode contained dd cwde cvttps2dq cvtsi2ss 433syn keyword dAsmOpCode contained de dec df di 434syn keyword dAsmOpCode contained divpd divps divsd divss 435syn keyword dAsmOpCode contained dq ds dt dw 436syn keyword dAsmOpCode contained enter f2xm1 fabs fadd 437syn keyword dAsmOpCode contained faddp emms dl div 438syn keyword dAsmOpCode contained fbld fbstp fchs fclex 439syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe 440syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi 441syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp 442syn keyword dAsmOpCode contained fdisi fcomip fcmovne fcmovb 443syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp 444syn keyword dAsmOpCode contained ffree fiadd ficom ficomp 445syn keyword dAsmOpCode contained fidivr fild fimul fincstp 446syn keyword dAsmOpCode contained fist fistp fisub fisubr 447syn keyword dAsmOpCode contained fld finit fidiv feni 448syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e 449syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz 450syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni 451syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv 452syn keyword dAsmOpCode contained fnstsw fninit fmul fldl2t 453syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan 454syn keyword dAsmOpCode contained frstor fsave fscale fsetpm 455syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw 456syn keyword dAsmOpCode contained fstp fstsw fsub fsubp 457syn keyword dAsmOpCode contained fsubr fstenv fsin frndint 458syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi 459syn keyword dAsmOpCode contained fucomp fucompp fwait fxam 460syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x 461syn keyword dAsmOpCode contained hlt idiv imul in 462syn keyword dAsmOpCode contained inc fyl2xp1 fxch fucomip 463syn keyword dAsmOpCode contained ins insb insd insw 464syn keyword dAsmOpCode contained into invd invlpg iret 465syn keyword dAsmOpCode contained ja jae jb jbe 466syn keyword dAsmOpCode contained jcxz je jecxz jg 467syn keyword dAsmOpCode contained jge jc iretd int 468syn keyword dAsmOpCode contained jl jle jmp jna 469syn keyword dAsmOpCode contained jnb jnbe jnc jne 470syn keyword dAsmOpCode contained jnge jnl jnle jno 471syn keyword dAsmOpCode contained jns jnz jo jp 472syn keyword dAsmOpCode contained jpe jnp jng jnae 473syn keyword dAsmOpCode contained jpo js jz lahf 474syn keyword dAsmOpCode contained ldmxcsr lds lea leave 475syn keyword dAsmOpCode contained lfence lfs lgdt lgs 476syn keyword dAsmOpCode contained lldt lmsw lock lods 477syn keyword dAsmOpCode contained lodsb lidt les lar 478syn keyword dAsmOpCode contained lodsd lodsw loop loope 479syn keyword dAsmOpCode contained loopnz loopz lsl lss 480syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps 481syn keyword dAsmOpCode contained maxss mfence minpd minps 482syn keyword dAsmOpCode contained minsd maxsd ltr loopne 483syn keyword dAsmOpCode contained minss mov movapd movaps 484syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps 485syn keyword dAsmOpCode contained movhps movlhps movlpd movlps 486syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd 487syn keyword dAsmOpCode contained movntps movmskpd movhpd movd 488syn keyword dAsmOpCode contained movntq movq movq2dq movs 489syn keyword dAsmOpCode contained movsd movss movsw movsx 490syn keyword dAsmOpCode contained movups movzx mul mulpd 491syn keyword dAsmOpCode contained mulsd mulss neg nop 492syn keyword dAsmOpCode contained not mulps movupd movsb 493syn keyword dAsmOpCode contained or orpd orps out 494syn keyword dAsmOpCode contained outsb outsd outsw packssdw 495syn keyword dAsmOpCode contained packuswb paddb paddd paddq 496syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw 497syn keyword dAsmOpCode contained pand paddsb packsswb outs 498syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb 499syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw 500syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub 501syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw 502syn keyword dAsmOpCode contained pmullw pminsw pextrw pcmpeqd 503syn keyword dAsmOpCode contained pmuludq pop popa popad 504syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 505syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw 506syn keyword dAsmOpCode contained pshufw pslld pslldq psllq 507syn keyword dAsmOpCode contained psllw pshuflw prefetcht1 popf 508syn keyword dAsmOpCode contained psrad psraw psrld psrldq 509syn keyword dAsmOpCode contained psrlw psubb psubd psubq 510syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw 511syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw 512syn keyword dAsmOpCode contained punpckldq punpckhbw psubsb psrlq 513syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha 514syn keyword dAsmOpCode contained pushf pushfd pxor rcl 515syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc 516syn keyword dAsmOpCode contained rep repe repne repnz 517syn keyword dAsmOpCode contained repz rdtsc rcpps pushad 518syn keyword dAsmOpCode contained ret retf rol ror 519syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal 520syn keyword dAsmOpCode contained sbb scas scasb scasd 521syn keyword dAsmOpCode contained seta setae setb setbe 522syn keyword dAsmOpCode contained setc scasw sar rsm 523syn keyword dAsmOpCode contained sete setg setge setl 524syn keyword dAsmOpCode contained setna setnae setnb setnbe 525syn keyword dAsmOpCode contained setne setng setnge setnl 526syn keyword dAsmOpCode contained setno setnp setns setnz 527syn keyword dAsmOpCode contained seto setnle setnc setle 528syn keyword dAsmOpCode contained setp setpe setpo sets 529syn keyword dAsmOpCode contained sfence sgdt shl shld 530syn keyword dAsmOpCode contained shrd shufpd shufps sidt 531syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd 532syn keyword dAsmOpCode contained sqrtss sldt shr setz 533syn keyword dAsmOpCode contained stc std sti stmxcsr 534syn keyword dAsmOpCode contained stosb stosd stosw str 535syn keyword dAsmOpCode contained subpd subps subsd subss 536syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss 537syn keyword dAsmOpCode contained ud2 sysenter sub stos 538syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps 539syn keyword dAsmOpCode contained verw wbinvd wrmsr xadd 540syn keyword dAsmOpCode contained xchg xlatb xor xorpd 541syn keyword dAsmOpCode contained xorps pfrcpit1 pfmin movddup 542syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddps 543syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor 544syn keyword dAsmOpCode contained haddpd xlat wait verr 545syn keyword dAsmOpCode contained movshdup movsldup mwait pfcmpeq 546syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd 547syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmul 548syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 549syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr 550syn keyword dAsmOpCode contained pmulhrw pswapd syscall sysret 551syn keyword dAsmOpCode contained vpmuldq xgetbv cmpxchg8b cmpxchg16b 552syn keyword dAsmOpCode contained pabsb pabsd pabsw palignr 553syn keyword dAsmOpCode contained phaddd phaddsw phaddw phsubd 554syn keyword dAsmOpCode contained phsubsw phsubw pmaddubsw pmulhrsw 555syn keyword dAsmOpCode contained pshufb psignb psignd psignw 556syn keyword dAsmOpCode contained popfq pushfq blendpd blendps 557syn keyword dAsmOpCode contained blendvpd blendvps extractps insertps 558syn keyword dAsmOpCode contained movntdqa mpsadbw packusdw pblendvb 559syn keyword dAsmOpCode contained pblendw pcmpeqq pextrb pextrd 560syn keyword dAsmOpCode contained pextrq phminposuw pinsrb pinsrd 561syn keyword dAsmOpCode contained pinsrq pmaxsb pmaxsd pmaxud 562syn keyword dAsmOpCode contained pmaxuw pminsb pminsd pminud 563syn keyword dAsmOpCode contained pminuw pmulld ptest roundpd 564syn keyword dAsmOpCode contained roundps roundsd roundss pmuldq 565syn keyword dAsmOpCode contained pmovsxbd pmovsxdq pmovzxbq pmovzxdq 566syn keyword dAsmOpCode contained pmovsxbq pmovsxwd pmovzxbq pmovzxwd 567syn keyword dAsmOpCode contained pmovsxbw pmovsxwq pmovzxbw pmovzxwq 568syn keyword dAsmOpCode contained crc32 pcmpestri pcmpestrm pcmpgtq 569syn keyword dAsmOpCode contained pcmpistri pcmpistrm popcnt pi2fd 570syn keyword dAsmOpCode contained adc 571 572let &cpo = s:cpo_save 573unlet s:cpo_save 574