1*681baaf4SBram Moolenaar" Vim syntax file for the D programming language (version 1.076 and 2.069). 2071d4279SBram Moolenaar" 3071d4279SBram Moolenaar" Language: D 424ea3babSBram Moolenaar" Maintainer: Jesse Phillips <Jesse.K.Phillips[email protected]> 5*681baaf4SBram Moolenaar" Last Change: 2016 Feb 2 6*681baaf4SBram Moolenaar" Version: 0.28 79db9d9ceSBram Moolenaar" 89db9d9ceSBram Moolenaar" Contributors: 9543b7ef7SBram Moolenaar" - Jason Mills: original Maintainer 106be7f873SBram Moolenaar" - Kirk McDonald 116be7f873SBram Moolenaar" - Tim Keating 126be7f873SBram Moolenaar" - Frank Benoit 13543b7ef7SBram Moolenaar" - Shougo Matsushita 146be7f873SBram Moolenaar" - Ellery Newcomer 156be7f873SBram Moolenaar" - Steven N. Oliver 166be7f873SBram Moolenaar" - Sohgo Takeuchi 17543b7ef7SBram Moolenaar" - Robert Clipsham 18*681baaf4SBram Moolenaar" - Petar Kirov 199db9d9ceSBram Moolenaar" 206be7f873SBram Moolenaar" Please submit bugs/comments/suggestions to the github repo: 21543b7ef7SBram Moolenaar" https://github.com/JesseKPhillips/d.vim 22071d4279SBram Moolenaar" 23071d4279SBram Moolenaar" Options: 249db9d9ceSBram Moolenaar" d_comment_strings - Set to highlight strings and numbers in comments. 25071d4279SBram Moolenaar" 269db9d9ceSBram Moolenaar" d_hl_operator_overload - Set to highlight D's specially named functions 279db9d9ceSBram Moolenaar" that when overloaded implement unary and binary operators (e.g. opCmp). 28071d4279SBram Moolenaar" 296be7f873SBram Moolenaar" d_hl_object_types - Set to highlight some common types from object.di. 30071d4279SBram Moolenaar 31071d4279SBram Moolenaar" Quit when a syntax file was already loaded 32071d4279SBram Moolenaarif exists("b:current_syntax") 33071d4279SBram Moolenaar finish 34071d4279SBram Moolenaarendif 35071d4279SBram Moolenaar 366be7f873SBram Moolenaar" Support cpoptions 376be7f873SBram Moolenaarlet s:cpo_save = &cpo 386be7f873SBram Moolenaarset cpo&vim 396be7f873SBram Moolenaar 406be7f873SBram Moolenaar" Set the current syntax to be known as d 416be7f873SBram Moolenaarlet b:current_syntax = "d" 426be7f873SBram Moolenaar 43071d4279SBram Moolenaar" Keyword definitions 44071d4279SBram Moolenaar" 45543b7ef7SBram Moolenaarsyn keyword dExternal contained import module 46543b7ef7SBram Moolenaarsyn keyword dAssert assert 479db9d9ceSBram Moolenaarsyn keyword dConditional if else switch 48071d4279SBram Moolenaarsyn keyword dBranch goto break continue 499db9d9ceSBram Moolenaarsyn keyword dRepeat while for do foreach foreach_reverse 50071d4279SBram Moolenaarsyn keyword dBoolean true false 51071d4279SBram Moolenaarsyn keyword dConstant null 529db9d9ceSBram Moolenaarsyn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__ 539db9d9ceSBram Moolenaarsyn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__ 54543b7ef7SBram Moolenaarsyn keyword dConstant __MODULE__ __FUNCTION__ __PRETTY_FUNCTION__ 55071d4279SBram Moolenaarsyn keyword dTypedef alias typedef 569db9d9ceSBram Moolenaarsyn keyword dStructure template interface class struct union 579db9d9ceSBram Moolenaarsyn keyword dEnum enum 5821cf823aSBram Moolenaarsyn keyword dOperator new delete typeof typeid cast align is 59071d4279SBram Moolenaarsyn keyword dOperator this super 60071d4279SBram Moolenaarif exists("d_hl_operator_overload") 6124ea3babSBram Moolenaar syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd 6224ea3babSBram Moolenaar syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod 6324ea3babSBram Moolenaar syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr 6424ea3babSBram Moolenaar syn keyword dOpOverload opShr_r opUShr opUShr_r opCat 65543b7ef7SBram Moolenaar syn keyword dOpOverload opCat_r opEquals opCmp 6624ea3babSBram Moolenaar syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign 6724ea3babSBram Moolenaar syn keyword dOpOverload opDivAssign opModAssign opAndAssign 6824ea3babSBram Moolenaar syn keyword dOpOverload opOrAssign opXorAssign opShlAssign 6924ea3babSBram Moolenaar syn keyword dOpOverload opShrAssign opUShrAssign opCatAssign 7024ea3babSBram Moolenaar syn keyword dOpOverload opIndex opIndexAssign opIndexOpAssign 7124ea3babSBram Moolenaar syn keyword dOpOverload opCall opSlice opSliceAssign opSliceOpAssign 7224ea3babSBram Moolenaar syn keyword dOpOverload opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r 7324ea3babSBram Moolenaar syn keyword dOpOverload opIn opIn_r opPow opDispatch opStar opDot 746be7f873SBram Moolenaar syn keyword dOpOverload opApply opApplyReverse opDollar 7524ea3babSBram Moolenaar syn keyword dOpOverload opUnary opIndexUnary opSliceUnary 7624ea3babSBram Moolenaar syn keyword dOpOverload opBinary opBinaryRight 77071d4279SBram Moolenaarendif 7824ea3babSBram Moolenaar 796be7f873SBram Moolenaarsyn keyword dType byte ubyte short ushort int uint long ulong cent ucent 80543b7ef7SBram Moolenaarsyn keyword dType void bool Object 816be7f873SBram Moolenaarsyn keyword dType float double real 826be7f873SBram Moolenaarsyn keyword dType ushort int uint long ulong float 836be7f873SBram Moolenaarsyn keyword dType char wchar dchar string wstring dstring 846be7f873SBram Moolenaarsyn keyword dType ireal ifloat idouble creal cfloat cdouble 856be7f873SBram Moolenaarsyn keyword dType size_t ptrdiff_t sizediff_t equals_t hash_t 866be7f873SBram Moolenaarif exists("d_hl_object_types") 876be7f873SBram Moolenaar syn keyword dType Object Throwable AssociativeArray Error Exception 886be7f873SBram Moolenaar syn keyword dType Interface OffsetTypeInfo TypeInfo TypeInfo_Typedef 896be7f873SBram Moolenaar syn keyword dType TypeInfo_Enum TypeInfo_Pointer TypeInfo_Array 906be7f873SBram Moolenaar syn keyword dType TypeInfo_StaticArray TypeInfo_AssociativeArray 916be7f873SBram Moolenaar syn keyword dType TypeInfo_Function TypeInfo_Delegate TypeInfo_Class 926be7f873SBram Moolenaar syn keyword dType ClassInfo TypeInfo_Interface TypeInfo_Struct 936be7f873SBram Moolenaar syn keyword dType TypeInfo_Tuple TypeInfo_Const TypeInfo_Invariant 946be7f873SBram Moolenaar syn keyword dType TypeInfo_Shared TypeInfo_Inout MemberInfo 956be7f873SBram Moolenaar syn keyword dType MemberInfo_field MemberInfo_function ModuleInfo 966be7f873SBram Moolenaarendif 9724ea3babSBram Moolenaarsyn keyword dDebug deprecated unittest invariant 98071d4279SBram Moolenaarsyn keyword dExceptions throw try catch finally 996be7f873SBram Moolenaarsyn keyword dScopeDecl public protected private export package 10024ea3babSBram Moolenaarsyn keyword dStatement debug return with 101543b7ef7SBram Moolenaarsyn keyword dStatement function delegate __ctfe mixin macro __simd 102543b7ef7SBram Moolenaarsyn keyword dStatement in out body 103543b7ef7SBram Moolenaarsyn keyword dStorageClass contained in out scope 104543b7ef7SBram Moolenaarsyn keyword dStorageClass inout ref lazy pure nothrow 10524ea3babSBram Moolenaarsyn keyword dStorageClass auto static override final abstract volatile 106543b7ef7SBram Moolenaarsyn keyword dStorageClass __gshared __vector 10724ea3babSBram Moolenaarsyn keyword dStorageClass synchronized shared immutable const lazy 108543b7ef7SBram Moolenaarsyn keyword dIdentifier _arguments _argptr __vptr __monitor 109543b7ef7SBram Moolenaarsyn keyword dIdentifier _ctor _dtor __argTypes __overloadset 11024ea3babSBram Moolenaarsyn keyword dScopeIdentifier contained exit success failure 111543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isAbstractClass isArithmetic 112543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isAssociativeArray isFinalClass 113543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isPOD isNested isFloating 114543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isIntegral isScalar isStaticArray 115543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isUnsigned isVirtualFunction 116543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isVirtualMethod isAbstractFunction 117543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isFinalFunction isStaticFunction 118*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained isOverrideFunction isTemplate 119543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember 120*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained identifier getAliasThis 121*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained getAttributes getFunctionAttributes getMember 122*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained getOverloads getPointerBitmap getProtection 123*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained getVirtualFunctions getVirtualIndex 124*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained getVirtualMethods getUnitTests 125*681baaf4SBram Moolenaarsyn keyword dTraitsIdentifier contained parent classInstanceSize allMembers 126543b7ef7SBram Moolenaarsyn keyword dTraitsIdentifier contained derivedMembers isSame compiles 127*681baaf4SBram Moolenaarsyn keyword dPragmaIdentifier contained inline lib mangle msg startaddress GNU_asm 128*681baaf4SBram Moolenaarsyn keyword dExternIdentifier contained C C++ D Windows Pascal System Objective-C 12924ea3babSBram Moolenaarsyn keyword dAttribute contained safe trusted system 130*681baaf4SBram Moolenaarsyn keyword dAttribute contained property disable nogc 1316be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained DigitalMars GNU LDC SDC D_NET 1326be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained X86 X86_64 ARM PPC PPC64 IA64 MIPS MIPS64 Alpha 1336be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained SPARC SPARC64 S390 S390X HPPA HPPA64 SH SH64 1346be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained linux Posix OSX FreeBSD Windows Win32 Win64 1356be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained OpenBSD BSD Solaris AIX SkyOS SysV3 SysV4 Hurd 1366be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained Cygwin MinGW 1376be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained LittleEndian BigEndian 1386be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained D_InlineAsm_X86 D_InlineAsm_X86_64 1396be7f873SBram Moolenaarsyn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC 140*681baaf4SBram Moolenaarsyn keyword dVersionIdentifier contained unittest assert none all 14124ea3babSBram Moolenaar 142543b7ef7SBram Moolenaarsyn cluster dComment contains=dNestedComment,dBlockComment,dLineComment 143543b7ef7SBram Moolenaar 14424ea3babSBram Moolenaar" Highlight the sharpbang 14524ea3babSBram Moolenaarsyn match dSharpBang "\%^#!.*" display 146071d4279SBram Moolenaar 1479db9d9ceSBram Moolenaar" Attributes/annotations 14824ea3babSBram Moolenaarsyn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute 14924ea3babSBram Moolenaar 15024ea3babSBram Moolenaar" Version Identifiers 151543b7ef7SBram Moolenaarsyn match dVersion "\<version\>" 152543b7ef7SBram Moolenaarsyn match dVersion "\<version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier 15324ea3babSBram Moolenaar 15424ea3babSBram Moolenaar" Scope Identifiers 155543b7ef7SBram Moolenaarsyn match dStatement "\<scope\>" 156543b7ef7SBram Moolenaarsyn match dStatement "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier 1576be7f873SBram Moolenaar 158543b7ef7SBram Moolenaar" Traits Statement 159543b7ef7SBram Moolenaarsyn match dStatement "\<__traits\>" 160543b7ef7SBram Moolenaarsyn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier 161543b7ef7SBram Moolenaar 162543b7ef7SBram Moolenaar" Pragma Statement 163543b7ef7SBram Moolenaarsyn match dPragma "\<pragma\>" 164b1332080SBram Moolenaarsyn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+6 contains=dPragmaIdentifier 1656be7f873SBram Moolenaar 1666be7f873SBram Moolenaar" Necessary to highlight C++ in extern modifiers. 1676be7f873SBram Moolenaarsyn match dExternIdentifier "C\(++\)\?" contained 1686be7f873SBram Moolenaar 1696be7f873SBram Moolenaar" Extern Identifiers 170543b7ef7SBram Moolenaarsyn match dExternal "\<extern\>" 1716be7f873SBram Moolenaarsyn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier 17224ea3babSBram Moolenaar 173543b7ef7SBram Moolenaar" Make import a region to prevent highlighting keywords 174*681baaf4SBram Moolenaarsyn region dImport start="\<import\_s" end=";" contains=dExternal,@dComment 175071d4279SBram Moolenaar 176543b7ef7SBram Moolenaar" Make module a region to prevent highlighting keywords 177*681baaf4SBram Moolenaarsyn region dImport start="\<module\_s" end=";" contains=dExternal,@dComment 178071d4279SBram Moolenaar 1799db9d9ceSBram Moolenaar" dTokens is used by the token string highlighting 1809db9d9ceSBram Moolenaarsyn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean 1819db9d9ceSBram Moolenaarsyn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload 1829db9d9ceSBram Moolenaarsyn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement 183543b7ef7SBram Moolenaarsyn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum 184b1332080SBram Moolenaarsyn cluster dTokens add=dParenString,dBrackString,dAngleString,dCurlyString 185b1332080SBram Moolenaarsyn cluster dTokens add=dTokenString,dDelimString,dHereString 1869db9d9ceSBram Moolenaar 187543b7ef7SBram Moolenaar" Create a match for parameter lists to identify storage class 188543b7ef7SBram Moolenaarsyn region paramlist start="(" end=")" contains=@dTokens 189071d4279SBram Moolenaar 190071d4279SBram Moolenaar" Labels 191071d4279SBram Moolenaar" 192071d4279SBram Moolenaar" We contain dScopeDecl so public: private: etc. are not highlighted like labels 1939db9d9ceSBram Moolenaarsyn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum 194071d4279SBram Moolenaarsyn keyword dLabel case default 195071d4279SBram Moolenaar 1969db9d9ceSBram Moolenaarsyn cluster dTokens add=dUserLabel,dLabel 1979db9d9ceSBram Moolenaar 198071d4279SBram Moolenaar" Comments 199071d4279SBram Moolenaar" 200b1332080SBram Moolenaarsyn match dCommentError display "\*/" 201b1332080SBram Moolenaarsyn match dNestedCommentError display "+/" 202b1332080SBram Moolenaar 2039db9d9ceSBram Moolenaarsyn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX 204071d4279SBram Moolenaarsyn match dCommentStar contained "^\s*\*[^/]"me=e-1 205071d4279SBram Moolenaarsyn match dCommentStar contained "^\s*\*$" 206071d4279SBram Moolenaarsyn match dCommentPlus contained "^\s*+[^/]"me=e-1 207071d4279SBram Moolenaarsyn match dCommentPlus contained "^\s*+$" 208071d4279SBram Moolenaarif exists("d_comment_strings") 209071d4279SBram Moolenaar syn region dBlockCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell 210071d4279SBram Moolenaar syn region dNestedCommentString contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell 211071d4279SBram Moolenaar syn region dLineCommentString contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell 212071d4279SBram Moolenaarendif 213071d4279SBram Moolenaar 214b1332080SBram Moolenaarsyn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,dCommentStartError,@Spell fold 215b1332080SBram Moolenaarsyn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold 216b1332080SBram Moolenaarsyn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell 217b1332080SBram Moolenaar 218071d4279SBram Moolenaarhi link dLineCommentString dBlockCommentString 219071d4279SBram Moolenaarhi link dBlockCommentString dString 220071d4279SBram Moolenaarhi link dNestedCommentString dString 221071d4279SBram Moolenaarhi link dCommentStar dBlockComment 222071d4279SBram Moolenaarhi link dCommentPlus dNestedComment 223071d4279SBram Moolenaar 2249db9d9ceSBram Moolenaarsyn cluster dTokens add=dBlockComment,dNestedComment,dLineComment 2259db9d9ceSBram Moolenaar 2265baddf02SBram Moolenaar" /+ +/ style comments and strings that span multiple lines can cause 2275baddf02SBram Moolenaar" problems. To play it safe, set minlines to a large number. 2285baddf02SBram Moolenaarsyn sync minlines=200 2295baddf02SBram Moolenaar" Use ccomment for /* */ style comments 2305baddf02SBram Moolenaarsyn sync ccomment dBlockComment 231071d4279SBram Moolenaar 232071d4279SBram Moolenaar" Characters 233071d4279SBram Moolenaar" 234071d4279SBram Moolenaarsyn match dSpecialCharError contained "[^']" 235071d4279SBram Moolenaar 236cd71fa3cSBram Moolenaar" Escape sequences (oct,specal char,hex,wchar, character entities \&xxx;) 2379db9d9ceSBram Moolenaar" These are not contained because they are considered string literals. 238071d4279SBram Moolenaarsyn match dEscSequence "\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)" 239cd71fa3cSBram Moolenaarsyn match dEscSequence "\\&[^;& \t]\+;" 240071d4279SBram Moolenaarsyn match dCharacter "'[^']*'" contains=dEscSequence,dSpecialCharError 241071d4279SBram Moolenaarsyn match dCharacter "'\\''" contains=dEscSequence 242071d4279SBram Moolenaarsyn match dCharacter "'[^\\]'" 243071d4279SBram Moolenaar 2449db9d9ceSBram Moolenaarsyn cluster dTokens add=dEscSequence,dCharacter 2459db9d9ceSBram Moolenaar 246071d4279SBram Moolenaar" Unicode characters 247071d4279SBram Moolenaar" 248071d4279SBram Moolenaarsyn match dUnicode "\\u\d\{4\}" 249071d4279SBram Moolenaar 250071d4279SBram Moolenaar" String. 251071d4279SBram Moolenaar" 252*681baaf4SBram Moolenaarsyn match dFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained 253*681baaf4SBram Moolenaarsyn match dFormat display "%%" contained 254*681baaf4SBram Moolenaar 255*681baaf4SBram Moolenaarsyn region dString start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dFormat,dEscSequence,@Spell 2569db9d9ceSBram Moolenaarsyn region dRawString start=+`+ end=+`[cwd]\=+ contains=@Spell 2579db9d9ceSBram Moolenaarsyn region dRawString start=+r"+ end=+"[cwd]\=+ contains=@Spell 2589db9d9ceSBram Moolenaarsyn region dHexString start=+x"+ end=+"[cwd]\=+ contains=@Spell 2599db9d9ceSBram Moolenaarsyn region dDelimString start=+q"\z(.\)+ end=+\z1"+ contains=@Spell 260b1332080SBram Moolenaarsyn region dHereString start=+q"\z(\I\i*\)\n+ end=+^\z1"+ contains=@Spell 2619db9d9ceSBram Moolenaar 262*681baaf4SBram Moolenaar 2639db9d9ceSBram Moolenaar" Nesting delimited string contents 2649db9d9ceSBram Moolenaar" 2659db9d9ceSBram Moolenaarsyn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell 2669db9d9ceSBram Moolenaarsyn region dNestBrackString start=+\[+ end=+\]+ contained transparent contains=dNestBrackString,@Spell 2679db9d9ceSBram Moolenaarsyn region dNestAngleString start=+<+ end=+>+ contained transparent contains=dNestAngleString,@Spell 2689db9d9ceSBram Moolenaarsyn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell 2699db9d9ceSBram Moolenaar 2709db9d9ceSBram Moolenaar" Nesting delimited strings 2719db9d9ceSBram Moolenaar" 2729db9d9ceSBram Moolenaarsyn region dParenString matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell 2739db9d9ceSBram Moolenaarsyn region dBrackString matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell 2749db9d9ceSBram Moolenaarsyn region dAngleString matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell 2759db9d9ceSBram Moolenaarsyn region dCurlyString matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell 2769db9d9ceSBram Moolenaar 2779db9d9ceSBram Moolenaarhi link dParenString dNestString 2789db9d9ceSBram Moolenaarhi link dBrackString dNestString 2799db9d9ceSBram Moolenaarhi link dAngleString dNestString 2809db9d9ceSBram Moolenaarhi link dCurlyString dNestString 2819db9d9ceSBram Moolenaar 2829db9d9ceSBram Moolenaarsyn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString 2839db9d9ceSBram Moolenaar 2849db9d9ceSBram Moolenaar" Token strings 2859db9d9ceSBram Moolenaar" 286*681baaf4SBram Moolenaarsyn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens,dFormat 287*681baaf4SBram Moolenaarsyn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens,dFormat 2889db9d9ceSBram Moolenaar 2899db9d9ceSBram Moolenaarsyn cluster dTokens add=dTokenString 290071d4279SBram Moolenaar 291071d4279SBram Moolenaar" Numbers 292071d4279SBram Moolenaar" 293071d4279SBram Moolenaarsyn case ignore 2945baddf02SBram Moolenaar 2955baddf02SBram Moolenaarsyn match dDec display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>" 2965baddf02SBram Moolenaar 297071d4279SBram Moolenaar" Hex number 298071d4279SBram Moolenaarsyn match dHex display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>" 2995baddf02SBram Moolenaar 3005baddf02SBram Moolenaarsyn match dOctal display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>" 3015baddf02SBram Moolenaar" flag an octal number with wrong digits 3025baddf02SBram Moolenaarsyn match dOctalError display "\<0[0-7_]*[89][0-9_]*" 3035baddf02SBram Moolenaar 3045baddf02SBram Moolenaar" binary numbers 3055baddf02SBram Moolenaarsyn match dBinary display "\<0b[01_]\+\(u\=l\=\|l\=u\=\)\>" 306071d4279SBram Moolenaar 307071d4279SBram Moolenaar"floating point without the dot 308071d4279SBram Moolenaarsyn match dFloat display "\<\d[0-9_]*\(fi\=\|l\=i\)\>" 309071d4279SBram Moolenaar"floating point number, with dot, optional exponent 310071d4279SBram Moolenaarsyn match dFloat display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=" 311071d4279SBram Moolenaar"floating point number, starting with a dot, optional exponent 312071d4279SBram Moolenaarsyn match dFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>" 313071d4279SBram Moolenaar"floating point number, without dot, with exponent 314071d4279SBram Moolenaar"syn match dFloat display "\<\d\+e[-+]\=\d\+[fl]\=\>" 315071d4279SBram Moolenaarsyn match dFloat display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>" 316071d4279SBram Moolenaar 317071d4279SBram Moolenaar"floating point without the dot 3185baddf02SBram Moolenaarsyn match dHexFloat display "\<0x[0-9a-f_]\+\(fi\=\|l\=i\)\>" 319071d4279SBram Moolenaar"floating point number, with dot, optional exponent 3205baddf02SBram Moolenaarsyn match dHexFloat display "\<0x[0-9a-f_]\+\.[0-9a-f_]*\(p[-+]\=[0-9_]\+\)\=[fl]\=i\=" 321071d4279SBram Moolenaar"floating point number, without dot, with exponent 3225baddf02SBram Moolenaarsyn match dHexFloat display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>" 323071d4279SBram Moolenaar 3249db9d9ceSBram Moolenaarsyn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat 3259db9d9ceSBram Moolenaar 326071d4279SBram Moolenaarsyn case match 327071d4279SBram Moolenaar 328071d4279SBram Moolenaar" Pragma (preprocessor) support 329071d4279SBram Moolenaar" TODO: Highlight following Integer and optional Filespec. 330071d4279SBram Moolenaarsyn region dPragma start="#\s*\(line\>\)" skip="\\$" end="$" 331071d4279SBram Moolenaar 3326be7f873SBram Moolenaar" Block 3336be7f873SBram Moolenaar" 3346be7f873SBram Moolenaarsyn region dBlock start="{" end="}" transparent fold 3356be7f873SBram Moolenaar 336071d4279SBram Moolenaar 337071d4279SBram Moolenaar" The default highlighting. 338071d4279SBram Moolenaar" 339071d4279SBram Moolenaarhi def link dBinary Number 3405baddf02SBram Moolenaarhi def link dDec Number 341071d4279SBram Moolenaarhi def link dHex Number 342071d4279SBram Moolenaarhi def link dOctal Number 343071d4279SBram Moolenaarhi def link dFloat Float 344071d4279SBram Moolenaarhi def link dHexFloat Float 345071d4279SBram Moolenaarhi def link dDebug Debug 346071d4279SBram Moolenaarhi def link dBranch Conditional 347071d4279SBram Moolenaarhi def link dConditional Conditional 348071d4279SBram Moolenaarhi def link dLabel Label 349071d4279SBram Moolenaarhi def link dUserLabel Label 350071d4279SBram Moolenaarhi def link dRepeat Repeat 351071d4279SBram Moolenaarhi def link dExceptions Exception 352071d4279SBram Moolenaarhi def link dAssert Statement 353071d4279SBram Moolenaarhi def link dStatement Statement 354071d4279SBram Moolenaarhi def link dScopeDecl dStorageClass 355071d4279SBram Moolenaarhi def link dStorageClass StorageClass 356071d4279SBram Moolenaarhi def link dBoolean Boolean 357071d4279SBram Moolenaarhi def link dUnicode Special 3589db9d9ceSBram Moolenaarhi def link dTokenStringBrack String 3599db9d9ceSBram Moolenaarhi def link dHereString String 3609db9d9ceSBram Moolenaarhi def link dNestString String 3619db9d9ceSBram Moolenaarhi def link dDelimString String 362071d4279SBram Moolenaarhi def link dRawString String 363071d4279SBram Moolenaarhi def link dString String 364071d4279SBram Moolenaarhi def link dHexString String 365071d4279SBram Moolenaarhi def link dCharacter Character 366071d4279SBram Moolenaarhi def link dEscSequence SpecialChar 367*681baaf4SBram Moolenaarhi def link dFormat SpecialChar 368071d4279SBram Moolenaarhi def link dSpecialCharError Error 369071d4279SBram Moolenaarhi def link dOctalError Error 370071d4279SBram Moolenaarhi def link dOperator Operator 3719db9d9ceSBram Moolenaarhi def link dOpOverload Identifier 372071d4279SBram Moolenaarhi def link dConstant Constant 373071d4279SBram Moolenaarhi def link dTypedef Typedef 3749db9d9ceSBram Moolenaarhi def link dEnum Structure 375071d4279SBram Moolenaarhi def link dStructure Structure 376071d4279SBram Moolenaarhi def link dTodo Todo 377071d4279SBram Moolenaarhi def link dType Type 378071d4279SBram Moolenaarhi def link dLineComment Comment 379071d4279SBram Moolenaarhi def link dBlockComment Comment 380071d4279SBram Moolenaarhi def link dNestedComment Comment 381b1332080SBram Moolenaarhi def link dCommentError Error 382b1332080SBram Moolenaarhi def link dNestedCommentError Error 383b1332080SBram Moolenaarhi def link dCommentStartError Error 384071d4279SBram Moolenaarhi def link dExternal Include 3859db9d9ceSBram Moolenaarhi def link dAnnotation PreProc 38624ea3babSBram Moolenaarhi def link dSharpBang PreProc 38724ea3babSBram Moolenaarhi def link dAttribute StorageClass 38824ea3babSBram Moolenaarhi def link dIdentifier Identifier 38924ea3babSBram Moolenaarhi def link dVersion dStatement 3906be7f873SBram Moolenaarhi def link dVersionIdentifier Identifier 3916be7f873SBram Moolenaarhi def link dScopeIdentifier Identifier 3926be7f873SBram Moolenaarhi def link dTraitsIdentifier Identifier 393543b7ef7SBram Moolenaarhi def link dPragma PreProc 394543b7ef7SBram Moolenaarhi def link dPragmaIdentifier Identifier 3956be7f873SBram Moolenaarhi def link dExtern dExternal 3966be7f873SBram Moolenaarhi def link dExternIdentifier Identifier 397071d4279SBram Moolenaar 39824ea3babSBram Moolenaar" Marks contents of the asm statment body as special 39924ea3babSBram Moolenaar 40024ea3babSBram Moolenaarsyn match dAsmStatement "\<asm\>" 401543b7ef7SBram Moolenaarsyn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel 40224ea3babSBram Moolenaar 40324ea3babSBram Moolenaarhi def link dAsmBody dUnicode 40424ea3babSBram Moolenaarhi def link dAsmStatement dStatement 40524ea3babSBram Moolenaarhi def link dAsmOpCode Identifier 40624ea3babSBram Moolenaar 407543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained aaa aad aam aas 408543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained add addpd addps addsd 409543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained and andnpd andnps andpd 410543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained arpl bound bsf bsr 411543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained bt btc btr bts 412543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained call bswap andps addss 413543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cbw cdq clc cld 414543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cli clts cmc cmova 415543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove 416543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna 417543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovnae cmovg cmovae clflush 418543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne 419543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno 420543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp 421543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp 422543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmppd cmovpe cmovnp cmovng 423543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd 424543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd 425543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq 426543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq 427543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cvtps2pd cvtpd2pi comiss cmpss 428543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd 429543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi 430543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd 431543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained da daa das db 432543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained dd cwde cvttps2dq cvtsi2ss 433543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained de dec df di 434543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained divpd divps divsd divss 435543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained dq ds dt dw 436543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained enter f2xm1 fabs fadd 437543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained faddp emms dl div 438543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fbld fbstp fchs fclex 439543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe 440543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi 441543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp 442543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fdisi fcomip fcmovne fcmovb 443543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp 444543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained ffree fiadd ficom ficomp 445543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fidivr fild fimul fincstp 446543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fist fistp fisub fisubr 447543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fld finit fidiv feni 448543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e 449543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz 450543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fmulp fnclex fndisi fneni 451543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv 452543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fnstsw fninit fmul fldl2t 453543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fpatan fprem fprem1 fptan 454543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained frstor fsave fscale fsetpm 455543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fsincos fsqrt fst fstcw 456543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fstp fstsw fsub fsubp 457543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fsubr fstenv fsin frndint 458543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fsubrp ftst fucom fucomi 459543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fucomp fucompp fwait fxam 460543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x 461543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained hlt idiv imul in 462543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained inc fyl2xp1 fxch fucomip 463543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained ins insb insd insw 464543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained into invd invlpg iret 465543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained ja jae jb jbe 466543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jcxz je jecxz jg 467543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jge jc iretd int 468543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jl jle jmp jna 469543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jnb jnbe jnc jne 470543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jnge jnl jnle jno 471543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jns jnz jo jp 472543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jpe jnp jng jnae 473543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained jpo js jz lahf 474543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained ldmxcsr lds lea leave 475543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained lfence lfs lgdt lgs 476543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained lldt lmsw lock lods 477543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained lodsb lidt les lar 478543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained lodsd lodsw loop loope 479543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained loopnz loopz lsl lss 480543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps 481543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained maxss mfence minpd minps 482543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained minsd maxsd ltr loopne 483543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained minss mov movapd movaps 484543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps 485543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movhps movlhps movlpd movlps 486543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movmskps movntdq movnti movntpd 487543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movntps movmskpd movhpd movd 488543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movntq movq movq2dq movs 489543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movsd movss movsw movsx 490543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movups movzx mul mulpd 491543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained mulsd mulss neg nop 492543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained not mulps movupd movsb 493543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained or orpd orps out 494543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained outsb outsd outsw packssdw 495543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained packuswb paddb paddd paddq 496543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained paddsw paddusb paddusw paddw 497543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pand paddsb packsswb outs 498543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb 499543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw 500543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub 501543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw 502543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmullw pminsw pextrw pcmpeqd 503543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmuludq pop popa popad 504543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 505543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw 506543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pshufw pslld pslldq psllq 507543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained psllw pshuflw prefetcht1 popf 508543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained psrad psraw psrld psrldq 509543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained psrlw psubb psubd psubq 510543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained psubsw psubusb psubusw psubw 511543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw 512543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained punpckldq punpckhbw psubsb psrlq 513543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha 514543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pushf pushfd pxor rcl 515543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc 516543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained rep repe repne repnz 517543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained repz rdtsc rcpps pushad 518543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained ret retf rol ror 519543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal 520543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained sbb scas scasb scasd 521543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained seta setae setb setbe 522543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained setc scasw sar rsm 523543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained sete setg setge setl 524543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained setna setnae setnb setnbe 525543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained setne setng setnge setnl 526543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained setno setnp setns setnz 527543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained seto setnle setnc setle 528543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained setp setpe setpo sets 529543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained sfence sgdt shl shld 530543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained shrd shufpd shufps sidt 531543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd 532543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained sqrtss sldt shr setz 533543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained stc std sti stmxcsr 534543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained stosb stosd stosw str 535543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained subpd subps subsd subss 536543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained sysexit test ucomisd ucomiss 537543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained ud2 sysenter sub stos 538543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps 539543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained verw wbinvd wrmsr xadd 540543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained xchg xlatb xor xorpd 541543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained xorps pfrcpit1 pfmin movddup 542543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained addsubpd addsubps fisttp haddps 543543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor 544543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained haddpd xlat wait verr 545543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movshdup movsldup mwait pfcmpeq 546543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd 547543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmul 548543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 549543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr 550543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmulhrw pswapd syscall sysret 551543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained vpmuldq xgetbv cmpxchg8b cmpxchg16b 552543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pabsb pabsd pabsw palignr 553543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained phaddd phaddsw phaddw phsubd 554543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained phsubsw phsubw pmaddubsw pmulhrsw 555543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pshufb psignb psignd psignw 556543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained popfq pushfq blendpd blendps 557543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained blendvpd blendvps extractps insertps 558543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained movntdqa mpsadbw packusdw pblendvb 559543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pblendw pcmpeqq pextrb pextrd 560543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pextrq phminposuw pinsrb pinsrd 561543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pinsrq pmaxsb pmaxsd pmaxud 562543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmaxuw pminsb pminsd pminud 563543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pminuw pmulld ptest roundpd 564543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained roundps roundsd roundss pmuldq 565543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmovsxbd pmovsxdq pmovzxbq pmovzxdq 566543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmovsxbq pmovsxwd pmovzxbq pmovzxwd 567543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pmovsxbw pmovsxwq pmovzxbw pmovzxwq 568543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained crc32 pcmpestri pcmpestrm pcmpgtq 569543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained pcmpistri pcmpistrm popcnt pi2fd 570543b7ef7SBram Moolenaarsyn keyword dAsmOpCode contained adc 57124ea3babSBram Moolenaar 5726be7f873SBram Moolenaarlet &cpo = s:cpo_save 5736be7f873SBram Moolenaarunlet s:cpo_save 574