X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2Fvim%2Fllvm.vim;h=830476f158b62adcf943db9703739dbaf836b443;hb=e2ff00e117ba9b758b298e671f65c0b002f8a52d;hp=dfdc43e7c4a5149d36e35ed90ec14a85eafc191b;hpb=c567567759bcff43f35bad81e4c3515d2a42f0d1;p=oota-llvm.git diff --git a/utils/vim/llvm.vim b/utils/vim/llvm.vim index dfdc43e7c4a..830476f158b 100644 --- a/utils/vim/llvm.vim +++ b/utils/vim/llvm.vim @@ -1,7 +1,7 @@ " Vim syntax file -" Language: llvm -" Maintainer: ? -" Updated: 2003-04-22 +" Language: llvm +" Maintainer: The LLVM team, http://llvm.org/ +" Version: $Revision$ if version < 600 syntax clear @@ -11,34 +11,72 @@ endif syn case match -syn keyword llvmType void bool sbyte ubyte -syn keyword llvmType short ushort int uint -syn keyword llvmType long ulong float double +" Types. +" Types also include struct, array, vector, etc. but these don't +" benefit as much from having dedicated highlighting rules. +syn keyword llvmType void half float double x86_fp80 fp128 ppc_fp128 +syn keyword llvmType label metadata x86_mmx syn keyword llvmType type label opaque +syn match llvmType /\/ -syn keyword llvmStatement add sub mul div rem -syn keyword llvmStatement and or xor -syn keyword llvmStatement setne seteq setlt setgt setle setge +" 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 alloca and arcp ashr atomicrmw bitcast br call +syn keyword llvmStatement cmpxchg eq exact extractelement extractvalue fadd fast +syn keyword llvmStatement fcmp fdiv fence fmul fpext fptosi fptoui fptrunc free +syn keyword llvmStatement frem fsub getelementptr icmp inbounds indirectbr +syn keyword llvmStatement insertelement insertvalue inttoptr invoke landingpad +syn keyword llvmStatement load lshr malloc max min mul nand ne ninf nnan nsw nsz +syn keyword llvmStatement nuw oeq oge ogt ole olt one or ord phi ptrtoint resume +syn keyword llvmStatement ret sdiv select sext sge sgt shl shufflevector sitofp +syn keyword llvmStatement sle slt srem store sub switch trunc udiv ueq uge ugt +syn keyword llvmStatement uitofp ule ult umax umin une uno unreachable unwind +syn keyword llvmStatement urem va_arg xchg xor zext -syn keyword llvmStatement phi call cast shl shr va_arg -syn keyword llvmStatement ret br switch invoke -syn keyword llvmStatement malloc alloca free load store getelementptr +" Keywords. +syn keyword llvmKeyword acq_rel acquire sanitize_address addrspace alias align +syn keyword llvmKeyword alignstack alwaysinline appending arm_aapcs_vfpcc +syn keyword llvmKeyword arm_aapcscc arm_apcscc asm atomic available_externally +syn keyword llvmKeyword blockaddress byval c catch cc ccc cleanup coldcc common +syn keyword llvmKeyword constant datalayout declare default define deplibs +syn keyword llvmKeyword dllexport dllimport except extern_weak external fastcc +syn keyword llvmKeyword filter gc global hidden initialexec inlinehint inreg +syn keyword llvmKeyword intel_ocl_bicc inteldialect internal linker_private +syn keyword llvmKeyword linker_private_weak linker_private_weak_def_auto +syn keyword llvmKeyword linkonce linkonce_odr linkonce_odr_auto_hide +syn keyword llvmKeyword localdynamic localexec minsize module monotonic +syn keyword llvmKeyword msp430_intrcc naked nest noalias nocapture +syn keyword llvmKeyword noimplicitfloat noinline nonlazybind noredzone noreturn +syn keyword llvmKeyword nounwind optsize personality private protected +syn keyword llvmKeyword ptx_device ptx_kernel readnone readonly release +syn keyword llvmKeyword returns_twice section seq_cst sideeffect signext +syn keyword llvmKeyword singlethread spir_func spir_kernel sret ssp sspreq +syn keyword llvmKeyword sspstrong tail target thread_local to triple +syn keyword llvmKeyword unnamed_addr unordered uwtable volatile weak weak_odr +syn keyword llvmKeyword x86_fastcallcc x86_stdcallcc x86_thiscallcc zeroext +syn keyword llvmKeyword sanitize_thread sanitize_memory -syn keyword llvmStatement begin end true false -syn keyword llvmStatement declare global constant const -syn keyword llvmStatement internal uninitialized external implementation -syn keyword llvmStatement linkonce appending -syn keyword llvmStatement null to except not target endian pointersize -syn keyword llvmStatement big little +" Obsolete keywords. +syn keyword llvmError getresult begin end -"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]*:/ +" 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 /;.*$/ +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:.*$/ if version >= 508 || !exists("did_c_syn_inits") if version < 508 @@ -54,8 +92,16 @@ if version >= 508 || !exists("did_c_syn_inits") 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"