43 lines
1.4 KiB
VimL
43 lines
1.4 KiB
VimL
" fox32 vim syntax highlighting
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syn match foxIdentifier /[_A-Za-z0-9]*/
|
|
syn region foxString start=/"/ end=/"/ skip=/\\"/
|
|
syn match foxCharacter /'\(?\|\\?\)/
|
|
syn match foxDecimalNumber /\$\?-\?\d\+/
|
|
syn match foxBinaryNumber /\$\?-\?0b[01]\+/
|
|
syn match foxHexNumber /\$\?-\?0x\x\+/
|
|
|
|
syn match foxComment ";.*$"
|
|
syn match foxInclude "#.*$"
|
|
|
|
syn match foxRegisters /\vr(3[01]|[12]?\d|sp)/
|
|
|
|
syn match foxLabel /[_A-Za-z0-9]*:/
|
|
|
|
syn keyword foxInstructions nop halt brk reti ret ise icl mse mcl
|
|
syn keyword foxInstructions inc dec not jmp call loop rjmp rcall rloop push pop int tlb flp
|
|
syn keyword foxInstructions add sub mul div rem imul idiv irem and or xor sla sra srl rol ror bse bcl bts cmp movz mov rta in out
|
|
|
|
syn keyword foxConditions ifz ifnz ifc ifnc ifgteq ifgt iflteq iflt
|
|
|
|
syn keyword foxData data
|
|
|
|
let b:current_syntax = "fox32"
|
|
hi def link foxIdentifier Identifier
|
|
hi def link foxString String
|
|
hi def link foxCharacter Character
|
|
hi def link foxDecimalNumber Number
|
|
hi def link foxBinaryNumber Number
|
|
hi def link foxHexNumber Number
|
|
hi def link foxComment Comment
|
|
hi def link foxInclude Include
|
|
hi def link foxRegisters Operator
|
|
hi def link foxLabel Function
|
|
hi def link foxInstructions Statement
|
|
hi def link foxConditions Conditional
|
|
hi def link foxData Keyword
|