blob: e7968e4f9110de2b2f4423c61ca052f8e5051d38 [file] [log] [blame]
Nick Hildenbrandt75f79b92002-10-07 22:54:48 +00001" Vim syntax file
2" Language: llvm
3" Maintainer: Nick Hildenbrandt <hldnbrnd@uiuc.edu>
4" Updated: 2002-10-07
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 call cast shl shr
24syn keyword llvmStatement ret br switch invoke
25syn keyword llvmStatement malloc alloca free load store getelementptr
26
27syn keyword llvmStatement begin end true false
28syn keyword llvmStatement declare global constant const
Chris Lattner828b2782003-04-16 20:25:57 +000029syn keyword llvmStatement internal uninitialized external implementation
30syn keyword llvmStatement linkonce appending
Nick Hildenbrandt75f79b92002-10-07 22:54:48 +000031syn keyword llvmStatement null to except not
32
33"syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/
34syn match llvmNumber /\<\d\+\>/
35syn match llvmNumber /\<\d\+\.\d*\>/
36
37syn match llvmComment /;.*$/
38syn region llvmString start=/"/ skip=/\\"/ end=/"/
39syn match llvmLabel /[\-a-zA-Z\$._0-9]*:/
40
41
42if version >= 508 || !exists("did_c_syn_inits")
43 if version < 508
44 let did_c_syn_inits = 1
45 command -nargs=+ HiLink hi link <args>
46 else
47 command -nargs=+ HiLink hi def link <args>
48 endif
49
50 HiLink llvmType Type
51 HiLink llvmStatement Statement
52 HiLink llvmNumber Number
53 HiLink llvmComment Comment
54 HiLink llvmString String
55 HiLink llvmLabel Label
56
57 delcommand HiLink
58endif
59
60let b:current_syntax = "llvm"