ox.vim (1221B)
1 " Clear any existing syntax 2 if exists("b:current_syntax") 3 finish 4 endif 5 6 " Keywords 7 syntax keyword oxKeyword if else while fn fx for continue break struct typedef print print_ return 8 9 " Types 10 syntax keyword oxType int float str bool i8 i16 i32 i64 i128 u8 u16 u32 u64 u128 f32 f64 f128 uint char chr void cstr voidp 11 12 " Constants 13 syntax keyword oxConstant true false null 14 15 " Comments: // EOL 16 syntax match oxComment "//.*$" 17 18 " Strings: "..." 19 syntax region oxString start=/"/ end=/"/ skip=/\\"/ 20 21 " Char def 22 syntax match oxChar /'[^\']'/ 23 syntax match oxCharError /'[^\']\{2,}'/ 24 25 " Numbers 26 syntax match oxNumber "\v(\d+(\.\d+)?)" 27 28 " Operators 29 syntax match oxOperator /[?;!~#*\/+\-:=<>]/ containedin=ALL 30 31 " Types override 32 syntax match oxType2 /\<[i|u|f]\(8\|16\|32\|64\)\>/ 33 34 " Highlight groups 35 hi def link oxOperator Operator 36 hi def link oxKeyword Keyword 37 hi def link oxType Type 38 hi def link oxType2 Type 39 hi def link oxConstant Constant 40 hi def link oxComment Comment 41 hi def link oxString String 42 hi def link oxChar Character 43 hi def link oxCharError Error 44 hi def link oxNumber Number 45 46 let b:current_syntax = "ox"