Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 2 | " Language: llvm |
Reid Spencer | 9dce2b3 | 2006-03-14 05:54:52 +0000 | [diff] [blame] | 3 | " Maintainer: The LLVM team, http://llvm.org/ |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 4 | " Updated: 2003-06-02 |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 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 bool sbyte ubyte |
| 15 | syn keyword llvmType short ushort int uint |
| 16 | syn keyword llvmType long ulong float double |
| 17 | syn keyword llvmType type label opaque |
| 18 | |
| 19 | syn keyword llvmStatement add sub mul div rem |
| 20 | syn keyword llvmStatement and or xor |
| 21 | syn keyword llvmStatement setne seteq setlt setgt setle setge |
| 22 | |
Chris Lattner | 653488d | 2005-05-06 06:07:34 +0000 | [diff] [blame] | 23 | syn keyword llvmStatement phi tail call cast to select shl shr vaarg vanext |
Chris Lattner | 4c554c5 | 2004-10-16 18:24:35 +0000 | [diff] [blame] | 24 | syn keyword llvmStatement ret br switch invoke unwind unreachable |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 25 | syn keyword llvmStatement malloc alloca free load store getelementptr |
| 26 | |
Misha Brukman | 6cdff92 | 2004-04-28 19:36:08 +0000 | [diff] [blame] | 27 | syn keyword llvmStatement begin end true false zeroinitializer |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 28 | syn keyword llvmStatement declare global constant const |
Chris Lattner | 828b278 | 2003-04-16 20:25:57 +0000 | [diff] [blame] | 29 | syn keyword llvmStatement internal uninitialized external implementation |
Chris Lattner | 2498d67 | 2003-10-10 04:56:26 +0000 | [diff] [blame] | 30 | syn keyword llvmStatement linkonce weak appending |
Chris Lattner | 4c554c5 | 2004-10-16 18:24:35 +0000 | [diff] [blame] | 31 | syn keyword llvmStatement undef null to except target endian pointersize deplibs |
Chris Lattner | af26d3e | 2005-05-13 20:40:52 +0000 | [diff] [blame] | 32 | syn keyword llvmStatement big little volatile fastcc coldcc cc |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 33 | |
| 34 | "syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/ |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 35 | syn match llvmNumber /\<\d\+\>/ |
| 36 | syn match llvmNumber /\<\d\+\.\d*\>/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 37 | |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 38 | syn match llvmComment /;.*$/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 39 | syn region llvmString start=/"/ skip=/\\"/ end=/"/ |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 40 | syn match llvmLabel /[\-a-zA-Z\$._0-9]*:/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 41 | |
| 42 | |
| 43 | if 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 |
| 59 | endif |
| 60 | |
| 61 | let b:current_syntax = "llvm" |