blob: fc12919c501580e1ca6a9a6e255ef70e117c2376 [file] [log] [blame]
Bram Moolenaara1ba8112005-06-28 23:23:32 +00001" Vim syntax file
2" Language: ld(1) script
Bram Moolenaar57657d82006-04-21 22:12:41 +00003" Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-04-19
Bram Moolenaara1ba8112005-06-28 23:23:32 +00005
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
Bram Moolenaar42eeac32005-06-29 22:40:58 +000019syn keyword ldPreProc SECTIONS MEMORY OVERLAY PHDRS VERSION INCLUDE
Bram Moolenaara1ba8112005-06-28 23:23:32 +000020syn 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
Bram Moolenaar42eeac32005-06-29 22:40:58 +000027syn keyword ldKeyword ENTRY INPUT GROUP OUTPUT
Bram Moolenaara1ba8112005-06-28 23:23:32 +000028 \ 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 '[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