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