222 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
			
		
		
	
	
			222 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
| " Vim syntax file
 | |
| " Language:   llvm
 | |
| " Maintainer: The LLVM team, http://llvm.org/
 | |
| " Version:      $Revision$
 | |
| 
 | |
| 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 half float double x86_fp80 fp128 ppc_fp128
 | |
| syn keyword llvmType label metadata x86_mmx
 | |
| syn keyword llvmType type label opaque token
 | |
| 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 addrspacecast alloca and arcp ashr atomicrmw
 | |
| syn keyword llvmStatement bitcast br catchpad catchswitch catchret call
 | |
| syn keyword llvmStatement cleanuppad cleanupret cmpxchg eq exact extractelement
 | |
| syn keyword llvmStatement extractvalue fadd fast fcmp fdiv fence fmul fpext
 | |
| syn keyword llvmStatement fptosi fptoui fptrunc free frem fsub getelementptr
 | |
| syn keyword llvmStatement icmp inbounds indirectbr insertelement insertvalue
 | |
| syn keyword llvmStatement inttoptr invoke landingpad load lshr malloc max min
 | |
| syn keyword llvmStatement mul nand ne ninf nnan nsw nsz nuw oeq oge ogt ole
 | |
| syn keyword llvmStatement olt one or ord phi ptrtoint resume ret sdiv select
 | |
| syn keyword llvmStatement sext sge sgt shl shufflevector sitofp sle slt srem
 | |
| syn keyword llvmStatement store sub switch trunc udiv ueq uge ugt uitofp ule ult
 | |
| syn keyword llvmStatement umax umin une uno unreachable unwind urem va_arg
 | |
| syn keyword llvmStatement xchg xor zext
 | |
| 
 | |
| " Keywords.
 | |
| syn keyword llvmKeyword
 | |
|       \ acq_rel
 | |
|       \ acquire
 | |
|       \ addrspace
 | |
|       \ alias
 | |
|       \ align
 | |
|       \ alignstack
 | |
|       \ alwaysinline
 | |
|       \ appending
 | |
|       \ argmemonly
 | |
|       \ arm_aapcscc
 | |
|       \ arm_aapcs_vfpcc
 | |
|       \ arm_apcscc
 | |
|       \ asm
 | |
|       \ atomic
 | |
|       \ available_externally
 | |
|       \ blockaddress
 | |
|       \ byval
 | |
|       \ c
 | |
|       \ catch
 | |
|       \ caller
 | |
|       \ cc
 | |
|       \ ccc
 | |
|       \ cleanup
 | |
|       \ coldcc
 | |
|       \ common
 | |
|       \ constant
 | |
|       \ datalayout
 | |
|       \ declare
 | |
|       \ default
 | |
|       \ define
 | |
|       \ deplibs
 | |
|       \ dereferenceable
 | |
|       \ distinct
 | |
|       \ dllexport
 | |
|       \ dllimport
 | |
|       \ except
 | |
|       \ external
 | |
|       \ externally_initialized
 | |
|       \ extern_weak
 | |
|       \ fastcc
 | |
|       \ filter
 | |
|       \ from
 | |
|       \ gc
 | |
|       \ global
 | |
|       \ hhvmcc
 | |
|       \ hhvm_ccc
 | |
|       \ hidden
 | |
|       \ initialexec
 | |
|       \ inlinehint
 | |
|       \ inreg
 | |
|       \ inteldialect
 | |
|       \ intel_ocl_bicc
 | |
|       \ internal
 | |
|       \ linkonce
 | |
|       \ linkonce_odr
 | |
|       \ localdynamic
 | |
|       \ localexec
 | |
|       \ local_unnamed_addr
 | |
|       \ minsize
 | |
|       \ module
 | |
|       \ monotonic
 | |
|       \ msp430_intrcc
 | |
|       \ musttail
 | |
|       \ naked
 | |
|       \ nest
 | |
|       \ noalias
 | |
|       \ nocapture
 | |
|       \ noimplicitfloat
 | |
|       \ noinline
 | |
|       \ nonlazybind
 | |
|       \ noredzone
 | |
|       \ noreturn
 | |
|       \ nounwind
 | |
|       \ optnone
 | |
|       \ optsize
 | |
|       \ personality
 | |
|       \ private
 | |
|       \ protected
 | |
|       \ ptx_device
 | |
|       \ ptx_kernel
 | |
|       \ readnone
 | |
|       \ readonly
 | |
|       \ release
 | |
|       \ returns_twice
 | |
|       \ sanitize_address
 | |
|       \ sanitize_memory
 | |
|       \ sanitize_thread
 | |
|       \ section
 | |
|       \ seq_cst
 | |
|       \ sideeffect
 | |
|       \ signext
 | |
|       \ singlethread
 | |
|       \ source_filename
 | |
|       \ spir_func
 | |
|       \ spir_kernel
 | |
|       \ sret
 | |
|       \ ssp
 | |
|       \ sspreq
 | |
|       \ sspstrong
 | |
|       \ swiftcc
 | |
|       \ tail
 | |
|       \ target
 | |
|       \ thread_local
 | |
|       \ to
 | |
|       \ triple
 | |
|       \ unnamed_addr
 | |
|       \ unordered
 | |
|       \ uselistorder
 | |
|       \ uselistorder_bb
 | |
|       \ uwtable
 | |
|       \ volatile
 | |
|       \ weak
 | |
|       \ weak_odr
 | |
|       \ within
 | |
|       \ writeonly
 | |
|       \ x86_64_sysvcc
 | |
|       \ x86_64_win64cc
 | |
|       \ x86_fastcallcc
 | |
|       \ x86_stdcallcc
 | |
|       \ x86_thiscallcc
 | |
|       \ zeroext
 | |
| 
 | |
| " 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 none
 | |
| 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]*/
 | |
| 
 | |
| " Named metadata and specialized metadata keywords.
 | |
| syn match   llvmIdentifier /![-a-zA-Z$._][-a-zA-Z$._0-9]*\ze\s*$/
 | |
| syn match   llvmIdentifier /![-a-zA-Z$._][-a-zA-Z$._0-9]*\ze\s*[=!]/
 | |
| syn match   llvmType /!\zs\a\+\ze\s*(/
 | |
| syn match   llvmConstant /\<DW_TAG_[a-z_]\+\>/
 | |
| syn match   llvmConstant /\<DW_ATE_[a-zA-Z_]\+\>/
 | |
| syn match   llvmConstant /\<DW_OP_[a-zA-Z0-9_]\+\>/
 | |
| syn match   llvmConstant /\<DW_LANG_[a-zA-Z0-9_]\+\>/
 | |
| syn match   llvmConstant /\<DW_VIRTUALITY_[a-z_]\+\>/
 | |
| syn match   llvmConstant /\<DIFlag[A-Za-z]\+\>/
 | |
| 
 | |
| " Syntax-highlight lit test commands and bug numbers.
 | |
| syn match  llvmSpecialComment /;\s*PR\d*\s*$/
 | |
| syn match  llvmSpecialComment /;\s*REQUIRES:.*$/
 | |
| syn match  llvmSpecialComment /;\s*RUN:.*$/
 | |
| syn match  llvmSpecialComment /;\s*XFAIL:.*$/
 | |
| 
 | |
| 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"
 |