83 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:             ld(1) script
 | |
| " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
 | |
| " Latest Revision:      2006-04-19
 | |
| " Last Change:		2023 Apr 19
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| syn keyword ldTodo          contained TODO FIXME XXX NOTE
 | |
| 
 | |
| syn region  ldComment       start='/\*' end='\*/' contains=ldTodo,@Spell
 | |
| 
 | |
| syn region  ldFileName      start=+"+ end=+"+
 | |
| 
 | |
| syn keyword ldPreProc       SECTIONS MEMORY OVERLAY PHDRS VERSION INCLUDE
 | |
| syn match   ldPreProc       '\<VERS_\d\+\.\d\+'
 | |
| 
 | |
| syn keyword ldFunction      ABSOLUTE ADDR ALIGN BLOCK DATA_SEGMENT_ALIGN
 | |
|                             \ DATA_SEGMENT_END DATA_SEGMENT_RELRO_END DEFINED
 | |
|                             \ LOADADDR MAX MIN NEXT SIZEOF SIZEOF_HEADERS
 | |
|                             \ sizeof_headers
 | |
| 
 | |
| syn keyword ldKeyword       ENTRY INPUT GROUP OUTPUT
 | |
|                             \ SEARCH_DIR STARTUP OUTPUT_FORMAT TARGET
 | |
|                             \ ASSERT EXTERN FORCE_COMMON_ALLOCATION
 | |
|                             \ INHIBIT_COMMON_ALLOCATION NOCROSSREFS OUTPUT_ARCH
 | |
|                             \ PROVIDE EXCLUDE_FILE SORT KEEP FILL
 | |
|                             \ CREATE_OBJECT_SYMBOLS CONSTRUCTORS SUBALIGN
 | |
|                             \ FILEHDR AT __asm__ ABSOLUTE
 | |
| 
 | |
| syn keyword ldDataType      BYTE SHORT LONG QUAD SQUAD
 | |
| syn keyword ldOutputType    NOLOAD DSECT COPY INFO OVERLAY
 | |
| syn keyword ldPTType        PT_NULL PT_LOAD PT_DYNAMIC PT_INTERP
 | |
|                             \ PT_NOTE PT_SHLIB PT_PHDR
 | |
| 
 | |
| syn keyword ldSpecial       COMMON
 | |
| syn match   ldSpecial       '/DISCARD/'
 | |
| 
 | |
| syn keyword ldIdentifier    ORIGIN LENGTH
 | |
| 
 | |
| syn match   ldSpecSections  '\.'
 | |
| syn match   ldSections      '\.[^ \t)]\+'
 | |
| syn match   ldSpecSections  '\.\%(text\|data\|bss\|symver\)\>'
 | |
| 
 | |
| syn match   ldNumber        display '\<0[xX]\x\+\>'
 | |
| syn match   ldNumber        display '\d\+[KM]\>' contains=ldNumberMult
 | |
| syn match   ldNumberMult    display '\(\d\+\)\@<=[KM]\>'
 | |
| syn match   ldOctal         contained display '\<0\o\+\>'
 | |
|                             \ contains=ldOctalZero
 | |
| syn match   ldOctalZero     contained display '\<0'
 | |
| syn match   ldOctalError    contained display '\<0\o*[89]\d*\>'
 | |
| 
 | |
| 
 | |
| hi def link ldTodo          Todo
 | |
| hi def link ldComment       Comment
 | |
| hi def link ldFileName      String
 | |
| hi def link ldPreProc       PreProc
 | |
| hi def link ldFunction      Identifier
 | |
| hi def link ldKeyword       Keyword
 | |
| hi def link ldType          Type
 | |
| hi def link ldDataType      ldType
 | |
| hi def link ldOutputType    ldType
 | |
| hi def link ldPTType        ldType
 | |
| hi def link ldSpecial       Special
 | |
| hi def link ldIdentifier    Identifier
 | |
| hi def link ldSections      Constant
 | |
| hi def link ldSpecSections  Special
 | |
| hi def link ldNumber        Number
 | |
| hi def link ldNumberMult    PreProc
 | |
| hi def link ldOctal         ldNumber
 | |
| hi def link ldOctalZero     PreProc
 | |
| hi def link ldOctalError    Error
 | |
| 
 | |
| let b:current_syntax = "ld"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 |