Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 <lexer> | |
2 <config> | |
3 <name>Metal</name> | |
4 <alias>metal</alias> | |
5 <filename>*.metal</filename> | |
6 <mime_type>text/x-metal</mime_type> | |
7 <ensure_nl>true</ensure_nl> | |
8 </config> | |
9 <rules> | |
10 <state name="function"> | |
11 <rule> | |
12 <include state="whitespace"/> | |
13 </rule> | |
14 <rule> | |
15 <include state="statements"/> | |
16 </rule> | |
17 <rule pattern=";"> | |
18 <token type="Punctuation"/> | |
19 </rule> | |
20 <rule pattern="\{"> | |
21 <token type="Punctuation"/> | |
22 <push/> | |
23 </rule> | |
24 <rule pattern="\}"> | |
25 <token type="Punctuation"/> | |
26 <pop depth="1"/> | |
27 </rule> | |
28 </state> | |
29 <state name="macro"> | |
30 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)"> | |
31 <bygroups> | |
32 <token type="CommentPreproc"/> | |
33 <token type="Text"/> | |
34 <token type="CommentPreprocFile"/> | |
35 </bygroups> | |
36 </rule> | |
37 <rule pattern="[^/\n]+"> | |
38 <token type="CommentPreproc"/> | |
39 </rule> | |
40 <rule pattern="/[*](.|\n)*?[*]/"> | |
41 <token type="CommentMultiline"/> | |
42 </rule> | |
43 <rule pattern="//.*?\n"> | |
44 <token type="CommentSingle"/> | |
45 <pop depth="1"/> | |
46 </rule> | |
47 <rule pattern="/"> | |
48 <token type="CommentPreproc"/> | |
49 </rule> | |
50 <rule pattern="(?<=\\)\n"> | |
51 <token type="CommentPreproc"/> | |
52 </rule> | |
53 <rule pattern="\n"> | |
54 <token type="CommentPreproc"/> | |
55 <pop depth="1"/> | |
56 </rule> | |
57 </state> | |
58 <state name="if0"> | |
59 <rule pattern="^\s*#if.*?(?<!\\)\n"> | |
60 <token type="CommentPreproc"/> | |
61 <push/> | |
62 </rule> | |
63 <rule pattern="^\s*#el(?:se|if).*\n"> | |
64 <token type="CommentPreproc"/> | |
65 <pop depth="1"/> | |
66 </rule> | |
67 <rule pattern="^\s*#endif.*?(?<!\\)\n"> | |
68 <token type="CommentPreproc"/> | |
69 <pop depth="1"/> | |
70 </rule> | |
71 <rule pattern=".*?\n"> | |
72 <token type="Comment"/> | |
73 </rule> | |
74 </state> | |
75 <state name="statements"> | |
76 <rule pattern="(namespace|constexpr|operator|template|using|this)\b"> | |
77 <token type="Keyword"/> | |
78 </rule> | |
79 <rule pattern="(enum)\b(\s+)(class)\b(\s*)"> | |
80 <bygroups> | |
81 <token type="Keyword"/> | |
82 <token type="Text"/> | |
83 <token type="Keyword"/> | |
84 <token type="Text"/> | |
85 </bygroups> | |
86 <push state="classname"/> | |
87 </rule> | |
88 <rule pattern="(class|struct|enum|union)\b(\s*)"> | |
89 <bygroups> | |
90 <token type="Keyword"/> | |
91 <token type="Text"/> | |
92 </bygroups> | |
93 <push state="classname"/> | |
94 </rule> | |
95 <rule pattern="\[\[.+\]\]"> | |
96 <token type="NameAttribute"/> | |
97 </rule> | |
98 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*"> | |
99 <token type="LiteralNumberFloat"/> | |
100 </rule> | |
101 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?"> | |
102 <token type="LiteralNumberFloat"/> | |
103 </rule> | |
104 <rule pattern="0[xX]([0-9A-Fa-f]('?[0-9A-Fa-f]+)*)[LlUu]*"> | |
105 <token type="LiteralNumberHex"/> | |
106 </rule> | |
107 <rule pattern="0('?[0-7]+)+[LlUu]*"> | |
108 <token type="LiteralNumberOct"/> | |
109 </rule> | |
110 <rule pattern="0[Bb][01]('?[01]+)*[LlUu]*"> | |
111 <token type="LiteralNumberBin"/> | |
112 </rule> | |
113 <rule pattern="[0-9]('?[0-9]+)*[LlUu]*"> | |
114 <token type="LiteralNumberInteger"/> | |
115 </rule> | |
116 <rule pattern="\*/"> | |
117 <token type="Error"/> | |
118 </rule> | |
119 <rule pattern="[~!%^&*+=|?:<>/-]"> | |
120 <token type="Operator"/> | |
121 </rule> | |
122 <rule pattern="[()\[\],.]"> | |
123 <token type="Punctuation"/> | |
124 </rule> | |
125 <rule pattern="(continue|typedef|sizeof|extern|static|switch|struct|return|union|const|break|while|enum|else|case|for|do|if)\b"> | |
126 <token type="Keyword"/> | |
127 </rule> | |
128 <rule pattern="(bool|float|half|long|ptrdiff_t|size_t|unsigned|u?char|u?int((8|16|32|64)_t)?|u?short)\b"> | |
129 <token type="KeywordType"/> | |
130 </rule> | |
131 <rule pattern="(bool|float|half|u?(char|int|long|short))(2|3|4)\b"> | |
132 <token type="KeywordType"/> | |
133 </rule> | |
134 <rule pattern="packed_(float|half|long|u?(char|int|short))(2|3|4)\b"> | |
135 <token type="KeywordType"/> | |
136 </rule> | |
137 <rule pattern="(float|half)(2|3|4)x(2|3|4)\b"> | |
138 <token type="KeywordType"/> | |
139 </rule> | |
140 <rule pattern="atomic_u?int\b"> | |
141 <token type="KeywordType"/> | |
142 </rule> | |
143 <rule pattern="(rg?(8|16)(u|s)norm|rgba(8|16)(u|s)norm|srgba8unorm|rgb10a2|rg11b10f|rgb9e5)\b"> | |
144 <token type="KeywordType"/> | |
145 </rule> | |
146 <rule pattern="(array|depth(2d|cube)(_array)?|depth2d_ms(_array)?|sampler|texture_buffer|texture(1|2)d(_array)?|texture2d_ms(_array)?|texture3d|texturecube(_array)?|uniform|visible_function_table)\b"> | |
147 <token type="KeywordType"/> | |
148 </rule> | |
149 <rule pattern="(true|false|NULL)\b"> | |
150 <token type="NameBuiltin"/> | |
151 </rule> | |
152 <rule pattern="(threadgroup_imageblock|threadgroup|constant|ray_data|device|thread)\b"> | |
153 <token type="Keyword"/> | |
154 </rule> | |
155 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)"> | |
156 <bygroups> | |
157 <token type="NameLabel"/> | |
158 <token type="Text"/> | |
159 <token type="Punctuation"/> | |
160 </bygroups> | |
161 </rule> | |
162 <rule pattern="[a-zA-Z_]\w*"> | |
163 <token type="Name"/> | |
164 </rule> | |
165 </state> | |
166 <state name="root"> | |
167 <rule> | |
168 <include state="whitespace"/> | |
169 </rule> | |
170 <rule pattern="(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)"> | |
171 <bygroups> | |
172 <token type="Keyword"/> | |
173 <usingself state="root"/> | |
174 <token type="NameFunction"/> | |
175 <usingself state="root"/> | |
176 <usingself state="root"/> | |
177 <token type="Punctuation"/> | |
178 </bygroups> | |
179 <push state="function"/> | |
180 </rule> | |
181 <rule pattern="(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)"> | |
182 <bygroups> | |
183 <token type="Keyword"/> | |
184 <usingself state="root"/> | |
185 <token type="NameFunction"/> | |
186 <usingself state="root"/> | |
187 <usingself state="root"/> | |
188 <token type="Punctuation"/> | |
189 </bygroups> | |
190 </rule> | |
191 <rule> | |
192 <push state="statement"/> | |
193 </rule> | |
194 </state> | |
195 <state name="classname"> | |
196 <rule pattern="(\[\[.+\]\])(\s*)"> | |
197 <bygroups> | |
198 <token type="NameAttribute"/> | |
199 <token type="Text"/> | |
200 </bygroups> | |
201 </rule> | |
202 <rule pattern="[a-zA-Z_]\w*"> | |
203 <token type="NameClass"/> | |
204 <pop depth="1"/> | |
205 </rule> | |
206 <rule pattern="\s*(?=[>{])"> | |
207 <token type="Text"/> | |
208 <pop depth="1"/> | |
209 </rule> | |
210 </state> | |
211 <state name="whitespace"> | |
212 <rule pattern="^#if\s+0"> | |
213 <token type="CommentPreproc"/> | |
214 <push state="if0"/> | |
215 </rule> | |
216 <rule pattern="^#"> | |
217 <token type="CommentPreproc"/> | |
218 <push state="macro"/> | |
219 </rule> | |
220 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)"> | |
221 <bygroups> | |
222 <usingself state="root"/> | |
223 <token type="CommentPreproc"/> | |
224 </bygroups> | |
225 <push state="if0"/> | |
226 </rule> | |
227 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)"> | |
228 <bygroups> | |
229 <usingself state="root"/> | |
230 <token type="CommentPreproc"/> | |
231 </bygroups> | |
232 <push state="macro"/> | |
233 </rule> | |
234 <rule pattern="\n"> | |
235 <token type="Text"/> | |
236 </rule> | |
237 <rule pattern="\s+"> | |
238 <token type="Text"/> | |
239 </rule> | |
240 <rule pattern="\\\n"> | |
241 <token type="Text"/> | |
242 </rule> | |
243 <rule pattern="//(\n|[\w\W]*?[^\\]\n)"> | |
244 <token type="CommentSingle"/> | |
245 </rule> | |
246 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/"> | |
247 <token type="CommentMultiline"/> | |
248 </rule> | |
249 <rule pattern="/(\\\n)?[*][\w\W]*"> | |
250 <token type="CommentMultiline"/> | |
251 </rule> | |
252 </state> | |
253 <state name="statement"> | |
254 <rule> | |
255 <include state="whitespace"/> | |
256 </rule> | |
257 <rule> | |
258 <include state="statements"/> | |
259 </rule> | |
260 <rule pattern="[{]"> | |
261 <token type="Punctuation"/> | |
262 <push state="root"/> | |
263 </rule> | |
264 <rule pattern="[;}]"> | |
265 <token type="Punctuation"/> | |
266 <pop depth="1"/> | |
267 </rule> | |
268 </state> | |
269 </rules> | |
270 </lexer> |