neovim/runtime/syntax/mmix.vim

153 lines
4.9 KiB
VimL
Raw Normal View History

" 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