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 | |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 14 | syn keyword llvmType void float double |
| 15 | syn keyword llvmType x86_fp80 fp128 ppc_fp128 |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 16 | syn keyword llvmType type label opaque |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 17 | syn match llvmType /\<i\d\+\>/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 18 | |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 19 | syn keyword llvmStatement add sub mul sdiv udiv fdiv srem urem frem |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 20 | syn keyword llvmStatement and or xor |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 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 |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 25 | |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 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 |
Chris Lattner | 4c554c5 | 2004-10-16 18:24:35 +0000 | [diff] [blame] | 30 | syn keyword llvmStatement ret br switch invoke unwind unreachable |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 31 | syn keyword llvmStatement malloc alloca free load store getelementptr |
| 32 | |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 33 | syn keyword llvmStatement true false zeroinitializer |
| 34 | syn keyword llvmStatement define declare global constant const |
Chris Lattner | 828b278 | 2003-04-16 20:25:57 +0000 | [diff] [blame] | 35 | syn keyword llvmStatement internal uninitialized external implementation |
Chris Lattner | 2498d67 | 2003-10-10 04:56:26 +0000 | [diff] [blame] | 36 | syn keyword llvmStatement linkonce weak appending |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 37 | syn keyword llvmStatement undef null to except target datalayout triple deplibs |
Chris Lattner | af26d3e | 2005-05-13 20:40:52 +0000 | [diff] [blame] | 38 | syn keyword llvmStatement big little volatile fastcc coldcc cc |
Dan Gohman | 0e9dfb0 | 2008-01-29 12:35:50 +0000 | [diff] [blame] | 39 | syn keyword llvmStatement extractelement insertelement shufflevector |
| 40 | syn keyword llvmStatement module asm align |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 41 | |
| 42 | "syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/ |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 43 | syn match llvmNumber /\<\d\+\>/ |
| 44 | syn match llvmNumber /\<\d\+\.\d*\>/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 45 | |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 46 | syn match llvmComment /;.*$/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 47 | syn region llvmString start=/"/ skip=/\\"/ end=/"/ |
Misha Brukman | 5981d78 | 2003-06-03 00:56:09 +0000 | [diff] [blame] | 48 | syn match llvmLabel /[\-a-zA-Z\$._0-9]*:/ |
Nick Hildenbrandt | 75f79b9 | 2002-10-07 22:54:48 +0000 | [diff] [blame] | 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" |