| " Vim syntax file |
| " Language: TI linear assembly language |
| " Document: https://downloads.ti.com/docs/esd/SPRUI03B/#SPRUI03B_HTML/assembler-description.html |
| " Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu> |
| " Last Change: 2025 Jan 08 |
| |
| if exists("b:current_syntax") |
| finish |
| endif |
| |
| syn case ignore |
| |
| " storage types |
| syn match tiasmType "\.bits" |
| syn match tiasmType "\.byte" |
| syn match tiasmType "\.char" |
| syn match tiasmType "\.cstring" |
| syn match tiasmType "\.double" |
| syn match tiasmType "\.field" |
| syn match tiasmType "\.float" |
| syn match tiasmType "\.half" |
| syn match tiasmType "\.int" |
| syn match tiasmType "\.long" |
| syn match tiasmType "\.short" |
| syn match tiasmType "\.string" |
| syn match tiasmType "\.ubyte" |
| syn match tiasmType "\.uchar" |
| syn match tiasmType "\.uhalf" |
| syn match tiasmType "\.uint" |
| syn match tiasmType "\.ulong" |
| syn match tiasmType "\.ushort" |
| syn match tiasmType "\.uword" |
| syn match tiasmType "\.word" |
| |
| syn match tiasmIdentifier "[a-z_][a-z0-9_]*" |
| |
| syn match tiasmDecimal "\<[1-9]\d*\>" display |
| syn match tiasmOctal "\<0[0-7][0-7]\+\>\|\<[0-7]\+[oO]\>" display |
| syn match tiasmHexadecimal "\<0[xX][0-9a-fA-F]\+\>\|\<[0-9][0-9a-fA-F]*[hH]\>" display |
| syn match tiasmBinary "\<0[bB][0-1]\+\>\|\<[01]\+[bB]\>" display |
| |
| syn match tiasmFloat "\<\d\+\.\d*\%(e[+-]\=\d\+\)\=\>" display |
| syn match tiasmFloat "\<\d\%(e[+-]\=\d\+\)\>" display |
| |
| syn match tiasmCharacter "'.'\|''\|'[^']'" |
| |
| syn region tiasmString start="\"" end="\"" skip="\"\"" |
| |
| syn match tiasmFunction "\$[a-zA-Z_][a-zA-Z_0-9]*\ze(" |
| |
| syn keyword tiasmTodo contained TODO FIXME XXX NOTE |
| syn region tiasmComment start=";" end="$" keepend contains=tiasmTodo,@Spell |
| syn match tiasmComment "^[*!].*" contains=tiasmTodo,@Spell |
| syn match tiasmLabel "^[^ *!;][^ :]*" |
| |
| syn match tiasmInclude "\.include" |
| syn match tiasmCond "\.if" |
| syn match tiasmCond "\.else" |
| syn match tiasmCond "\.endif" |
| syn match tiasmMacro "\.macro" |
| syn match tiasmMacro "\.endm" |
| |
| syn match tiasmDirective "\.[A-Za-z][0-9A-Za-z-_]*" |
| |
| syn case match |
| |
| hi def link tiasmLabel Label |
| hi def link tiasmComment Comment |
| hi def link tiasmTodo Todo |
| hi def link tiasmDirective Statement |
| |
| hi def link tiasmInclude Include |
| hi def link tiasmCond PreCondit |
| hi def link tiasmMacro Macro |
| |
| if exists('g:tiasm_legacy_syntax_groups') |
| hi def link hexNumber Number |
| hi def link decNumber Number |
| hi def link octNumber Number |
| hi def link binNumber Number |
| hi def link tiasmHexadecimal hexNumber |
| hi def link tiasmDecimal decNumber |
| hi def link tiasmOctal octNumber |
| hi def link tiasmBinary binNumber |
| else |
| hi def link tiasmHexadecimal Number |
| hi def link tiasmDecimal Number |
| hi def link tiasmOctal Number |
| hi def link tiasmBinary Number |
| endif |
| hi def link tiasmFloat Float |
| |
| hi def link tiasmString String |
| hi def link tiasmStringEscape Special |
| hi def link tiasmCharacter Character |
| hi def link tiasmCharacterEscape Special |
| |
| hi def link tiasmIdentifier Identifier |
| hi def link tiasmType Type |
| hi def link tiasmFunction Function |
| |
| let b:current_syntax = "tiasm" |