Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.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>Rust</name> | |
4 <alias>rust</alias> | |
5 <alias>rs</alias> | |
6 <filename>*.rs</filename> | |
7 <filename>*.rs.in</filename> | |
8 <mime_type>text/rust</mime_type> | |
9 <mime_type>text/x-rust</mime_type> | |
10 <ensure_nl>true</ensure_nl> | |
11 </config> | |
12 <rules> | |
13 <state name="modname"> | |
14 <rule pattern="\s+"> | |
15 <token type="Text"/> | |
16 </rule> | |
17 <rule pattern="[a-zA-Z_]\w*"> | |
18 <token type="NameNamespace"/> | |
19 <pop depth="1"/> | |
20 </rule> | |
21 <rule> | |
22 <pop depth="1"/> | |
23 </rule> | |
24 </state> | |
25 <state name="lifetime"> | |
26 <rule pattern="(static|_)"> | |
27 <token type="NameBuiltin"/> | |
28 </rule> | |
29 <rule pattern="[a-zA-Z_]+\w*"> | |
30 <token type="NameAttribute"/> | |
31 </rule> | |
32 <rule> | |
33 <pop depth="1"/> | |
34 </rule> | |
35 </state> | |
36 <state name="number_lit"> | |
37 <rule pattern="[ui](8|16|32|64|size)"> | |
38 <token type="Keyword"/> | |
39 <pop depth="1"/> | |
40 </rule> | |
41 <rule pattern="f(32|64)"> | |
42 <token type="Keyword"/> | |
43 <pop depth="1"/> | |
44 </rule> | |
45 <rule> | |
46 <pop depth="1"/> | |
47 </rule> | |
48 </state> | |
49 <state name="attribute_common"> | |
50 <rule pattern="""> | |
51 <token type="LiteralString"/> | |
52 <push state="string"/> | |
53 </rule> | |
54 <rule pattern="\["> | |
55 <token type="CommentPreproc"/> | |
56 <push state="attribute["/> | |
57 </rule> | |
58 </state> | |
59 <state name="bytestring"> | |
60 <rule pattern="\\x[89a-fA-F][0-9a-fA-F]"> | |
61 <token type="LiteralStringEscape"/> | |
62 </rule> | |
63 <rule> | |
64 <include state="string"/> | |
65 </rule> | |
66 </state> | |
67 <state name="comment"> | |
68 <rule pattern="[^*/]+"> | |
69 <token type="CommentMultiline"/> | |
70 </rule> | |
71 <rule pattern="/\*"> | |
72 <token type="CommentMultiline"/> | |
73 <push/> | |
74 </rule> | |
75 <rule pattern="\*/"> | |
76 <token type="CommentMultiline"/> | |
77 <pop depth="1"/> | |
78 </rule> | |
79 <rule pattern="[*/]"> | |
80 <token type="CommentMultiline"/> | |
81 </rule> | |
82 </state> | |
83 <state name="doccomment"> | |
84 <rule pattern="[^*/]+"> | |
85 <token type="LiteralStringDoc"/> | |
86 </rule> | |
87 <rule pattern="/\*"> | |
88 <token type="LiteralStringDoc"/> | |
89 <push/> | |
90 </rule> | |
91 <rule pattern="\*/"> | |
92 <token type="LiteralStringDoc"/> | |
93 <pop depth="1"/> | |
94 </rule> | |
95 <rule pattern="[*/]"> | |
96 <token type="LiteralStringDoc"/> | |
97 </rule> | |
98 </state> | |
99 <state name="funcname"> | |
100 <rule pattern="\s+"> | |
101 <token type="Text"/> | |
102 </rule> | |
103 <rule pattern="[a-zA-Z_]\w*"> | |
104 <token type="NameFunction"/> | |
105 <pop depth="1"/> | |
106 </rule> | |
107 <rule> | |
108 <pop depth="1"/> | |
109 </rule> | |
110 </state> | |
111 <state name="string"> | |
112 <rule pattern="""> | |
113 <token type="LiteralString"/> | |
114 <pop depth="1"/> | |
115 </rule> | |
116 <rule pattern="\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}"> | |
117 <token type="LiteralStringEscape"/> | |
118 </rule> | |
119 <rule pattern="[^\\"]+"> | |
120 <token type="LiteralString"/> | |
121 </rule> | |
122 <rule pattern="\\"> | |
123 <token type="LiteralString"/> | |
124 </rule> | |
125 </state> | |
126 <state name="root"> | |
127 <rule pattern="#![^[\r\n].*$"> | |
128 <token type="CommentPreproc"/> | |
129 </rule> | |
130 <rule> | |
131 <push state="base"/> | |
132 </rule> | |
133 </state> | |
134 <state name="attribute["> | |
135 <rule> | |
136 <include state="attribute_common"/> | |
137 </rule> | |
138 <rule pattern="\]"> | |
139 <token type="CommentPreproc"/> | |
140 <pop depth="1"/> | |
141 </rule> | |
142 <rule pattern="[^"\]\[]+"> | |
143 <token type="CommentPreproc"/> | |
144 </rule> | |
145 </state> | |
146 <state name="base"> | |
147 <rule pattern="\n"> | |
148 <token type="TextWhitespace"/> | |
149 </rule> | |
150 <rule pattern="\s+"> | |
151 <token type="TextWhitespace"/> | |
152 </rule> | |
153 <rule pattern="//!.*?\n"> | |
154 <token type="LiteralStringDoc"/> | |
155 </rule> | |
156 <rule pattern="///(\n|[^/].*?\n)"> | |
157 <token type="LiteralStringDoc"/> | |
158 </rule> | |
159 <rule pattern="//(.*?)\n"> | |
160 <token type="CommentSingle"/> | |
161 </rule> | |
162 <rule pattern="/\*\*(\n|[^/*])"> | |
163 <token type="LiteralStringDoc"/> | |
164 <push state="doccomment"/> | |
165 </rule> | |
166 <rule pattern="/\*!"> | |
167 <token type="LiteralStringDoc"/> | |
168 <push state="doccomment"/> | |
169 </rule> | |
170 <rule pattern="/\*"> | |
171 <token type="CommentMultiline"/> | |
172 <push state="comment"/> | |
173 </rule> | |
174 <rule pattern="r#*"(?:\\.|[^\\;])*"#*"> | |
175 <token type="LiteralString"/> | |
176 </rule> | |
177 <rule pattern=""(?:\\.|[^\\"])*""> | |
178 <token type="LiteralString"/> | |
179 </rule> | |
180 <rule pattern="\$([a-zA-Z_]\w*|\(,?|\),?|,?)"> | |
181 <token type="CommentPreproc"/> | |
182 </rule> | |
183 <rule pattern="(unsafe|static|extern|return|const|crate|where|while|await|trait|super|async|match|impl|else|move|loop|pub|ref|mut|for|dyn|use|box|in|if|as)\b"> | |
184 <token type="Keyword"/> | |
185 </rule> | |
186 <rule pattern="(abstract|override|unsized|virtual|become|typeof|final|macro|yield|priv|try|do)\b"> | |
187 <token type="KeywordReserved"/> | |
188 </rule> | |
189 <rule pattern="(true|false)\b"> | |
190 <token type="KeywordConstant"/> | |
191 </rule> | |
192 <rule pattern="self\b"> | |
193 <token type="NameBuiltinPseudo"/> | |
194 </rule> | |
195 <rule pattern="mod\b"> | |
196 <token type="Keyword"/> | |
197 <push state="modname"/> | |
198 </rule> | |
199 <rule pattern="let\b"> | |
200 <token type="KeywordDeclaration"/> | |
201 </rule> | |
202 <rule pattern="fn\b"> | |
203 <token type="Keyword"/> | |
204 <push state="funcname"/> | |
205 </rule> | |
206 <rule pattern="(struct|enum|type|union)\b"> | |
207 <token type="Keyword"/> | |
208 <push state="typename"/> | |
209 </rule> | |
210 <rule pattern="(default)(\s+)(type|fn)\b"> | |
211 <bygroups> | |
212 <token type="Keyword"/> | |
213 <token type="Text"/> | |
214 <token type="Keyword"/> | |
215 </bygroups> | |
216 </rule> | |
217 <rule pattern="(isize|usize|bool|char|u128|i128|i64|i32|i16|str|u64|u32|f32|f64|u16|i8|u8)\b"> | |
218 <token type="KeywordType"/> | |
219 </rule> | |
220 <rule pattern="[sS]elf\b"> | |
221 <token type="NameBuiltinPseudo"/> | |
222 </rule> | |
223 <rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b"> | |
224 <token type="NameBuiltin"/> | |
225 </rule> | |
226 <rule pattern="(is_powerpc64_feature_detected|is_aarch64_feature_detected|is_powerpc_feature_detected|is_mips64_feature_detected|is_mips_feature_detected|is_x86_feature_detected|is_arm_feature_detected|debug_assert_ne|debug_assert_eq|format_args_nl|concat_idents|unimplemented|include_bytes|compile_error|debug_assert|thread_local|trace_macros|macro_rules|format_args|module_path|unreachable|include_str|option_env|global_asm|log_syntax|stringify|assert_ne|assert_eq|llvm_asm|eprintln|include|matches|println|writeln|format|column|assert|concat|eprint|write|panic|print|file|todo|line|env|dbg|vec|cfg|asm)!"> | |
227 <token type="NameFunctionMagic"/> | |
228 </rule> | |
229 <rule pattern="::\b"> | |
230 <token type="Text"/> | |
231 </rule> | |
232 <rule pattern="(?::|->)"> | |
233 <token type="Text"/> | |
234 <push state="typename"/> | |
235 </rule> | |
236 <rule pattern="(break|continue)(\b\s*)(\'[A-Za-z_]\w*)?"> | |
237 <bygroups> | |
238 <token type="Keyword"/> | |
239 <token type="TextWhitespace"/> | |
240 <token type="NameLabel"/> | |
241 </bygroups> | |
242 </rule> | |
243 <rule pattern="'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'"> | |
244 <token type="LiteralStringChar"/> | |
245 </rule> | |
246 <rule pattern="b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'"> | |
247 <token type="LiteralStringChar"/> | |
248 </rule> | |
249 <rule pattern="0b[01_]+"> | |
250 <token type="LiteralNumberBin"/> | |
251 <push state="number_lit"/> | |
252 </rule> | |
253 <rule pattern="0o[0-7_]+"> | |
254 <token type="LiteralNumberOct"/> | |
255 <push state="number_lit"/> | |
256 </rule> | |
257 <rule pattern="0[xX][0-9a-fA-F_]+"> | |
258 <token type="LiteralNumberHex"/> | |
259 <push state="number_lit"/> | |
260 </rule> | |
261 <rule pattern="[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)"> | |
262 <token type="LiteralNumberFloat"/> | |
263 <push state="number_lit"/> | |
264 </rule> | |
265 <rule pattern="[0-9][0-9_]*"> | |
266 <token type="LiteralNumberInteger"/> | |
267 <push state="number_lit"/> | |
268 </rule> | |
269 <rule pattern="b""> | |
270 <token type="LiteralString"/> | |
271 <push state="bytestring"/> | |
272 </rule> | |
273 <rule pattern="(?s)b?r(#*)".*?"\1"> | |
274 <token type="LiteralString"/> | |
275 </rule> | |
276 <rule pattern="'"> | |
277 <token type="Operator"/> | |
278 <push state="lifetime"/> | |
279 </rule> | |
280 <rule pattern="\.\.=?"> | |
281 <token type="Operator"/> | |
282 </rule> | |
283 <rule pattern="[{}()\[\],.;]"> | |
284 <token type="Punctuation"/> | |
285 </rule> | |
286 <rule pattern="[+\-*/%&|<>^!~@=:?]"> | |
287 <token type="Operator"/> | |
288 </rule> | |
289 <rule pattern="(r#)?[a-zA-Z_]\w*"> | |
290 <token type="Name"/> | |
291 </rule> | |
292 <rule pattern="r#[a-zA-Z_]\w*"> | |
293 <token type="Name"/> | |
294 </rule> | |
295 <rule pattern="#!?\["> | |
296 <token type="CommentPreproc"/> | |
297 <push state="attribute["/> | |
298 </rule> | |
299 <rule pattern="#"> | |
300 <token type="Text"/> | |
301 </rule> | |
302 </state> | |
303 <state name="typename"> | |
304 <rule pattern="\s+"> | |
305 <token type="Text"/> | |
306 </rule> | |
307 <rule pattern="&"> | |
308 <token type="KeywordPseudo"/> | |
309 </rule> | |
310 <rule pattern="'"> | |
311 <token type="Operator"/> | |
312 <push state="lifetime"/> | |
313 </rule> | |
314 <rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b"> | |
315 <token type="NameBuiltin"/> | |
316 </rule> | |
317 <rule pattern="(isize|usize|bool|char|u128|i128|i64|i32|i16|str|u64|u32|f32|f64|u16|i8|u8)\b"> | |
318 <token type="KeywordType"/> | |
319 </rule> | |
320 <rule pattern="[a-zA-Z_]\w*"> | |
321 <token type="NameClass"/> | |
322 <pop depth="1"/> | |
323 </rule> | |
324 <rule> | |
325 <pop depth="1"/> | |
326 </rule> | |
327 </state> | |
328 </rules> | |
329 </lexer> |