neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

d.vim (28632B)


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