| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- " Vim syntax file
- " Language: llvm
- " Filenames: *.ll
- " Maintainer: The LLVM team, http://llvm.org/
- " Version: $Revision: 137806 $
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
- syn case match
- " Types.
- " Types also include struct, array, vector, etc. but these don't
- " benefit as much from having dedicated highlighting rules.
- 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\+\>/
- " Instructions.
- " The true and false tokens can be used for comparison opcodes, but it's
- " much more common for these tokens to be used for boolean constants.
- syn keyword llvmStatement add fadd sub fsub mul fmul
- syn keyword llvmStatement 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 oeq ogt oge olt ole one ord ueq ugt uge
- syn keyword llvmStatement ult ule une uno
- syn keyword llvmStatement nuw nsw exact inbounds
- syn keyword llvmStatement phi call 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 indirectbr switch invoke unwind unreachable
- syn keyword llvmStatement malloc alloca free load store getelementptr
- syn keyword llvmStatement extractelement insertelement shufflevector
- syn keyword llvmStatement extractvalue insertvalue
- " Keywords.
- syn keyword llvmKeyword define declare global constant
- syn keyword llvmKeyword internal external private
- syn keyword llvmKeyword linkonce linkonce_odr weak weak_odr appending
- syn keyword llvmKeyword common extern_weak
- syn keyword llvmKeyword thread_local dllimport dllexport
- syn keyword llvmKeyword hidden protected default
- syn keyword llvmKeyword except deplibs
- syn keyword llvmKeyword volatile fastcc coldcc cc ccc
- syn keyword llvmKeyword x86_stdcallcc x86_fastcallcc
- syn keyword llvmKeyword ptx_kernel ptx_device
- syn keyword llvmKeyword signext zeroext inreg sret nounwind noreturn
- syn keyword llvmKeyword nocapture byval nest readnone readonly noalias uwtable
- syn keyword llvmKeyword inlinehint noinline alwaysinline optsize ssp sspreq
- syn keyword llvmKeyword noredzone noimplicitfloat naked alignstack
- syn keyword llvmKeyword module asm align tail to
- syn keyword llvmKeyword addrspace section alias sideeffect c gc
- syn keyword llvmKeyword target datalayout triple
- syn keyword llvmKeyword blockaddress
- " Obsolete keywords.
- syn keyword llvmError getresult begin end
- " Misc syntax.
- syn match llvmNoName /[%@]\d\+\>/
- syn match llvmNumber /-\?\<\d\+\>/
- syn match llvmFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/
- syn match llvmFloat /\<0x\x\+\>/
- syn keyword llvmBoolean true false
- syn keyword llvmConstant zeroinitializer undef null
- syn match llvmComment /;.*$/ contains=@Spell
- syn region llvmString start=/"/ skip=/\\"/ end=/"/
- syn match llvmLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/
- syn match llvmIdentifier /[%@][-a-zA-Z$._][-a-zA-Z$._0-9]*/
- " Syntax-highlight dejagnu test commands.
- syn match llvmSpecialComment /;\s*RUN:.*$/
- syn match llvmSpecialComment /;\s*PR\d*\s*$/
- syn match llvmSpecialComment /;\s*END\.\s*$/
- syn match llvmSpecialComment /;\s*XFAIL:.*$/
- syn match llvmSpecialComment /;\s*XTARGET:.*$/
- 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
- HiLink llvmKeyword Keyword
- HiLink llvmBoolean Boolean
- HiLink llvmFloat Float
- HiLink llvmNoName Identifier
- HiLink llvmConstant Constant
- HiLink llvmSpecialComment SpecialComment
- HiLink llvmError Error
- HiLink llvmIdentifier Identifier
- delcommand HiLink
- endif
- let b:current_syntax = "llvm"
|