home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: MMIX
- " Maintainer: Dirk Hⁿsken, <huesken@informatik.uni-tuebingen.de>
- " Last Change: Wed Apr 24 01:18:52 CEST 2002
- " Filenames: *.mms
- " URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim
-
- " Limitations: Comments must start with either % or //
- " (preferrably %, Knuth-Style)
-
- if version < 600
- syntax clear
- elseif 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=+"+
- 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 "%.*"
- syn match mmixComment "//.*"
- syn match mmixComment "^\*.*"
-
-
- 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.
- " For version 5.7 and earlier: only when not done already
- " For version 5.8 and later: only when an item doesn't have highlighting yet
- if version >= 508 || !exists("did_mmix_syntax_inits")
- if version < 508
- let did_mmix_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink mmixAt Type
- HiLink mmixPseudo Type
- HiLink mmixRegister Special
- HiLink mmixSegments Type
-
- HiLink mmixLabel Special
- HiLink mmixComment Comment
- HiLink mmixOpcode Keyword
-
- HiLink hexNumber Number
- HiLink decNumber Number
- HiLink octNumber Number
-
- HiLink mmixString String
- HiLink mmixChar String
-
- HiLink mmixType Type
- HiLink mmixIdentifier Normal
- HiLink mmixSpecialComment Comment
-
- " My default color overrides:
- " hi mmixSpecialComment ctermfg=red
- "hi mmixLabel ctermfg=lightcyan
- " hi mmixType ctermbg=black ctermfg=brown
-
- delcommand HiLink
- endif
-
- let b:current_syntax = "mmix"
-
- " vim: ts=8
-