diff options
Diffstat (limited to 'syntax/machine-ir.vim')
-rw-r--r-- | syntax/machine-ir.vim | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/syntax/machine-ir.vim b/syntax/machine-ir.vim new file mode 100644 index 00000000..ad43a9f5 --- /dev/null +++ b/syntax/machine-ir.vim @@ -0,0 +1,42 @@ +if polyglot#init#is_disabled(expand('<sfile>:p'), 'llvm', 'syntax/machine-ir.vim') + finish +endif + +" Vim syntax file +" Language: mir +" Maintainer: The LLVM team, http://llvm.org/ +" Version: $Revision$ + +syn case match + +" FIXME: MIR doesn't actually match LLVM IR. Stop including it all as a +" fallback once enough is implemented. +" See the MIR LangRef: https://llvm.org/docs/MIRLangRef.html +unlet b:current_syntax " Unlet so that the LLVM syntax will load +runtime! syntax/llvm.vim +unlet b:current_syntax + +syn match mirType /\<[sp]\d\+\>/ + +" Opcodes. Matching instead of listing them because individual targets can add +" these. FIXME: Maybe use some more context to make this more accurate? +syn match mirStatement /\<[A-Z][A-Za-z0-9_]*\>/ + +syn match mirPReg /$[-a-zA-Z$._][-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 mirType Type + HiLink mirStatement Statement + HiLink mirPReg Identifier + + delcommand HiLink +endif + +let b:current_syntax = "mir" |