Update this file for 2.0 syntax.
[oota-llvm.git] / utils / vim / llvm.vim
1 " Vim syntax file
2 " Language:   llvm
3 " Maintainer: The LLVM team, http://llvm.org/
4 " Updated:    2003-06-02
5
6 if version < 600
7   syntax clear
8 elseif exists("b:current_syntax")
9   finish
10 endif
11
12 syn case match
13
14 syn keyword llvmType void float double
15 syn keyword llvmType x86_fp80 fp128 ppc_fp128
16 syn keyword llvmType type label opaque
17 syn match   llvmType /\<i\d\+\>/
18
19 syn keyword llvmStatement add sub mul sdiv udiv fdiv srem urem frem
20 syn keyword llvmStatement and or xor
21 syn keyword llvmStatement icmp fcmp
22 syn keyword llvmStatement eq ne ugt uge ult ule sgt sge slt sle
23 syn keyword llvmStatement false oeq ogt oge olt ole one ord ueq ugt uge
24 syn keyword llvmStatement ult ule une uno true
25
26 syn keyword llvmStatement phi tail call to select shl lshr ashr va_arg
27 syn keyword llvmStatement trunc zext sext
28 syn keyword llvmStatement fptrunc fpext fptoui fptosi uitofp sitofp
29 syn keyword llvmStatement ptrtoint inttoptr bitcast
30 syn keyword llvmStatement ret br switch invoke unwind unreachable
31 syn keyword llvmStatement malloc alloca free load store getelementptr
32
33 syn keyword llvmStatement true false zeroinitializer
34 syn keyword llvmStatement define declare global constant const
35 syn keyword llvmStatement internal uninitialized external implementation
36 syn keyword llvmStatement linkonce weak appending
37 syn keyword llvmStatement undef null to except target datalayout triple deplibs
38 syn keyword llvmStatement big little volatile fastcc coldcc cc
39 syn keyword llvmStatement extractelement insertelement shufflevector
40 syn keyword llvmStatement module asm align
41
42 "syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/
43 syn match  llvmNumber /\<\d\+\>/
44 syn match  llvmNumber /\<\d\+\.\d*\>/
45
46 syn match  llvmComment /;.*$/
47 syn region llvmString start=/"/ skip=/\\"/ end=/"/
48 syn match  llvmLabel /[\-a-zA-Z\$._0-9]*:/
49
50
51 if version >= 508 || !exists("did_c_syn_inits")
52   if version < 508
53     let did_c_syn_inits = 1
54     command -nargs=+ HiLink hi link <args>
55   else
56     command -nargs=+ HiLink hi def link <args>
57   endif
58
59   HiLink llvmType Type
60   HiLink llvmStatement Statement
61   HiLink llvmNumber Number
62   HiLink llvmComment Comment
63   HiLink llvmString String
64   HiLink llvmLabel Label
65
66   delcommand HiLink
67 endif
68  
69 let b:current_syntax = "llvm"