llvm-project/llvm/utils/vim/llvm.vim

70 lines
2.2 KiB
VimL

" Vim syntax file
" Language: llvm
" Maintainer: The LLVM team, http://llvm.org/
" Updated: 2003-06-02
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case match
syn keyword llvmType void float double
syn keyword llvmType x86_fp80 fp128 ppc_fp128
syn keyword llvmType type label opaque
syn match llvmType /\<i\d\+\>/
syn keyword llvmStatement add sub mul sdiv udiv fdiv srem urem frem
syn keyword llvmStatement and or xor
syn keyword llvmStatement icmp fcmp
syn keyword llvmStatement eq ne ugt uge ult ule sgt sge slt sle
syn keyword llvmStatement false oeq ogt oge olt ole one ord ueq ugt uge
syn keyword llvmStatement ult ule une uno true
syn keyword llvmStatement phi tail call to select shl lshr ashr va_arg
syn keyword llvmStatement trunc zext sext
syn keyword llvmStatement fptrunc fpext fptoui fptosi uitofp sitofp
syn keyword llvmStatement ptrtoint inttoptr bitcast
syn keyword llvmStatement ret br switch invoke unwind unreachable
syn keyword llvmStatement malloc alloca free load store getelementptr
syn keyword llvmStatement true false zeroinitializer
syn keyword llvmStatement define declare global constant const
syn keyword llvmStatement internal uninitialized external implementation
syn keyword llvmStatement linkonce weak appending
syn keyword llvmStatement undef null to except target datalayout triple deplibs
syn keyword llvmStatement big little volatile fastcc coldcc cc
syn keyword llvmStatement extractelement insertelement shufflevector
syn keyword llvmStatement module asm align
"syn match llvmFunction /%[a-zA-Z\$._\-][a-zA-Z\$._\-0-9]*/
syn match llvmNumber /\<\d\+\>/
syn match llvmNumber /\<\d\+\.\d*\>/
syn match llvmComment /;.*$/
syn region llvmString start=/"/ skip=/\\"/ end=/"/
syn match llvmLabel /[\-a-zA-Z\$._0-9]*:/
if version >= 508 || !exists("did_c_syn_inits")
if version < 508
let did_c_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink llvmType Type
HiLink llvmStatement Statement
HiLink llvmNumber Number
HiLink llvmComment Comment
HiLink llvmString String
HiLink llvmLabel Label
delcommand HiLink
endif
let b:current_syntax = "llvm"