mmix.vim 4.9 KB

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