blob: dfdc43e7c4a5149d36e35ed90ec14a85eafc191b [file] [log] [blame]
Nick Hildenbrandt75f79b92002-10-07 22:54:48 +00001" Vim syntax file
2" Language: llvm
Chris Lattner8ad51f52003-04-22 19:31:55 +00003" Maintainer: ?
4" Updated: 2003-04-22
Nick Hildenbrandt75f79b92002-10-07 22:54:48 +00005
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
Chris Lattnerc5675672003-05-08 02:41:11 +000023syn keyword llvmStatement phi call cast shl shr va_arg
Nick Hildenbrandt75f79b92002-10-07 22:54:48 +000024syn 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
Chris Lattner8ad51f52003-04-22 19:31:55 +000031syn keyword llvmStatement null to except not target endian pointersize
32syn keyword llvmStatement big little
Nick Hildenbrandt75f79b92002-10-07 22:54:48 +000033
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"