changeset 98:cd0c9a4a7e44

Added new d.vim
author David Bryant <bagnose@gmail.com>
date Tue, 31 Aug 2010 10:03:37 +0930
parents dcd641209671
children ad672ab258c5
files nobuild/d.vim
diffstat 1 files changed, 457 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nobuild/d.vim	Tue Aug 31 10:03:37 2010 +0930
@@ -0,0 +1,457 @@
+" Vim syntax file for the D programming language (version 1.053 and 2.047).
+"
+" Language:     D
+" Maintainer:   Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
+" Last Change:  2010 Aug 17
+" Version:      0.20
+"
+" Contributors:
+"   - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer
+"   - Shougo Matsushita <Shougo.Matsu@gmail.com>: updates for latest 2.047 highlighting
+"   - Kirk McDonald: version 0.17 updates, with minor modifications
+"     (http://paste.dprogramming.com/dplmb7qx?view=hidelines)
+"   - Tim Keating: patch to fix a bug in highlighting the `\` literal
+"   - Frank Benoit: Fixed a bug that caused some identifiers and numbers to highlight as octal number errors.
+"
+" Please email me with bugs, comments, and suggestions.
+"
+" Options:
+"   d_comment_strings - Set to highlight strings and numbers in comments.
+"
+"   d_hl_operator_overload - Set to highlight D's specially named functions
+"   that when overloaded implement unary and binary operators (e.g. opCmp).
+"
+" Todo:
+"   - Determine a better method of sync'ing than simply setting minlines
+"   to a large number.
+"
+"   - Several keywords (e.g., in, out, inout) are both storage class and
+"   statements, depending on their context. Perhaps use pattern matching to
+"   figure out which and highlight appropriately. For now I have made such
+"   keywords storage classes so their highlighting is consistent with other
+"   keywords that are commonly used with them, but are true storage classes,
+"   such as lazy. Similarly, I made some statement keywords (e.g. body) storage
+"   classes.
+"
+"   - Mark contents of the asm statement body as special
+"
+"   - Maybe highlight the 'exit', 'failure', and 'success' parts of the
+"   scope() statement.
+"
+"   - Highlighting DDoc comments.
+"
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+" Keyword definitions
+"
+syn keyword dExternal              import package module extern
+syn keyword dConditional           if else switch
+syn keyword dBranch                goto break continue
+syn keyword dRepeat                while for do foreach foreach_reverse
+syn keyword dBoolean               true false
+syn keyword dConstant              null
+syn keyword dConstant              __FILE__ __LINE__ __EOF__ __VERSION__
+syn keyword dConstant              __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
+syn keyword dTypedef               alias typedef
+syn keyword dStructure             template interface class struct union
+syn keyword dEnum                  enum
+syn keyword dOperator              new delete typeof typeid cast align is
+syn keyword dOperator              this super
+if exists("d_hl_operator_overload")
+  syn keyword dOpOverload          opNeg opCom opPostInc opPostDec opCast opAdd
+  syn keyword dOpOverload          opSub opSub_r opMul opDiv opDiv_r opMod 
+  syn keyword dOpOverload          opMod_r opAnd opOr opXor opShl opShl_r opShr
+  syn keyword dOpOverload          opShr_r opUShr opUShr_r opCat
+  syn keyword dOpOverload          opCat_r opEquals opEquals opCmp
+  syn keyword dOpOverload          opAssign opAddAssign opSubAssign opMulAssign
+  syn keyword dOpOverload          opDivAssign opModAssign opAndAssign 
+  syn keyword dOpOverload          opOrAssign opXorAssign opShlAssign 
+  syn keyword dOpOverload          opShrAssign opUShrAssign opCatAssign
+  syn keyword dOpOverload          opIndex opIndexAssign opIndexOpAssign
+  syn keyword dOpOverload          opCall opSlice opSliceAssign opSliceOpAssign 
+  syn keyword dOpOverload          opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r
+  syn keyword dOpOverload          opIn opIn_r opPow opDispatch opStar opDot 
+  syn keyword dOpOverload          opApply opApplyReverse
+  syn keyword dOpOverload          opUnary opIndexUnary opSliceUnary
+  syn keyword dOpOverload          opBinary opBinaryRight
+endif
+
+syn keyword dType                  void ushort int uint long ulong float
+syn keyword dType                  byte ubyte double bit char wchar ucent cent
+syn keyword dType                  short bool dchar wstring dstring
+syn keyword dType                  real ireal ifloat idouble
+syn keyword dType                  creal cfloat cdouble
+syn keyword dDebug                 deprecated unittest
+syn keyword dExceptions            throw try catch finally
+syn keyword dScopeDecl             public protected private export
+syn keyword dStatement             debug return with
+syn keyword dStatement             function delegate __traits mixin macro
+syn keyword dStorageClass          in out inout ref lazy body
+syn keyword dStorageClass          pure nothrow
+syn keyword dStorageClass          auto static override final abstract volatile
+syn keyword dStorageClass          __gshared __thread
+syn keyword dStorageClass          synchronized shared immutable const lazy
+syn keyword dPragma                pragma
+syn keyword dIdentifier            _arguments _argptr __vptr __monitor _ctor _dtor
+syn keyword dScopeIdentifier       contained exit success failure
+syn keyword dAttribute             contained safe trusted system
+syn keyword dAttribute             contained property disable
+syn keyword dVersionIdentifier     contained DigitalMars GNU LDC LLVM
+syn keyword dVersionIdentifier     contained X86 X86_64 Windows Win32 Win64 
+syn keyword dVersionIdentifier     contained linux Posix OSX FreeBSD
+syn keyword dVersionIdentifier     contained LittleEndian BigEndian D_Coverage
+syn keyword dVersionIdentifier     contained D_Ddoc D_InlineAsm_X86
+syn keyword dVersionIdentifier     contained D_InlineAsm_X86_64 D_LP64 D_PIC
+syn keyword dVersionIdentifier     contained unittest D_Version2 none all
+
+" Attributes/annotations
+syn match dAnnotation	"@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
+
+" Version Identifiers
+syn match dVersion	"version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier
+syn match dVersion	"[^.]\s*\<version\>"
+syn match dVersion	"^\<version\>"
+
+" Scope Identifiers
+syn match dScope	"scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier
+
+" String is a statement and a module name.
+syn match dAssert "^string"
+syn match dAssert "[^.]\s*\<string\>"ms=s+1
+
+" Assert is a statement and a module name.
+syn match dAssert "^assert"
+syn match dAssert "[^.]\s*\<assert\>"ms=s+1
+
+" dTokens is used by the token string highlighting
+syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
+syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
+syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
+syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation
+
+
+" Labels
+"
+" We contain dScopeDecl so public: private: etc. are not highlighted like labels
+syn match dUserLabel    "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum
+syn keyword dLabel      case default
+
+syn cluster dTokens add=dUserLabel,dLabel
+
+" Comments
+"
+syn keyword dTodo                                                                contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
+syn match dCommentStar	contained "^\s*\*[^/]"me=e-1
+syn match dCommentStar	contained "^\s*\*$"
+syn match dCommentPlus	contained "^\s*+[^/]"me=e-1
+syn match dCommentPlus	contained "^\s*+$"
+if exists("d_comment_strings")
+  syn region dBlockCommentString	contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell
+  syn region dNestedCommentString	contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell
+  syn region dLineCommentString		contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell
+  syn region dBlockComment	start="/\*"  end="\*/" contains=dBlockCommentString,dTodo,@Spell
+  syn region dNestedComment	start="/+"  end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell
+  syn match  dLineComment	"//.*" contains=dLineCommentString,dTodo,@Spell
+else
+  syn region dBlockComment	start="/\*"  end="\*/" contains=dBlockCommentString,dTodo,@Spell
+  syn region dNestedComment	start="/+"  end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell
+  syn match  dLineComment	"//.*" contains=dLineCommentString,dTodo,@Spell
+endif
+
+hi link dLineCommentString	dBlockCommentString
+hi link dBlockCommentString	dString
+hi link dNestedCommentString	dString
+hi link dCommentStar		dBlockComment
+hi link dCommentPlus		dNestedComment
+
+syn cluster dTokens add=dBlockComment,dNestedComment,dLineComment
+
+" /+ +/ style comments and strings that span multiple lines can cause
+" problems. To play it safe, set minlines to a large number.
+syn sync minlines=200
+" Use ccomment for /* */ style comments
+syn sync ccomment dBlockComment
+
+" Characters
+"
+syn match dSpecialCharError contained "[^']"
+
+" Escape sequences (oct,specal char,hex,wchar, character entities \&xxx;)
+" These are not contained because they are considered string literals.
+syn match dEscSequence	"\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)"
+syn match dEscSequence	"\\&[^;& \t]\+;"
+syn match dCharacter	"'[^']*'" contains=dEscSequence,dSpecialCharError
+syn match dCharacter	"'\\''" contains=dEscSequence
+syn match dCharacter	"'[^\\]'"
+
+syn cluster dTokens add=dEscSequence,dCharacter
+
+" Unicode characters
+"
+syn match dUnicode "\\u\d\{4\}"
+
+" String.
+"
+syn region dString	start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dEscSequence,@Spell
+syn region dRawString	start=+`+ end=+`[cwd]\=+ contains=@Spell
+syn region dRawString	start=+r"+ end=+"[cwd]\=+ contains=@Spell
+syn region dHexString	start=+x"+ end=+"[cwd]\=+ contains=@Spell
+syn region dDelimString	start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
+syn region dHereString	start=+q"\z(\I\i*\)\n+ end=+\n\z1"+ contains=@Spell
+
+" Nesting delimited string contents
+"
+syn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell
+syn region dNestBrackString start=+\[+ end=+\]+ contained transparent contains=dNestBrackString,@Spell
+syn region dNestAngleString start=+<+ end=+>+ contained transparent contains=dNestAngleString,@Spell
+syn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell
+
+" Nesting delimited strings
+"
+syn region dParenString	matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell
+syn region dBrackString	matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell
+syn region dAngleString	matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell
+syn region dCurlyString	matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell
+
+hi link dParenString dNestString
+hi link dBrackString dNestString
+hi link dAngleString dNestString
+hi link dCurlyString dNestString
+
+syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString
+
+" Token strings
+"
+syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens
+syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens
+
+syn cluster dTokens add=dTokenString
+
+" Numbers
+"
+syn case ignore
+
+syn match dDec		display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>"
+
+" Hex number
+syn match dHex		display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>"
+
+syn match dOctal	display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>"
+" flag an octal number with wrong digits
+syn match dOctalError	display "\<0[0-7_]*[89][0-9_]*"
+
+" binary numbers
+syn match dBinary	display "\<0b[01_]\+\(u\=l\=\|l\=u\=\)\>"
+
+"floating point without the dot
+syn match dFloat	display "\<\d[0-9_]*\(fi\=\|l\=i\)\>"
+"floating point number, with dot, optional exponent
+syn match dFloat	display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\="
+"floating point number, starting with a dot, optional exponent
+syn match dFloat	display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>"
+"floating point number, without dot, with exponent
+"syn match dFloat	display "\<\d\+e[-+]\=\d\+[fl]\=\>"
+syn match dFloat	display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>"
+
+"floating point without the dot
+syn match dHexFloat	display "\<0x[0-9a-f_]\+\(fi\=\|l\=i\)\>"
+"floating point number, with dot, optional exponent
+syn match dHexFloat	display "\<0x[0-9a-f_]\+\.[0-9a-f_]*\(p[-+]\=[0-9_]\+\)\=[fl]\=i\="
+"floating point number, without dot, with exponent
+syn match dHexFloat	display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>"
+
+syn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat
+
+syn case match
+
+" Pragma (preprocessor) support
+" TODO: Highlight following Integer and optional Filespec.
+syn region  dPragma start="#\s*\(line\>\)" skip="\\$" end="$"
+
+
+" The default highlighting.
+"
+hi def link dBinary              Number
+hi def link dDec                 Number
+hi def link dHex                 Number
+hi def link dOctal               Number
+hi def link dFloat               Float
+hi def link dHexFloat            Float
+hi def link dDebug               Debug
+hi def link dBranch              Conditional
+hi def link dConditional         Conditional
+hi def link dLabel               Label
+hi def link dUserLabel           Label
+hi def link dRepeat              Repeat
+hi def link dExceptions          Exception
+hi def link dAssert              Statement
+hi def link dStatement           Statement
+hi def link dScopeDecl           dStorageClass
+hi def link dStorageClass        StorageClass
+hi def link dBoolean             Boolean
+hi def link dUnicode             Special
+hi def link dTokenStringBrack    String
+hi def link dHereString          String
+hi def link dNestString          String
+hi def link dDelimString         String
+hi def link dRawString           String
+hi def link dString              String
+hi def link dHexString           String
+hi def link dCharacter           Character
+hi def link dEscSequence         SpecialChar
+hi def link dSpecialCharError    Error
+hi def link dOctalError          Error
+hi def link dOperator            Operator
+hi def link dOpOverload          Identifier
+hi def link dConstant            Constant
+hi def link dTypedef             Typedef
+hi def link dEnum                Structure
+hi def link dStructure           Structure
+hi def link dTodo                Todo
+hi def link dType                Type
+hi def link dLineComment         Comment
+hi def link dBlockComment        Comment
+hi def link dNestedComment       Comment
+hi def link dExternal            Include
+hi def link dPragma              PreProc
+hi def link dAnnotation          PreProc
+hi def link dAttribute           StorageClass
+hi def link dIdentifier          Identifier
+hi def link dVersionIdentifier   Identifier
+hi def link dVersion             dStatement
+hi def link dScopeIdentifier     dStatement
+hi def link dScope               dStorageClass
+
+let b:current_syntax = "d"
+
+" Marks contents of the asm statment body as special
+
+syn match dAsmStatement "\<asm\>"
+syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode
+
+hi def link dAsmBody dUnicode
+hi def link dAsmStatement dStatement
+hi def link dAsmOpCode Identifier
+
+syn keyword dAsmOpCode contained	aaa  	aad  	aam  	aas  	adc
+syn keyword dAsmOpCode contained	add 	addpd 	addps 	addsd 	addss
+syn keyword dAsmOpCode contained	and 	andnpd 	andnps 	andpd 	andps
+syn keyword dAsmOpCode contained	arpl 	bound 	bsf 	bsr 	bswap
+syn keyword dAsmOpCode contained	bt 	btc 	btr 	bts 	call
+syn keyword dAsmOpCode contained	cbw 	cdq 	clc 	cld 	clflush
+syn keyword dAsmOpCode contained	cli 	clts 	cmc 	cmova 	cmovae
+syn keyword dAsmOpCode contained	cmovb 	cmovbe 	cmovc 	cmove 	cmovg
+syn keyword dAsmOpCode contained	cmovge 	cmovl 	cmovle 	cmovna 	cmovnae
+syn keyword dAsmOpCode contained	cmovnb 	cmovnbe 	cmovnc 	cmovne 	cmovng
+syn keyword dAsmOpCode contained	cmovnge 	cmovnl 	cmovnle 	cmovno 	cmovnp
+syn keyword dAsmOpCode contained	cmovns 	cmovnz 	cmovo 	cmovp 	cmovpe
+syn keyword dAsmOpCode contained	cmovpo 	cmovs 	cmovz 	cmp 	cmppd
+syn keyword dAsmOpCode contained	cmpps 	cmps 	cmpsb 	cmpsd 	cmpss
+syn keyword dAsmOpCode contained	cmpsw 	cmpxch8b 	cmpxchg 	comisd 	comiss
+syn keyword dAsmOpCode contained	cpuid 	cvtdq2pd 	cvtdq2ps 	cvtpd2dq 	cvtpd2pi
+syn keyword dAsmOpCode contained	cvtpd2ps 	cvtpi2pd 	cvtpi2ps 	cvtps2dq 	cvtps2pd
+syn keyword dAsmOpCode contained	cvtps2pi 	cvtsd2si 	cvtsd2ss 	cvtsi2sd 	cvtsi2ss
+syn keyword dAsmOpCode contained	cvtss2sd 	cvtss2si 	cvttpd2dq 	cvttpd2pi 	cvttps2dq
+syn keyword dAsmOpCode contained	cvttps2pi 	cvttsd2si 	cvttss2si 	cwd 	cwde
+syn keyword dAsmOpCode contained	da 	daa 	das 	db 	dd
+syn keyword dAsmOpCode contained	de 	dec 	df 	di 	div
+syn keyword dAsmOpCode contained	divpd 	divps 	divsd 	divss 	dl
+syn keyword dAsmOpCode contained	dq 	ds 	dt 	dw 	emms
+syn keyword dAsmOpCode contained	enter 	f2xm1 	fabs 	fadd 	faddp
+syn keyword dAsmOpCode contained	fbld 	fbstp 	fchs 	fclex 	fcmovb
+syn keyword dAsmOpCode contained	fcmovbe 	fcmove 	fcmovnb 	fcmovnbe 	fcmovne
+syn keyword dAsmOpCode contained	fcmovnu 	fcmovu 	fcom 	fcomi 	fcomip
+syn keyword dAsmOpCode contained	fcomp 	fcompp 	fcos 	fdecstp 	fdisi
+syn keyword dAsmOpCode contained	fdiv 	fdivp 	fdivr 	fdivrp 	feni
+syn keyword dAsmOpCode contained	ffree 	fiadd 	ficom 	ficomp 	fidiv
+syn keyword dAsmOpCode contained	fidivr 	fild 	fimul 	fincstp 	finit
+syn keyword dAsmOpCode contained	fist 	fistp 	fisub 	fisubr 	fld
+syn keyword dAsmOpCode contained	fld1 	fldcw 	fldenv 	fldl2e 	fldl2t
+syn keyword dAsmOpCode contained	fldlg2 	fldln2 	fldpi 	fldz 	fmul
+syn keyword dAsmOpCode contained	fmulp 	fnclex 	fndisi 	fneni 	fninit
+syn keyword dAsmOpCode contained	fnop 	fnsave 	fnstcw 	fnstenv 	fnstsw
+syn keyword dAsmOpCode contained	fpatan 	fprem 	fprem1 	fptan 	frndint
+syn keyword dAsmOpCode contained	frstor 	fsave 	fscale 	fsetpm 	fsin
+syn keyword dAsmOpCode contained	fsincos 	fsqrt 	fst 	fstcw 	fstenv
+syn keyword dAsmOpCode contained	fstp 	fstsw 	fsub 	fsubp 	fsubr
+syn keyword dAsmOpCode contained	fsubrp 	ftst 	fucom 	fucomi 	fucomip
+syn keyword dAsmOpCode contained	fucomp 	fucompp 	fwait 	fxam 	fxch
+syn keyword dAsmOpCode contained	fxrstor 	fxsave 	fxtract 	fyl2x 	fyl2xp1
+syn keyword dAsmOpCode contained	hlt 	idiv 	imul 	in 	inc
+syn keyword dAsmOpCode contained	ins 	insb 	insd 	insw 	int
+syn keyword dAsmOpCode contained	into 	invd 	invlpg 	iret 	iretd
+syn keyword dAsmOpCode contained	ja 	jae 	jb 	jbe 	jc
+syn keyword dAsmOpCode contained	jcxz 	je 	jecxz 	jg 	jge
+syn keyword dAsmOpCode contained	jl 	jle 	jmp 	jna 	jnae
+syn keyword dAsmOpCode contained	jnb 	jnbe 	jnc 	jne 	jng
+syn keyword dAsmOpCode contained	jnge 	jnl 	jnle 	jno 	jnp
+syn keyword dAsmOpCode contained	jns 	jnz 	jo 	jp 	jpe
+syn keyword dAsmOpCode contained	jpo 	js 	jz 	lahf 	lar
+syn keyword dAsmOpCode contained	ldmxcsr 	lds 	lea 	leave 	les
+syn keyword dAsmOpCode contained	lfence 	lfs 	lgdt 	lgs 	lidt
+syn keyword dAsmOpCode contained	lldt 	lmsw 	lock 	lods 	lodsb
+syn keyword dAsmOpCode contained	lodsd 	lodsw 	loop 	loope 	loopne
+syn keyword dAsmOpCode contained	loopnz 	loopz 	lsl 	lss 	ltr
+syn keyword dAsmOpCode contained	maskmovdqu 	maskmovq 	maxpd 	maxps 	maxsd
+syn keyword dAsmOpCode contained	maxss 	mfence 	minpd 	minps 	minsd
+syn keyword dAsmOpCode contained	minss 	mov 	movapd 	movaps 	movd
+syn keyword dAsmOpCode contained	movdq2q 	movdqa 	movdqu 	movhlps 	movhpd
+syn keyword dAsmOpCode contained	movhps 	movlhps 	movlpd 	movlps 	movmskpd
+syn keyword dAsmOpCode contained	movmskps 	movntdq 	movnti 	movntpd 	movntps
+syn keyword dAsmOpCode contained	movntq 	movq 	movq2dq 	movs 	movsb
+syn keyword dAsmOpCode contained	movsd 	movss 	movsw 	movsx 	movupd
+syn keyword dAsmOpCode contained	movups 	movzx 	mul 	mulpd 	mulps
+syn keyword dAsmOpCode contained	mulsd 	mulss 	neg 	nop 	not
+syn keyword dAsmOpCode contained	or 	orpd 	orps 	out 	outs
+syn keyword dAsmOpCode contained	outsb 	outsd 	outsw 	packssdw 	packsswb
+syn keyword dAsmOpCode contained	packuswb 	paddb 	paddd 	paddq 	paddsb
+syn keyword dAsmOpCode contained	paddsw 	paddusb 	paddusw 	paddw 	pand
+syn keyword dAsmOpCode contained	pandn 	pavgb 	pavgw 	pcmpeqb 	pcmpeqd
+syn keyword dAsmOpCode contained	pcmpeqw 	pcmpgtb 	pcmpgtd 	pcmpgtw 	pextrw
+syn keyword dAsmOpCode contained	pinsrw 	pmaddwd 	pmaxsw 	pmaxub 	pminsw
+syn keyword dAsmOpCode contained	pminub 	pmovmskb 	pmulhuw 	pmulhw 	pmullw
+syn keyword dAsmOpCode contained	pmuludq 	pop 	popa 	popad 	popf
+syn keyword dAsmOpCode contained	popfd 	por 	prefetchnta 	prefetcht0 	prefetcht1
+syn keyword dAsmOpCode contained	prefetcht2 	psadbw 	pshufd 	pshufhw 	pshuflw
+syn keyword dAsmOpCode contained	pshufw 	pslld 	pslldq 	psllq 	psllw
+syn keyword dAsmOpCode contained	psrad 	psraw 	psrld 	psrldq 	psrlq
+syn keyword dAsmOpCode contained	psrlw 	psubb 	psubd 	psubq 	psubsb
+syn keyword dAsmOpCode contained	psubsw 	psubusb 	psubusw 	psubw 	punpckhbw
+syn keyword dAsmOpCode contained	punpckhdq 	punpckhqdq 	punpckhwd 	punpcklbw 	punpckldq
+syn keyword dAsmOpCode contained	punpcklqdq 	punpcklwd 	push 	pusha 	pushad
+syn keyword dAsmOpCode contained	pushf 	pushfd 	pxor 	rcl 	rcpps
+syn keyword dAsmOpCode contained	rcpss 	rcr 	rdmsr 	rdpmc 	rdtsc
+syn keyword dAsmOpCode contained	rep 	repe 	repne 	repnz 	repz
+syn keyword dAsmOpCode contained	ret 	retf 	rol 	ror 	rsm
+syn keyword dAsmOpCode contained	rsqrtps 	rsqrtss 	sahf 	sal 	sar
+syn keyword dAsmOpCode contained	sbb 	scas 	scasb 	scasd 	scasw
+syn keyword dAsmOpCode contained	seta 	setae 	setb 	setbe 	setc
+syn keyword dAsmOpCode contained	sete 	setg 	setge 	setl 	setle
+syn keyword dAsmOpCode contained	setna 	setnae 	setnb 	setnbe 	setnc
+syn keyword dAsmOpCode contained	setne 	setng 	setnge 	setnl 	setnle
+syn keyword dAsmOpCode contained	setno 	setnp 	setns 	setnz 	seto
+syn keyword dAsmOpCode contained	setp 	setpe 	setpo 	sets 	setz
+syn keyword dAsmOpCode contained	sfence 	sgdt 	shl 	shld 	shr
+syn keyword dAsmOpCode contained	shrd 	shufpd 	shufps 	sidt 	sldt
+syn keyword dAsmOpCode contained	smsw 	sqrtpd 	sqrtps 	sqrtsd 	sqrtss
+syn keyword dAsmOpCode contained	stc 	std 	sti 	stmxcsr 	stos
+syn keyword dAsmOpCode contained	stosb 	stosd 	stosw 	str 	sub
+syn keyword dAsmOpCode contained	subpd 	subps 	subsd 	subss 	sysenter
+syn keyword dAsmOpCode contained	sysexit 	test 	ucomisd 	ucomiss 	ud2
+syn keyword dAsmOpCode contained	unpckhpd 	unpckhps 	unpcklpd 	unpcklps 	verr
+syn keyword dAsmOpCode contained	verw 	wait 	wbinvd 	wrmsr 	xadd
+syn keyword dAsmOpCode contained	xchg 	xlat 	xlatb 	xor 	xorpd
+syn keyword dAsmOpCode contained	xorps 				
+syn keyword dAsmOpCode contained	addsubpd 	addsubps 	fisttp 	haddpd 	haddps
+syn keyword dAsmOpCode contained	hsubpd 	hsubps 	lddqu 	monitor 	movddup
+syn keyword dAsmOpCode contained	movshdup 	movsldup 	mwait 		
+syn keyword dAsmOpCode contained	pavgusb 	pf2id 	pfacc 	pfadd 	pfcmpeq
+syn keyword dAsmOpCode contained	pfcmpge 	pfcmpgt 	pfmax 	pfmin 	pfmul
+syn keyword dAsmOpCode contained	pfnacc 	pfpnacc 	pfrcp 	pfrcpit1 	pfrcpit2
+syn keyword dAsmOpCode contained	pfrsqit1 	pfrsqrt 	pfsub 	pfsubr 	pi2fd
+syn keyword dAsmOpCode contained	pmulhrw 	pswapd
+