39 lines
1.5 KiB
VimL
39 lines
1.5 KiB
VimL
" Vim syntax file
|
|
" Language: MClang
|
|
" Maintainer: MCorange
|
|
" Maintainer: xomf
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syn keyword MCLangKeywords contained memory fn const in inline include assert with returns typedef structdef if else elif end done then while do
|
|
syn keyword MCLangInstructions contained divmod div mod _dbg_print eq lt gt le ge ne shr shl bor band not dup swap drop over rot syscall0 syscall1 syscall2 syscall3 syscall4 syscall5 syscall6
|
|
syn keyword MCLangTypes contained void u8 u16 u32 u64 ptr char
|
|
syn keyword MCLangBool contained true false
|
|
syn keyword MCLangConst contained NULL
|
|
" i8 i16 i32 i64 f32 f64
|
|
|
|
syn match MCLangComment '//.*'
|
|
syn match MCLangIdentifier '(?<=^|\\s)([a-z|A-Z|_|\\-][0-9|a-z|A-Z|_|\\-]+\\([a-z|A-Z|_|\\-][0-9|a-z|A-Z|_|\\-]+\\)|[a-z|A-Z|_|\\-][0-9|a-z|A-Z|_|\\-]+)(?:\\s|$)'
|
|
syn match MCLangNumber '\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b(?!\\$)'
|
|
|
|
syn region MCLangString start='"' end='"' contained
|
|
syn region MCLangChar start='\'' end='\'' contained
|
|
|
|
let b:current_syntax = "MCLang"
|
|
|
|
hi def link MCLangComment Comment
|
|
hi def link MCLangTypes Type
|
|
hi def link MCLangString Constant
|
|
hi def link MCLangChar Character
|
|
hi def link MCLangNumber Constant
|
|
hi def link MCLangConst Constant
|
|
hi def link MCLangBool Boolean
|
|
hi def link MCLangInstructions Operator
|
|
hi def link MCLangKeywords Keyword
|
|
hi def link MCLangIdentifier Identifier
|
|
|
|
|
|
|