xref: /vim-8.2.3635/runtime/syntax/ld.vim (revision 2387773d)
1" Vim syntax file
2" Language:             ld(1) script
3" Previous Maintainer:  Nikolai Weibull <[email protected]>
4" Latest Revision:      2006-04-19
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword ldTodo          contained TODO FIXME XXX NOTE
14
15syn region  ldComment       start='/\*' end='\*/' contains=ldTodo,@Spell
16
17syn region  ldFileName      start=+"+ end=+"+
18
19syn keyword ldPreProc       SECTIONS MEMORY OVERLAY PHDRS VERSION INCLUDE
20syn match   ldPreProc       '\<VERS_\d\+\.\d\+'
21
22syn keyword ldFunction      ABSOLUTE ADDR ALIGN BLOCK DATA_SEGMENT_ALIGN
23                            \ DATA_SEGMENT_END DATA_SEGMENT_RELRO_END DEFINED
24                            \ LOADADDR MAX MIN NEXT SIZEOF SIZEOF_HEADERS
25                            \ sizeof_headers
26
27syn keyword ldKeyword       ENTRY INPUT GROUP OUTPUT
28                            \ SEARCH_DIR STARTUP OUTPUT_FORMAT TARGET
29                            \ ASSERT EXTERN FORCE_COMMON_ALLOCATION
30                            \ INHIBIT_COMMON_ALLOCATION NOCROSSREFS OUTPUT_ARCH
31                            \ PROVIDE EXCLUDE_FILE SORT KEEP FILL
32                            \ CREATE_OBJECT_SYMBOLS CONSTRUCTORS SUBALIGN
33                            \ FILEHDR AT __asm__ ABSOLUTE
34
35syn keyword ldDataType      BYTE SHORT LONG QUAD SQUAD
36syn keyword ldOutputType    NOLOAD DSECT COPY INFO OVERLAY
37syn keyword ldPTType        PT_NULL PT_LOAD PT_DYNAMIC PT_INTERP
38                            \ PT_NOTE PT_SHLIB PT_PHDR
39
40syn keyword ldSpecial       COMMON
41syn match   ldSpecial       '/DISCARD/'
42
43syn keyword ldIdentifier    ORIGIN LENGTH
44
45syn match   ldSpecSections  '\.'
46syn match   ldSections      '\.\S\+'
47syn match   ldSpecSections  '\.\%(text\|data\|bss\|symver\)\>'
48
49syn match   ldNumber        display '\<0[xX]\x\+\>'
50syn match   ldNumber        display '\d\+[KM]\>' contains=ldNumberMult
51syn match   ldNumberMult    display '\(\d\+\)\@<=[KM]\>'
52syn match   ldOctal         contained display '\<0\o\+\>'
53                            \ contains=ldOctalZero
54syn match   ldOctalZero     contained display '\<0'
55syn match   ldOctalError    contained display '\<0\o*[89]\d*\>'
56
57
58hi def link ldTodo          Todo
59hi def link ldComment       Comment
60hi def link ldFileName      String
61hi def link ldPreProc       PreProc
62hi def link ldFunction      Identifier
63hi def link ldKeyword       Keyword
64hi def link ldType          Type
65hi def link ldDataType      ldType
66hi def link ldOutputType    ldType
67hi def link ldPTType        ldType
68hi def link ldSpecial       Special
69hi def link ldIdentifier    Identifier
70hi def link ldSections      Constant
71hi def link ldSpecSections  Special
72hi def link ldNumber        Number
73hi def link ldNumberMult    PreProc
74hi def link ldOctal         ldNumber
75hi def link ldOctalZero     PreProc
76hi def link ldOctalError    Error
77
78let b:current_syntax = "ld"
79
80let &cpo = s:cpo_save
81unlet s:cpo_save
82