xref: /llvm-project/llvm/utils/vim/syntax/machine-ir.vim (revision ed7638a34d32ee427f75c6ca1ef0a9e8661b847d)
1c6a96df3SCassie Jones" Vim syntax file
2c6a96df3SCassie Jones" Language:   mir
3c6a96df3SCassie Jones" Maintainer: The LLVM team, http://llvm.org/
4c6a96df3SCassie Jones" Version:      $Revision$
5c6a96df3SCassie Jones
6*ed7638a3SCassie Jonessyn case match
7*ed7638a3SCassie Jones
8*ed7638a3SCassie Jones" FIXME: MIR doesn't actually match LLVM IR. Stop including it all as a
9*ed7638a3SCassie Jones" fallback once enough is implemented.
10c6a96df3SCassie Jones" See the MIR LangRef: https://llvm.org/docs/MIRLangRef.html
11c6a96df3SCassie Jonesunlet b:current_syntax  " Unlet so that the LLVM syntax will load
12c6a96df3SCassie Jonesruntime! syntax/llvm.vim
13c6a96df3SCassie Jonesunlet b:current_syntax
14*ed7638a3SCassie Jones
15*ed7638a3SCassie Jonessyn match   mirType /\<[sp]\d\+\>/
16*ed7638a3SCassie Jones
17*ed7638a3SCassie Jones" Opcodes. Matching instead of listing them because individual targets can add
18*ed7638a3SCassie Jones" these. FIXME: Maybe use some more context to make this more accurate?
19*ed7638a3SCassie Jonessyn match   mirStatement /\<[A-Z][A-Za-z0-9_]*\>/
20*ed7638a3SCassie Jones
21*ed7638a3SCassie Jonessyn match   mirPReg /$[-a-zA-Z$._][-a-zA-Z$._0-9]*/
22*ed7638a3SCassie Jones
23*ed7638a3SCassie Jonesif version >= 508 || !exists("did_c_syn_inits")
24*ed7638a3SCassie Jones  if version < 508
25*ed7638a3SCassie Jones    let did_c_syn_inits = 1
26*ed7638a3SCassie Jones    command -nargs=+ HiLink hi link <args>
27*ed7638a3SCassie Jones  else
28*ed7638a3SCassie Jones    command -nargs=+ HiLink hi def link <args>
29*ed7638a3SCassie Jones  endif
30*ed7638a3SCassie Jones
31*ed7638a3SCassie Jones  HiLink mirType Type
32*ed7638a3SCassie Jones  HiLink mirStatement Statement
33*ed7638a3SCassie Jones  HiLink mirPReg Identifier
34*ed7638a3SCassie Jones
35*ed7638a3SCassie Jones  delcommand HiLink
36*ed7638a3SCassie Jonesendif
37*ed7638a3SCassie Jones
38c6a96df3SCassie Joneslet b:current_syntax = "mir"
39