blob: 7835f550fc5b7c45ba67e61a10df7cf7e5c8b972 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: ELF
3" Maintainer: Christian V. J. Brüssow <cvjb@cvjb.de>
4" Last Change: Son 22 Jun 2003 20:43:14 CEST
5" Filenames: *.ab,*.am
6" URL: http://www.cvjb.de/comp/vim/elf.vim
Bram Moolenaar5c736222010-01-06 20:54:52 +01007" $Id: elf.vim,v 1.1 2004/06/13 19:52:27 vimboss Exp $
Bram Moolenaar071d4272004-06-13 20:20:40 +00008"
9" ELF: Extensible Language Facility
10" This is the Applix Inc., Macro and Builder programming language.
11" It has nothing in common with the binary format called ELF.
12
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020013" quit when a syntax file was already loaded
14if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000015 finish
16endif
17
18" Case does not matter
19syn case ignore
20
21" Environments
22syn region elfEnvironment transparent matchgroup=Special start="{" matchgroup=Special end="}" contains=ALLBUT,elfBraceError
23
24" Unmatched braces
25syn match elfBraceError "}"
26
27" All macros must have at least one of these definitions
28syn keyword elfSpecial endmacro
29syn region elfSpecial transparent matchgroup=Special start="^\(\(macro\)\|\(set\)\) \S\+$" matchgroup=Special end="^\(\(endmacro\)\|\(endset\)\)$" contains=ALLBUT,elfBraceError
30
31" Preprocessor Commands
32syn keyword elfPPCom define include
33
34" Some keywords
35syn keyword elfKeyword false true null
36syn keyword elfKeyword var format object function endfunction
37
38" Conditionals and loops
39syn keyword elfConditional if else case of endcase for to next while until return goto
40
41" All built-in elf macros end with an '@'
42syn match elfMacro "[0-9_A-Za-z]\+@"
43
44" Strings and characters
45syn region elfString start=+"+ skip=+\\\\\|\\"+ end=+"+
46
47" Numbers
48syn match elfNumber "-\=\<[0-9]*\.\=[0-9_]\>"
49
50" Comments
51syn region elfComment start="/\*" end="\*/"
52syn match elfComment "\'.*$"
53
54syn sync ccomment elfComment
55
56" Parenthesis
57syn match elfParens "[\[\]()]"
58
59" Punctuation
60syn match elfPunct "[,;]"
61
62" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020063" Only when an item doesn't have highlighting yet
64command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020066" The default methods for highlighting. Can be overridden later.
67HiLink elfComment Comment
68HiLink elfPPCom Include
69HiLink elfKeyword Keyword
70HiLink elfSpecial Special
71HiLink elfEnvironment Special
72HiLink elfBraceError Error
73HiLink elfConditional Conditional
74HiLink elfMacro Function
75HiLink elfNumber Number
76HiLink elfString String
77HiLink elfParens Delimiter
78HiLink elfPunct Delimiter
Bram Moolenaar071d4272004-06-13 20:20:40 +000079
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020080delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000081
82let b:current_syntax = "elf"
83
84" vim:ts=8:sw=4:nocindent:smartindent: