blob: 39e209336e63c1ee487e6133e4c3809e3b51f66c [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: MMIX
3" Maintainer: Dirk Hüsken, <huesken@informatik.uni-tuebingen.de>
Bram Moolenaarc8734422012-06-01 22:38:45 +02004" Last Change: 2012 Jun 01
5" (Dominique Pelle added @Spell)
Bram Moolenaar071d4272004-06-13 20:20:40 +00006" 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 //
Bram Moolenaarc8734422012-06-01 22:38:45 +020010" (preferably %, Knuth-Style)
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded
13if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000014 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]\+"
Bram Moolenaarc8734422012-06-01 22:38:45 +020026syn region mmixString start=+"+ skip=+\\"+ end=+"+ contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000027syn 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
Bram Moolenaarc8734422012-06-01 22:38:45 +020043syn match mmixComment "%.*" contains=@Spell
44syn match mmixComment "//.*" contains=@Spell
45syn match mmixComment "^\*.*" contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000046
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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200121" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000122
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200123" The default methods for highlighting. Can be overridden later
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200124hi def link mmixAt Type
125hi def link mmixPseudo Type
126hi def link mmixRegister Special
127hi def link mmixSegments Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200129hi def link mmixLabel Special
130hi def link mmixComment Comment
131hi def link mmixOpcode Keyword
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200133hi def link hexNumber Number
134hi def link decNumber Number
135hi def link octNumber Number
Bram Moolenaar071d4272004-06-13 20:20:40 +0000136
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200137hi def link mmixString String
138hi def link mmixChar String
Bram Moolenaar071d4272004-06-13 20:20:40 +0000139
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200140hi def link mmixType Type
141hi def link mmixIdentifier Normal
142hi def link mmixSpecialComment Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +0000143
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200144" My default color overrides:
145" hi mmixSpecialComment ctermfg=red
146"hi mmixLabel ctermfg=lightcyan
147" hi mmixType ctermbg=black ctermfg=brown
Bram Moolenaar071d4272004-06-13 20:20:40 +0000148
Bram Moolenaar071d4272004-06-13 20:20:40 +0000149
150let b:current_syntax = "mmix"
151
152" vim: ts=8