xref: /vim-8.2.3635/runtime/syntax/mmix.vim (revision cb80aa2d)
1" Vim syntax file
2" Language:	MMIX
3" Maintainer:	Dirk Hüsken, <[email protected]>
4" Last Change:	2012 Jun 01
5" 		(Dominique Pelle added @Spell)
6" Filenames:	*.mms
7" URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim
8
9" Limitations:	Comments must start with either % or //
10"		(preferably %, Knuth-Style)
11
12" quit when a syntax file was already loaded
13if exists("b:current_syntax")
14  finish
15endif
16
17syn case ignore
18
19" MMIX data types
20syn keyword mmixType	byte wyde tetra octa
21
22" different literals...
23syn match decNumber		"[0-9]*"
24syn match octNumber		"0[0-7][0-7]\+"
25syn match hexNumber		"#[0-9a-fA-F]\+"
26syn region mmixString		start=+"+ skip=+\\"+ end=+"+ contains=@Spell
27syn match mmixChar		"'.'"
28
29" ...and more special MMIX stuff
30syn match mmixAt		"@"
31syn keyword mmixSegments	Data_Segment Pool_Segment Stack_Segment
32
33syn match mmixIdentifier	"[a-z_][a-z0-9_]*"
34
35" labels (for branches etc)
36syn match mmixLabel		"^[a-z0-9_:][a-z0-9_]*"
37syn match mmixLabel		"[0-9][HBF]"
38
39" pseudo-operations
40syn keyword mmixPseudo		is loc greg
41
42" comments
43syn match mmixComment		"%.*" contains=@Spell
44syn match mmixComment		"//.*" contains=@Spell
45syn match mmixComment		"^\*.*" contains=@Spell
46
47
48syn keyword mmixOpcode	trap fcmp fun feql fadd fix fsub fixu
49syn keyword mmixOpcode	fmul fcmpe fune feqle fdiv fsqrt frem fint
50
51syn keyword mmixOpcode	floti flotui sfloti sflotui i
52syn keyword mmixOpcode	muli mului divi divui
53syn keyword mmixOpcode	addi addui subi subui
54syn keyword mmixOpcode	2addui 4addui 8addui 16addui
55syn keyword mmixOpcode	cmpi cmpui negi negui
56syn keyword mmixOpcode	sli slui sri srui
57syn keyword mmixOpcode	bnb bzb bpb bodb
58syn keyword mmixOpcode	bnnb bnzb bnpb bevb
59syn keyword mmixOpcode	pbnb pbzb pbpb pbodb
60syn keyword mmixOpcode	pbnnb pbnzb pbnpb pbevb
61syn keyword mmixOpcode	csni cszi cspi csodi
62syn keyword mmixOpcode	csnni csnzi csnpi csevi
63syn keyword mmixOpcode	zsni zszi zspi zsodi
64syn keyword mmixOpcode	zsnni zsnzi zsnpi zsevi
65syn keyword mmixOpcode	ldbi ldbui ldwi ldwui
66syn keyword mmixOpcode	ldti ldtui ldoi ldoui
67syn keyword mmixOpcode	ldsfi ldhti cswapi ldunci
68syn keyword mmixOpcode	ldvtsi preldi pregoi goi
69syn keyword mmixOpcode	stbi stbui stwi stwui
70syn keyword mmixOpcode	stti sttui stoi stoui
71syn keyword mmixOpcode	stsfi sthti stcoi stunci
72syn keyword mmixOpcode	syncdi presti syncidi pushgoi
73syn keyword mmixOpcode	ori orni nori xori
74syn keyword mmixOpcode	andi andni nandi nxori
75syn keyword mmixOpcode	bdifi wdifi tdifi odifi
76syn keyword mmixOpcode	muxi saddi mori mxori
77syn keyword mmixOpcode	muli mului divi divui
78
79syn keyword mmixOpcode	flot flotu sflot sflotu
80syn keyword mmixOpcode	mul mulu div divu
81syn keyword mmixOpcode	add addu sub subu
82syn keyword mmixOpcode	2addu 4addu 8addu 16addu
83syn keyword mmixOpcode	cmp cmpu neg negu
84syn keyword mmixOpcode	sl slu sr sru
85syn keyword mmixOpcode	bn bz bp bod
86syn keyword mmixOpcode	bnn bnz bnp bev
87syn keyword mmixOpcode	pbn pbz pbp pbod
88syn keyword mmixOpcode	pbnn pbnz pbnp pbev
89syn keyword mmixOpcode	csn csz csp csod
90syn keyword mmixOpcode	csnn csnz csnp csev
91syn keyword mmixOpcode	zsn zsz zsp zsod
92syn keyword mmixOpcode	zsnn zsnz zsnp zsev
93syn keyword mmixOpcode	ldb ldbu ldw ldwu
94syn keyword mmixOpcode	ldt ldtu ldo ldou
95syn keyword mmixOpcode	ldsf ldht cswap ldunc
96syn keyword mmixOpcode	ldvts preld prego go
97syn keyword mmixOpcode	stb stbu stw stwu
98syn keyword mmixOpcode	stt sttu sto stou
99syn keyword mmixOpcode	stsf stht stco stunc
100syn keyword mmixOpcode	syncd prest syncid pushgo
101syn keyword mmixOpcode	or orn nor xor
102syn keyword mmixOpcode	and andn nand nxor
103syn keyword mmixOpcode	bdif wdif tdif odif
104syn keyword mmixOpcode	mux sadd mor mxor
105
106syn keyword mmixOpcode	seth setmh setml setl inch incmh incml incl
107syn keyword mmixOpcode	orh ormh orml orl andh andmh andml andnl
108syn keyword mmixOpcode	jmp pushj geta put
109syn keyword mmixOpcode	pop resume save unsave sync swym get trip
110syn keyword mmixOpcode	set lda
111
112" switch back to being case sensitive
113syn case match
114
115" general-purpose and special-purpose registers
116syn match mmixRegister		"$[0-9]*"
117syn match mmixRegister		"r[A-Z]"
118syn keyword mmixRegister	rBB rTT rWW rXX rYY rZZ
119
120" Define the default highlighting.
121" Only when an item doesn't have highlighting yet
122
123" The default methods for highlighting.  Can be overridden later
124hi def link mmixAt		Type
125hi def link mmixPseudo	Type
126hi def link mmixRegister	Special
127hi def link mmixSegments	Type
128
129hi def link mmixLabel	Special
130hi def link mmixComment	Comment
131hi def link mmixOpcode	Keyword
132
133hi def link hexNumber	Number
134hi def link decNumber	Number
135hi def link octNumber	Number
136
137hi def link mmixString	String
138hi def link mmixChar	String
139
140hi def link mmixType	Type
141hi def link mmixIdentifier	Normal
142hi def link mmixSpecialComment Comment
143
144" My default color overrides:
145" hi mmixSpecialComment ctermfg=red
146"hi mmixLabel ctermfg=lightcyan
147" hi mmixType ctermbg=black ctermfg=brown
148
149
150let b:current_syntax = "mmix"
151
152" vim: ts=8
153