2025-04-03 10:42:46 +01:00
|
|
|
if exists('b:current_syntax')
|
|
|
|
|
finish
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
let s:save_cpo = &cpoptions
|
|
|
|
|
set cpoptions&vim
|
|
|
|
|
|
2025-04-10 12:19:13 +01:00
|
|
|
syn keyword mieUnspecifiedStatement record data define type global
|
2025-04-03 10:42:46 +01:00
|
|
|
syn keyword mieInstruction
|
|
|
|
|
\ alloca load store call br cmp
|
|
|
|
|
\ c.z c.nz c.eq c.ne c.lt c.le c.gt c.ge
|
|
|
|
|
\ br br.t br.f
|
|
|
|
|
\ add sub div mul push pop msg
|
2025-04-10 12:19:13 +01:00
|
|
|
\ getelementptr switch ret
|
2025-04-03 10:42:46 +01:00
|
|
|
syn match mieRegister "%[0-9]\>"
|
|
|
|
|
syn match mieRegister "%[1-9][0-9]\+\>"
|
|
|
|
|
syn match mieRegister "%\w\+\>"
|
|
|
|
|
syn match mieIdentifier /@\(\w\+\)\(\.\(\w\+\)\)*\>/
|
|
|
|
|
syn match mieIdentifier /@\.\(\w\+\)\(\.\(\w\+\)\)*\>/
|
|
|
|
|
syn match mieLabel /\(\w\+\)\(\.\(\w\+\)\)*\:/
|
2025-04-10 12:19:13 +01:00
|
|
|
syn keyword mieType id ptr str sym label void
|
|
|
|
|
syn keyword mieTypeModifier external
|
2025-04-03 10:42:46 +01:00
|
|
|
syn match mieType "i[0-9]\>"
|
|
|
|
|
syn match mieType "i[1-9][0-9]\+\>"
|
2025-04-10 12:19:13 +01:00
|
|
|
syn keyword mieBlockType lambda instance static class
|
2025-04-03 10:42:46 +01:00
|
|
|
|
|
|
|
|
syn match mieFieldIndex /#[0-9]\+:\>/
|
|
|
|
|
syn match mieFieldIndex /#-[0-9]\+:\>/
|
|
|
|
|
syn match mieFieldIndex /#0x[:xdigit:]\+:\>/
|
|
|
|
|
syn match mieFieldIndex /#-0x[:xdigit:]\+:\>/
|
|
|
|
|
|
|
|
|
|
syn region mieString start=+"+ end=+"\%(u8\)\=+ end=+$+ extend
|
|
|
|
|
|
|
|
|
|
syn match mieInteger /#[0-9]\+\>/
|
|
|
|
|
syn match mieInteger /#-[0-9]\+\>/
|
|
|
|
|
syn match mieInteger /#0x[:xdigit:]\+\>/
|
|
|
|
|
syn match mieInteger /#-0x[:xdigit:]\+\>/
|
|
|
|
|
|
|
|
|
|
syn keyword mieTodo contained TODO FIXME XXX NOTE HACK TBD
|
|
|
|
|
syn region mieBlockComment start="/\*" end="\*/" contains=mieTodo,mieBlockComment
|
|
|
|
|
syn match mieLineComment ";.*$" contains=mieTodo,mieBlockComment
|
|
|
|
|
syn cluster mieComment contains=mieLineComment,mieBlockComment
|
|
|
|
|
|
|
|
|
|
syn match mieBrackets "[[\]]" display
|
|
|
|
|
syn match mieParens "[()]" display
|
|
|
|
|
syn match ivyPropertySymbol "\$" display
|
|
|
|
|
|
|
|
|
|
" The default highlighting.
|
|
|
|
|
hi def link mieUnspecifiedStatement Statement
|
|
|
|
|
hi def link ivyPropertySymbol Statement
|
|
|
|
|
|
|
|
|
|
hi def link mieInteger Number
|
|
|
|
|
|
|
|
|
|
hi def link mieParens Delimiter
|
|
|
|
|
hi def link mieBraces Structure
|
|
|
|
|
|
|
|
|
|
hi def link miePropertyName @property
|
|
|
|
|
hi def link mieFieldName @variable.parameter
|
|
|
|
|
hi def link mieClassName Type
|
|
|
|
|
hi def link mieLambdaName @variable.parameter
|
|
|
|
|
|
|
|
|
|
hi def link mieInstruction Function
|
|
|
|
|
hi def link mieIdentifier Identifier
|
|
|
|
|
hi def link mieLabel Tag
|
|
|
|
|
hi def link mieIndexBase @variable.builtin
|
|
|
|
|
hi def link mieRegister Constant
|
|
|
|
|
|
|
|
|
|
hi def link mieString String
|
|
|
|
|
hi def link mieType Type
|
|
|
|
|
hi def link mieBlockType @attribute
|
2025-04-10 12:19:13 +01:00
|
|
|
hi def link mieTypeModifier @attribute
|
2025-04-03 10:42:46 +01:00
|
|
|
|
|
|
|
|
hi def link mieComment Comment
|
|
|
|
|
hi def link mieLineComment mieComment
|
|
|
|
|
hi def link mieBlockComment mieComment
|
|
|
|
|
hi def link mieLineContinuation mieComment
|
|
|
|
|
|
|
|
|
|
hi def link mieIdent @variable.builtin
|
|
|
|
|
hi def link mieAtom Constant
|
|
|
|
|
|
2025-04-10 12:19:13 +01:00
|
|
|
let b:current_syntax = 'mie'
|
2025-04-03 10:42:46 +01:00
|
|
|
|
|
|
|
|
let &cpoptions = s:save_cpo
|
|
|
|
|
unlet s:save_cpo
|
|
|
|
|
|