forked from aniani/vim
		
	
		
			
				
	
	
		
			153 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	MMIX
 | |
| " Maintainer:	Dirk Hüsken, <huesken@informatik.uni-tuebingen.de>
 | |
| " Last Change:	2012 Jun 01
 | |
| " 		(Dominique Pelle added @Spell)
 | |
| " Filenames:	*.mms
 | |
| " URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim
 | |
| 
 | |
| " Limitations:	Comments must start with either % or //
 | |
| "		(preferably %, Knuth-Style)
 | |
| 
 | |
| " quit when a syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| syn case ignore
 | |
| 
 | |
| " MMIX data types
 | |
| syn keyword mmixType	byte wyde tetra octa
 | |
| 
 | |
| " different literals...
 | |
| syn match decNumber		"[0-9]*"
 | |
| syn match octNumber		"0[0-7][0-7]\+"
 | |
| syn match hexNumber		"#[0-9a-fA-F]\+"
 | |
| syn region mmixString		start=+"+ skip=+\\"+ end=+"+ contains=@Spell
 | |
| syn match mmixChar		"'.'"
 | |
| 
 | |
| " ...and more special MMIX stuff
 | |
| syn match mmixAt		"@"
 | |
| syn keyword mmixSegments	Data_Segment Pool_Segment Stack_Segment
 | |
| 
 | |
| syn match mmixIdentifier	"[a-z_][a-z0-9_]*"
 | |
| 
 | |
| " labels (for branches etc)
 | |
| syn match mmixLabel		"^[a-z0-9_:][a-z0-9_]*"
 | |
| syn match mmixLabel		"[0-9][HBF]"
 | |
| 
 | |
| " pseudo-operations
 | |
| syn keyword mmixPseudo		is loc greg
 | |
| 
 | |
| " comments
 | |
| syn match mmixComment		"%.*" contains=@Spell
 | |
| syn match mmixComment		"//.*" contains=@Spell
 | |
| syn match mmixComment		"^\*.*" contains=@Spell
 | |
| 
 | |
| 
 | |
| syn keyword mmixOpcode	trap fcmp fun feql fadd fix fsub fixu
 | |
| syn keyword mmixOpcode	fmul fcmpe fune feqle fdiv fsqrt frem fint
 | |
| 
 | |
| syn keyword mmixOpcode	floti flotui sfloti sflotui i
 | |
| syn keyword mmixOpcode	muli mului divi divui
 | |
| syn keyword mmixOpcode	addi addui subi subui
 | |
| syn keyword mmixOpcode	2addui 4addui 8addui 16addui
 | |
| syn keyword mmixOpcode	cmpi cmpui negi negui
 | |
| syn keyword mmixOpcode	sli slui sri srui
 | |
| syn keyword mmixOpcode	bnb bzb bpb bodb
 | |
| syn keyword mmixOpcode	bnnb bnzb bnpb bevb
 | |
| syn keyword mmixOpcode	pbnb pbzb pbpb pbodb
 | |
| syn keyword mmixOpcode	pbnnb pbnzb pbnpb pbevb
 | |
| syn keyword mmixOpcode	csni cszi cspi csodi
 | |
| syn keyword mmixOpcode	csnni csnzi csnpi csevi
 | |
| syn keyword mmixOpcode	zsni zszi zspi zsodi
 | |
| syn keyword mmixOpcode	zsnni zsnzi zsnpi zsevi
 | |
| syn keyword mmixOpcode	ldbi ldbui ldwi ldwui
 | |
| syn keyword mmixOpcode	ldti ldtui ldoi ldoui
 | |
| syn keyword mmixOpcode	ldsfi ldhti cswapi ldunci
 | |
| syn keyword mmixOpcode	ldvtsi preldi pregoi goi
 | |
| syn keyword mmixOpcode	stbi stbui stwi stwui
 | |
| syn keyword mmixOpcode	stti sttui stoi stoui
 | |
| syn keyword mmixOpcode	stsfi sthti stcoi stunci
 | |
| syn keyword mmixOpcode	syncdi presti syncidi pushgoi
 | |
| syn keyword mmixOpcode	ori orni nori xori
 | |
| syn keyword mmixOpcode	andi andni nandi nxori
 | |
