blob: 712a9a59a739c8dba7ecca556e3c278c54ba7238 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001" Vim syntax file
2" Language: llvm
3" Maintainer: The LLVM team, http://llvm.org/
4" Updated: 2003-06-02
5
6if version < 600
7 syntax clear
8elseif exists("b:current_syntax")
9 finish
10endif
11
12syn case match
13
14syn keyword llvmType void bool sbyte ubyte
15syn keyword llvmType short ushort int uint
16syn keyword llvmType long ulong float double
17syn keyword llvmType type label opaque
18
19syn keyword llvmStatement add sub mul div rem
20syn keyword llvmStatement and or xor
21syn keyword llvmStatement setne seteq setlt setgt setle setge
22
23syn keyword llvmStatement phi tail call cast to select shl shr vaarg vanext
24syn keyword llvmStatement ret br switch invoke unwind unreachable
25syn keyword llvmStatement malloc alloca free load store getelementptr
26
27syn keyword llvmStatement begin end true false zeroinitializer
28syn keyword llvmStatement declare global constant const
29syn keyword llvmStatement internal uninitialized external implementation
30syn keyword llvmStatement linkonce weak appending
31syn keyword llvmStatement undef null to except target endian pointersize deplibs
32syn keyword llvmStatement big little volatile fastcc coldcc cc
33
34"syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/
35syn match llvmNumber /\<\d\+\>/
36syn match llvmNumber /\<\d\+\.\d*\>/
37
38syn match llvmComment /;.*$/
39syn region llvmString start=/"/ skip=/\\"/ end=/"/
40syn match llvmLabel /[\-a-zA-Z\$._0-9]*:/
41
42
43if version >= 508 || !exists("did_c_syn_inits")
44 if version < 508
45 let did_c_syn_inits = 1
46 command -nargs=+ HiLink hi link <args>
47 else
48 command -nargs=+ HiLink hi def link <args>
49 endif
50
51 HiLink llvmType Type
52 HiLink llvmStatement Statement
53 HiLink llvmNumber Number
54 HiLink llvmComment Comment
55 HiLink llvmString String
56 HiLink llvmLabel Label
57
58 delcommand HiLink
59endif
60
61let b:current_syntax = "llvm"