Add LLVM IR syntax
This commit is contained in:
		
							parent
							
								
									19592f4855
								
							
						
					
					
						commit
						f3f493013b
					
				
							
								
								
									
										2
									
								
								ftdetect/llvm.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								ftdetect/llvm.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| " Set .ll files to LLVM IR filetype | ||||
| au BufNewFile,BufReadPost *.ll set filetype=llvm | ||||
							
								
								
									
										110
									
								
								syntax/llvm.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								syntax/llvm.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,110 @@ | ||||
| " Vim syntax file | ||||
| " Language:   llvm | ||||
| " 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" | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user