| syn keyword mmixOpcode	bdifi wdifi tdifi odifi
 | |
| syn keyword mmixOpcode	muxi saddi mori mxori
 | |
| syn keyword mmixOpcode	muli mului divi divui
 | |
| 
 | |
| syn keyword mmixOpcode	flot flotu sflot sflotu
 | |
| syn keyword mmixOpcode	mul mulu div divu
 | |
| syn keyword mmixOpcode	add addu sub subu
 | |
| syn keyword mmixOpcode	2addu 4addu 8addu 16addu
 | |
| syn keyword mmixOpcode	cmp cmpu neg negu
 | |
| syn keyword mmixOpcode	sl slu sr sru
 | |
| syn keyword mmixOpcode	bn bz bp bod
 | |
| syn keyword mmixOpcode	bnn bnz bnp bev
 | |
| syn keyword mmixOpcode	pbn pbz pbp pbod
 | |
| syn keyword mmixOpcode	pbnn pbnz pbnp pbev
 | |
| syn keyword mmixOpcode	csn csz csp csod
 | |
| syn keyword mmixOpcode	csnn csnz csnp csev
 | |
| syn keyword mmixOpcode	zsn zsz zsp zsod
 | |
| syn keyword mmixOpcode	zsnn zsnz zsnp zsev
 | |
| syn keyword mmixOpcode	ldb ldbu ldw ldwu
 | |
| syn keyword mmixOpcode	ldt ldtu ldo ldou
 | |
| syn keyword mmixOpcode	ldsf ldht cswap ldunc
 | |
| syn keyword mmixOpcode	ldvts preld prego go
 | |
| syn keyword mmixOpcode	stb stbu stw stwu
 | |
| syn keyword mmixOpcode	stt sttu sto stou
 | |
| syn keyword mmixOpcode	stsf stht stco stunc
 | |
| syn keyword mmixOpcode	syncd prest syncid pushgo
 | |
| syn keyword mmixOpcode	or orn nor xor
 | |
| syn keyword mmixOpcode	and andn nand nxor
 | |
| syn keyword mmixOpcode	bdif wdif tdif odif
 | |
| syn keyword mmixOpcode	mux sadd mor mxor
 | |
| 
 | |
| syn keyword mmixOpcode	seth setmh setml setl inch incmh incml incl
 | |
| syn keyword mmixOpcode	orh ormh orml orl andh andmh andml andnl
 | |
| syn keyword mmixOpcode	jmp pushj geta put
 | |
| syn keyword mmixOpcode	pop resume save unsave sync swym get trip
 | |
| syn keyword mmixOpcode	set lda
 | |
| 
 | |
| " switch back to being case sensitive
 | |
| syn case match
 | |
| 
 | |
| " general-purpose and special-purpose registers
 | |
| syn match mmixRegister		"$[0-9]*"
 | |
| syn match mmixRegister		"r[A-Z]"
 | |
| syn keyword mmixRegister	rBB rTT rWW rXX rYY rZZ
 | |
| 
 | |
| " Define the default highlighting.
 | |
| " Only when an item doesn't have highlighting yet
 | |
| 
 | |
| " The default methods for highlighting.  Can be overridden later
 | |
| hi def link mmixAt		Type
 | |
| hi def link mmixPseudo	Type
 | |
| hi def link mmixRegister	Special
 | |
| hi def link mmixSegments	Type
 | |
| 
 | |
| hi def link mmixLabel	Special
 | |
| hi def link mmixComment	Comment
 | |
| hi def link mmixOpcode	Keyword
 | |
| 
 | |
| hi def link hexNumber	Number
 | |
| hi def link decNumber	Number
 | |
| hi def link octNumber	Number
 | |
| 
 | |
| hi def link mmixString	String
 | |
| hi def link mmixChar	String
 | |
| 
 | |
| hi def link mmixType	Type
 | |
| hi def link mmixIdentifier	Normal
 | |
| hi def link mmixSpecialComment Comment
 | |
| 
 | |
| " My default color overrides:
 | |
| " hi mmixSpecialComment ctermfg=red
 | |
| "hi mmixLabel ctermfg=lightcyan
 | |
| " hi mmixType ctermbg=black ctermfg=brown
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "mmix"
 | |
| 
 | |
| " vim: ts=8
 |