llvm.vim revision 21de024b909a3f2c8b120dd65bc14efba68f919f
175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt" Vim syntax file
25981d788f22930083e1f1172b7ba9b75cbe68e5cMisha Brukman" Language:   llvm
39dce2b33807f47d794b0482313ae3fe0d275c833Reid Spencer" Maintainer: The LLVM team, http://llvm.org/
45981d788f22930083e1f1172b7ba9b75cbe68e5cMisha Brukman" Updated:    2003-06-02
575f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtif version < 600
775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  syntax clear
875f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtelseif exists("b:current_syntax")
975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  finish
1075f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtendif
1175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
1275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn case match
1375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
145d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Types.
155d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Types also include struct, array, vector, etc. but these don't
165d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" benefit as much from having dedicated highlighting rules.
170e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmType void float double
180e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmType x86_fp80 fp128 ppc_fp128
1975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn keyword llvmType type label opaque
200e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn match   llvmType /\<i\d\+\>/
2175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
225d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Instructions.
235d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" The true and false tokens can be used for comparison opcodes, but it's
245d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" much more common for these tokens to be used for boolean constants.
25ae3a0be92e33bc716722aa600983fc1535acb122Dan Gohmansyn keyword llvmStatement add fadd sub fsub mul fmul
26ae3a0be92e33bc716722aa600983fc1535acb122Dan Gohmansyn keyword llvmStatement sdiv udiv fdiv srem urem frem
2775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn keyword llvmStatement and or xor
280e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement icmp fcmp
290e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement eq ne ugt uge ult ule sgt sge slt sle
305d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement oeq ogt oge olt ole one ord ueq ugt uge
315d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement ult ule une uno
325d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement phi call select shl lshr ashr va_arg
330e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement trunc zext sext
340e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement fptrunc fpext fptoui fptosi uitofp sitofp
350e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement ptrtoint inttoptr bitcast
364c554c589ffc081965772f8123a8377a83360062Chris Lattnersyn keyword llvmStatement ret br switch invoke unwind unreachable
3775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtsyn keyword llvmStatement malloc alloca free load store getelementptr
380e9dfb0900fefc10d006b6b804597800e267a86bDan Gohmansyn keyword llvmStatement extractelement insertelement shufflevector
395d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmStatement extractvalue insertvalue
405d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman
415d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Keywords.
425d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword define declare global constant
4321de024b909a3f2c8b120dd65bc14efba68f919fDan Gohmansyn keyword llvmKeyword internal external private
44667d4b8de6dea70195ff12ef39a4deebffa2f5c7Duncan Sandssyn keyword llvmKeyword linkonce linkonce_odr weak weak_odr appending
454dc2b39bf89d7c87868008ef8a0f807e0419aca6Duncan Sandssyn keyword llvmKeyword common extern_weak
465d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword thread_local dllimport dllexport
471ed7942e4f374b8a5ef575b4f25fc097b3f97f0eDan Gohmansyn keyword llvmKeyword hidden protected default
485d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword except deplibs
495d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword volatile fastcc coldcc cc ccc
505d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword x86_stdcallcc x86_fastcallcc
515d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword signext zeroext inreg sret nounwind noreturn
525d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword nocapture byval nest readnone readonly
535d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword noinline alwaysinline optsize ssp sspreq
545d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword module asm align tail to
556a9e75ec137a1da570ff486f2d255d9f915d2bd3Dan Gohmansyn keyword llvmKeyword addrspace section alias sideeffect c gc
565d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmKeyword target datalayout triple
5775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
585d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Obsolete keywords.
595d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmError  uninitialized implementation
606a9e75ec137a1da570ff486f2d255d9f915d2bd3Dan Gohmansyn keyword llvmError  getresult big little endian begin end
6175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
625d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Misc syntax.
635d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match   llvmIgnore /[%@]\d\+\>/
645d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match   llvmNumber /-\?\<\d\+\>/
655d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match   llvmFloat  /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/
665d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match   llvmFloat  /\<0x\x\+\>/
675d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmBoolean true false
685d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn keyword llvmConstant zeroinitializer undef null
695d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match   llvmComment /;.*$/
705d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn region  llvmString start=/"/ skip=/\\"/ end=/"/
715d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match   llvmLabel /[\-a-zA-Z\$._0-9]*:/
7275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
735d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman" Syntax-highlight dejagnu test commands.
745d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match  llvmSpecialComment /;\s*RUN:.*$/
755d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match  llvmSpecialComment /;\s*PR\d*\s*$/
765d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match  llvmSpecialComment /;\s*END\.\s*$/
775d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match  llvmSpecialComment /;\s*XFAIL:.*$/
785d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohmansyn match  llvmSpecialComment /;\s*XTARGET:.*$/
7975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
8075f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtif version >= 508 || !exists("did_c_syn_inits")
8175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  if version < 508
8275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt    let did_c_syn_inits = 1
8375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt    command -nargs=+ HiLink hi link <args>
8475f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  else
8575f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt    command -nargs=+ HiLink hi def link <args>
8675f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  endif
8775f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
8875f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  HiLink llvmType Type
8975f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  HiLink llvmStatement Statement
9075f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  HiLink llvmNumber Number
9175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  HiLink llvmComment Comment
9275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  HiLink llvmString String
9375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  HiLink llvmLabel Label
945d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmKeyword Keyword
955d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmBoolean Boolean
965d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmFloat Float
975d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmIgnore Ignore
985d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmConstant Constant
995d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmSpecialComment SpecialComment
1005d8ab65ea44c29747a6f31d9442ff3f4f25d8129Dan Gohman  HiLink llvmError Error
10175f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt
10275f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandt  delcommand HiLink
10375f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtendif
104adf4e4d06ac5bbb7e7b30ae481995e58133bc5f2Misha Brukman
10575f79b9b0ec0ec9807ce4b4b0a802c20c91e896bNick Hildenbrandtlet b:current_syntax = "llvm"
106