blob: 678048968a4afda52b94f7acf344ee948e90dc56 [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
7" $Id$
8"
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
13" For version 5.x: Clear all syntax items
14" For version 6.x: Quit when a syntax file was already loaded
15if version < 600
16 syntax clear
17elseif exists("b:current_syntax")
18 finish
19endif
20
21" Case does not matter
22syn case ignore
23
24" Environments
25syn region elfEnvironment transparent matchgroup=Special start="{" matchgroup=Special end="}" contains=ALLBUT,elfBraceError
26
27" Unmatched braces
28syn match elfBraceError "}"
29
30" All macros must have at least one of these definitions
31syn keyword elfSpecial endmacro
32syn region elfSpecial transparent matchgroup=Special start="^\(\(macro\)\|\(set\)\) \S\+$" matchgroup=Special end="^\(\(endmacro\)\|\(endset\)\)$" contains=ALLBUT,elfBraceError
33
34" Preprocessor Commands
35syn keyword elfPPCom define include
36
37" Some keywords
38syn keyword elfKeyword false true null
39syn keyword elfKeyword var format object function endfunction
40
41" Conditionals and loops
42syn keyword elfConditional if else case of endcase for to next while until return goto
43
44" All built-in elf macros end with an '@'
45syn match elfMacro "[0-9_A-Za-z]\+@"
46
47" Strings and characters
48syn region elfString start=+"+ skip=+\\\\\|\\"+ end=+"+
49
50" Numbers
51syn match elfNumber "-\=\<[0-9]*\.\=[0-9_]\>"
52
53" Comments
54syn region elfComment start="/\*" end="\*/"
55syn match elfComment "\'.*$"
56
57syn sync ccomment elfComment
58
59" Parenthesis
60syn match elfParens "[\[\]()]"
61
62" Punctuation
63syn match elfPunct "[,;]"
64
65" Define the default highlighting.
66" For version 5.7 and earlier: only when not done already
67" For version 5.8 and later: only when an item doesn't have highlighting yet
68if version >= 508 || !exists("did_elf_syn_inits")
69 if version < 508
70 let did_elf_syn_inits = 1
71 command -nargs=+ HiLink hi link <args>
72 else
73 command -nargs=+ HiLink hi def link <args>
74 endif
75
76 " The default methods for highlighting. Can be overridden later.
77 HiLink elfComment Comment
78 HiLink elfPPCom Include
79 HiLink elfKeyword Keyword
80 HiLink elfSpecial Special
81 HiLink elfEnvironment Special
82 HiLink elfBraceError Error
83 HiLink elfConditional Conditional
84 HiLink elfMacro Function
85 HiLink elfNumber Number
86 HiLink elfString String
87 HiLink elfParens Delimiter
88 HiLink elfPunct Delimiter
89
90 delcommand HiLink
91endif
92
93let b:current_syntax = "elf"
94
95" vim:ts=8:sw=4:nocindent:smartindent: