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