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