diff options
Diffstat (limited to 'syntax/mir.vim')
-rw-r--r-- | syntax/mir.vim | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/syntax/mir.vim b/syntax/mir.vim new file mode 100644 index 00000000..55273945 --- /dev/null +++ b/syntax/mir.vim @@ -0,0 +1,52 @@ +if polyglot#init#is_disabled(expand('<sfile>:p'), 'llvm', 'syntax/mir.vim') + finish +endif + +" Vim syntax file +" Language: mir +" Maintainer: The LLVM team, http://llvm.org/ +" Version: $Revision$ + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case match + +" MIR is embedded in a yaml container, so we load all of the yaml syntax. +runtime! syntax/yaml.vim +unlet b:current_syntax + +" The first document of a file is allowed to contain an LLVM IR module inside +" a top-level yaml block string. +syntax include @LLVM syntax/llvm.vim +" FIXME: This should only be allowed for the first document of the file +syntax region llvm start=/\(^---\s*|\)\@<=/ end=/\(^\.\.\.\)\@=/ contains=@LLVM + +" The `body:` field of a document contains the MIR dump of the function +syntax include @MIR syntax/machine-ir.vim +syntax region mir start=/\(^body:\s*|\)\@<=/ end=/\(^[^[:space:]]\)\@=/ contains=@MIR + +" Syntax-highlight lit test commands and bug numbers. +syn match mirSpecialComment /#\s*PR\d*\s*$/ +syn match mirSpecialComment /#\s*REQUIRES:.*$/ +syn match mirSpecialComment /#\s*RUN:.*$/ +syn match mirSpecialComment /#\s*ALLOW_RETRIES:.*$/ +syn match mirSpecialComment /#\s*CHECK:.*$/ +syn match mirSpecialComment "\v#\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$" +syn match mirSpecialComment /#\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 mirSpecialComment SpecialComment +endif + +let b:current_syntax = "mir" |