annotate mlir/utils/vim/syntax/mlir.vim @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 " Vim syntax file
anatofuz
parents:
diff changeset
2 " Language: mlir
anatofuz
parents:
diff changeset
3 " Maintainer: The MLIR team, http://github.com/tensorflow/mlir/
anatofuz
parents:
diff changeset
4 " Version: $Revision$
anatofuz
parents:
diff changeset
5 " Some parts adapted from the LLVM vim syntax file.
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 if version < 600
anatofuz
parents:
diff changeset
8 syntax clear
anatofuz
parents:
diff changeset
9 elseif exists("b:current_syntax")
anatofuz
parents:
diff changeset
10 finish
anatofuz
parents:
diff changeset
11 endif
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 syn case match
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 " Types.
anatofuz
parents:
diff changeset
16 syn keyword mlirType index f16 f32 f64
anatofuz
parents:
diff changeset
17 " Integer type.
anatofuz
parents:
diff changeset
18 syn match mlirType /\<i\d\+\>/
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 " Elemental types inside memref, tensor, or vector types.
anatofuz
parents:
diff changeset
21 syn match mlirType /x\s*\zs\(f16\|f32\|f64\|i\d\+\)/
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 " Shaped types.
anatofuz
parents:
diff changeset
24 syn match mlirType /\<memref\ze\s*<.*>/
anatofuz
parents:
diff changeset
25 syn match mlirType /\<tensor\ze\s*<.*>/
anatofuz
parents:
diff changeset
26 syn match mlirType /\<vector\ze\s*<.*>/
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 " vector types inside memref or tensor.
anatofuz
parents:
diff changeset
29 syn match mlirType /x\s*\zsvector/
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 " Operations.
anatofuz
parents:
diff changeset
32 " Core ops (not exhaustive yet).
anatofuz
parents:
diff changeset
33 " TODO: the list is not exhaustive.
anatofuz
parents:
diff changeset
34 syn keyword mlirOps alloc alloca addf addi call call_indirect cmpi constant
anatofuz
parents:
diff changeset
35 syn keyword mlirOps dealloc divf dma_start dma_wait dim extract_element
anatofuz
parents:
diff changeset
36 syn keyword mlirOps getTensor index_cast load memref_cast memref_shape_cast
anatofuz
parents:
diff changeset
37 syn keyword mlirOps mulf muli prefetch sitofp splat store select subf subi
anatofuz
parents:
diff changeset
38 syn keyword mlirOps subview tensor_cast view
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 " Affine ops.
anatofuz
parents:
diff changeset
41 syn match mlirOps /\<affine\.apply\>/
anatofuz
parents:
diff changeset
42 syn match mlirOps /\<affine\.dma_start\>/
anatofuz
parents:
diff changeset
43 syn match mlirOps /\<affine\.dma_wait\>/
anatofuz
parents:
diff changeset
44 syn match mlirOps /\<affine\.for\>/
anatofuz
parents:
diff changeset
45 syn match mlirOps /\<affine\.if\>/
anatofuz
parents:
diff changeset
46 syn match mlirOps /\<affine\.load\>/
anatofuz
parents:
diff changeset
47 syn match mlirOps /\<affine\.prefetch\>/
anatofuz
parents:
diff changeset
48 syn match mlirOps /\<affine\.store\>/
anatofuz
parents:
diff changeset
49 syn match mlirOps /\<loop\.for\>/
anatofuz
parents:
diff changeset
50 syn match mlirOps /\<loop\.if\>/
anatofuz
parents:
diff changeset
51
anatofuz
parents:
diff changeset
52 " TODO: dialect name prefixed ops (llvm or std).
anatofuz
parents:
diff changeset
53
anatofuz
parents:
diff changeset
54 " Keywords.
anatofuz
parents:
diff changeset
55 syn keyword mlirKeyword
anatofuz
parents:
diff changeset
56 \ dense
anatofuz
parents:
diff changeset
57 \ else
anatofuz
parents:
diff changeset
58 \ func
anatofuz
parents:
diff changeset
59 \ module
anatofuz
parents:
diff changeset
60 \ return
anatofuz
parents:
diff changeset
61 \ step
anatofuz
parents:
diff changeset
62 \ to
anatofuz
parents:
diff changeset
63
anatofuz
parents:
diff changeset
64 " Misc syntax.
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 syn match mlirNumber /-\?\<\d\+\>/
anatofuz
parents:
diff changeset
67 " Match numbers even in shaped types.
anatofuz
parents:
diff changeset
68 syn match mlirNumber /-\?\<\d\+\ze\s*x/
anatofuz
parents:
diff changeset
69 syn match mlirNumber /x\s*\zs-\?\d\+\ze\s*x/
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71 syn match mlirFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/
anatofuz
parents:
diff changeset
72 syn match mlirFloat /\<0x\x\+\>/
anatofuz
parents:
diff changeset
73 syn keyword mlirBoolean true false
anatofuz
parents:
diff changeset
74 syn match mlirComment /\/\/.*$/
anatofuz
parents:
diff changeset
75 syn region mlirString start=/"/ skip=/\\"/ end=/"/
anatofuz
parents:
diff changeset
76 syn match mlirLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/
anatofuz
parents:
diff changeset
77 syn match mlirIdentifier /[%@][a-zA-Z$._-][a-zA-Z0-9$._-]*/
anatofuz
parents:
diff changeset
78 syn match mlirIdentifier /[%@!]\d\+\>/
anatofuz
parents:
diff changeset
79 syn match mlirMapSetOutline "#.*$"
anatofuz
parents:
diff changeset
80
anatofuz
parents:
diff changeset
81 " Syntax-highlight lit test commands and bug numbers.
anatofuz
parents:
diff changeset
82 syn match mlirSpecialComment /\/\/\s*RUN:.*$/
anatofuz
parents:
diff changeset
83 syn match mlirSpecialComment /\/\/\s*CHECK:.*$/
anatofuz
parents:
diff changeset
84 syn match mlirSpecialComment "\v\/\/\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$"
anatofuz
parents:
diff changeset
85 syn match mlirSpecialComment /\/\/\s*expected-error.*$/
anatofuz
parents:
diff changeset
86 syn match mlirSpecialComment /\/\/\s*expected-remark.*$/
anatofuz
parents:
diff changeset
87 syn match mlirSpecialComment /;\s*XFAIL:.*$/
anatofuz
parents:
diff changeset
88 syn match mlirSpecialComment /\/\/\s*PR\d*\s*$/
anatofuz
parents:
diff changeset
89 syn match mlirSpecialComment /\/\/\s*REQUIRES:.*$/
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 if version >= 508 || !exists("did_c_syn_inits")
anatofuz
parents:
diff changeset
92 if version < 508
anatofuz
parents:
diff changeset
93 let did_c_syn_inits = 1
anatofuz
parents:
diff changeset
94 command -nargs=+ HiLink hi link <args>
anatofuz
parents:
diff changeset
95 else
anatofuz
parents:
diff changeset
96 command -nargs=+ HiLink hi def link <args>
anatofuz
parents:
diff changeset
97 endif
anatofuz
parents:
diff changeset
98
anatofuz
parents:
diff changeset
99 HiLink mlirType Type
anatofuz
parents:
diff changeset
100 HiLink mlirOps Statement
anatofuz
parents:
diff changeset
101 HiLink mlirMapSetOutline PreProc
anatofuz
parents:
diff changeset
102 HiLink mlirNumber Number
anatofuz
parents:
diff changeset
103 HiLink mlirComment Comment
anatofuz
parents:
diff changeset
104 HiLink mlirString String
anatofuz
parents:
diff changeset
105 HiLink mlirLabel Label
anatofuz
parents:
diff changeset
106 HiLink mlirKeyword Keyword
anatofuz
parents:
diff changeset
107 HiLink mlirBoolean Boolean
anatofuz
parents:
diff changeset
108 HiLink mlirFloat Float
anatofuz
parents:
diff changeset
109 HiLink mlirConstant Constant
anatofuz
parents:
diff changeset
110 HiLink mlirSpecialComment SpecialComment
anatofuz
parents:
diff changeset
111 HiLink mlirIdentifier Identifier
anatofuz
parents:
diff changeset
112
anatofuz
parents:
diff changeset
113 delcommand HiLink
anatofuz
parents:
diff changeset
114 endif
anatofuz
parents:
diff changeset
115
anatofuz
parents:
diff changeset
116 let b:current_syntax = "mlir"