summaryrefslogtreecommitdiff
path: root/runtime/syntax/elf.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/elf.vim')
-rw-r--r--runtime/syntax/elf.vim95
1 files changed, 95 insertions, 0 deletions
diff --git a/runtime/syntax/elf.vim b/runtime/syntax/elf.vim
new file mode 100644
index 000000000..678048968
--- /dev/null
+++ b/runtime/syntax/elf.vim
@@ -0,0 +1,95 @@
+" Vim syntax file
+" Language: ELF
+" Maintainer: Christian V. J. Brüssow <cvjb@cvjb.de>
+" Last Change: Son 22 Jun 2003 20:43:14 CEST
+" Filenames: *.ab,*.am
+" URL: http://www.cvjb.de/comp/vim/elf.vim
+" $Id$
+"
+" ELF: Extensible Language Facility
+" This is the Applix Inc., Macro and Builder programming language.
+" It has nothing in common with the binary format called ELF.
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" Case does not matter
+syn case ignore
+
+" Environments
+syn region elfEnvironment transparent matchgroup=Special start="{" matchgroup=Special end="}" contains=ALLBUT,elfBraceError
+
+" Unmatched braces
+syn match elfBraceError "}"
+
+" All macros must have at least one of these definitions
+syn keyword elfSpecial endmacro
+syn region elfSpecial transparent matchgroup=Special start="^\(\(macro\)\|\(set\)\) \S\+$" matchgroup=Special end="^\(\(endmacro\)\|\(endset\)\)$" contains=ALLBUT,elfBraceError
+
+" Preprocessor Commands
+syn keyword elfPPCom define include
+
+" Some keywords
+syn keyword elfKeyword false true null
+syn keyword elfKeyword var format object function endfunction
+
+" Conditionals and loops
+syn keyword elfConditional if else case of endcase for to next while until return goto
+
+" All built-in elf macros end with an '@'
+syn match elfMacro "[0-9_A-Za-z]\+@"
+
+" Strings and characters
+syn region elfString start=+"+ skip=+\\\\\|\\"+ end=+"+
+
+" Numbers
+syn match elfNumber "-\=\<[0-9]*\.\=[0-9_]\>"
+
+" Comments
+syn region elfComment start="/\*" end="\*/"
+syn match elfComment "\'.*$"
+
+syn sync ccomment elfComment
+
+" Parenthesis
+syn match elfParens "[\[\]()]"
+
+" Punctuation
+syn match elfPunct "[,;]"
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_elf_syn_inits")
+ if version < 508
+ let did_elf_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ " The default methods for highlighting. Can be overridden later.
+ HiLink elfComment Comment
+ HiLink elfPPCom Include
+ HiLink elfKeyword Keyword
+ HiLink elfSpecial Special
+ HiLink elfEnvironment Special
+ HiLink elfBraceError Error
+ HiLink elfConditional Conditional
+ HiLink elfMacro Function
+ HiLink elfNumber Number
+ HiLink elfString String
+ HiLink elfParens Delimiter
+ HiLink elfPunct Delimiter
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "elf"
+
+" vim:ts=8:sw=4:nocindent:smartindent: