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="&#34;">
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="&#34;">
113 <token type="LiteralString"/>
114 <pop depth="1"/>
115 </rule>
116 <rule pattern="\\[&#39;&#34;\\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="[^\\&#34;]+">
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="[^&#34;\]\[]+">
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#*&#34;(?:\\.|[^\\;])*&#34;#*">
175 <token type="LiteralString"/>
176 </rule>
177 <rule pattern="&#34;(?:\\.|[^\\&#34;])*&#34;">
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="(?::|-&gt;)">
233 <token type="Text"/>
234 <push state="typename"/>
235 </rule>
236 <rule pattern="(break|continue)(\b\s*)(\&#39;[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="&#39;(\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
244 <token type="LiteralStringChar"/>
245 </rule>
246 <rule pattern="b&#39;(\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
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&#34;">
270 <token type="LiteralString"/>
271 <push state="bytestring"/>
272 </rule>
273 <rule pattern="(?s)b?r(#*)&#34;.*?&#34;\1">
274 <token type="LiteralString"/>
275 </rule>
276 <rule pattern="&#39;">
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="[+\-*/%&amp;|&lt;&gt;^!~@=:?]">
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="&amp;">
308 <token type="KeywordPseudo"/>
309 </rule>
310 <rule pattern="&#39;">
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>