| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	MMIX | 
					
						
							| 
									
										
										
										
											2020-10-26 21:12:46 +01:00
										 |  |  | " Maintainer:	Dirk Hüsken, <huesken@informatik.uni-tuebingen.de> | 
					
						
							| 
									
										
										
										
											2012-06-01 22:38:45 +02:00
										 |  |  | " Last Change:	2012 Jun 01 | 
					
						
							|  |  |  | " 		(Dominique Pelle added @Spell) | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Filenames:	*.mms | 
					
						
							|  |  |  | " URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Limitations:	Comments must start with either % or // | 
					
						
							| 
									
										
										
										
											2012-06-01 22:38:45 +02:00
										 |  |  | "		(preferably %, Knuth-Style) | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   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]\+" | 
					
						
							| 
									
										
										
										
											2012-06-01 22:38:45 +02:00
										 |  |  | syn region mmixString		start=+"+ skip=+\\"+ end=+"+ contains=@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2012-06-01 22:38:45 +02:00
										 |  |  | syn match mmixComment		"%.*" contains=@Spell | 
					
						
							|  |  |  | syn match mmixComment		"//.*" contains=@Spell | 
					
						
							|  |  |  | syn match mmixComment		"^\*.*" contains=@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " The default methods for highlighting.  Can be overridden later | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link mmixAt		Type | 
					
						
							|  |  |  | hi def link mmixPseudo	Type | 
					
						
							|  |  |  | hi def link mmixRegister	Special | 
					
						
							|  |  |  | hi def link mmixSegments	Type | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link mmixLabel	Special | 
					
						
							|  |  |  | hi def link mmixComment	Comment | 
					
						
							|  |  |  | hi def link mmixOpcode	Keyword | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link hexNumber	Number | 
					
						
							|  |  |  | hi def link decNumber	Number | 
					
						
							|  |  |  | hi def link octNumber	Number | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link mmixString	String | 
					
						
							|  |  |  | hi def link mmixChar	String | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link mmixType	Type | 
					
						
							|  |  |  | hi def link mmixIdentifier	Normal | 
					
						
							|  |  |  | hi def link mmixSpecialComment Comment | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " My default color overrides: | 
					
						
							|  |  |  | " hi mmixSpecialComment ctermfg=red | 
					
						
							|  |  |  | "hi mmixLabel ctermfg=lightcyan | 
					
						
							|  |  |  | " hi mmixType ctermbg=black ctermfg=brown | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "mmix" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8 |