Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.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>Crystal</name> | |
4 <alias>cr</alias> | |
5 <alias>crystal</alias> | |
6 <filename>*.cr</filename> | |
7 <mime_type>text/x-crystal</mime_type> | |
8 <dot_all>true</dot_all> | |
9 </config> | |
10 <rules> | |
11 <state name="pa-intp-string"> | |
12 <rule pattern="\\[\(]"> | |
13 <token type="LiteralStringOther"/> | |
14 </rule> | |
15 <rule pattern="\("> | |
16 <token type="LiteralStringOther"/> | |
17 <push/> | |
18 </rule> | |
19 <rule pattern="\)"> | |
20 <token type="LiteralStringOther"/> | |
21 <pop depth="1"/> | |
22 </rule> | |
23 <rule> | |
24 <include state="string-intp-escaped"/> | |
25 </rule> | |
26 <rule pattern="[\\#()]"> | |
27 <token type="LiteralStringOther"/> | |
28 </rule> | |
29 <rule pattern="[^\\#()]+"> | |
30 <token type="LiteralStringOther"/> | |
31 </rule> | |
32 </state> | |
33 <state name="ab-regex"> | |
34 <rule pattern="\\[\\<>]"> | |
35 <token type="LiteralStringRegex"/> | |
36 </rule> | |
37 <rule pattern="<"> | |
38 <token type="LiteralStringRegex"/> | |
39 <push/> | |
40 </rule> | |
41 <rule pattern=">[imsx]*"> | |
42 <token type="LiteralStringRegex"/> | |
43 <pop depth="1"/> | |
44 </rule> | |
45 <rule> | |
46 <include state="string-intp"/> | |
47 </rule> | |
48 <rule pattern="[\\#<>]"> | |
49 <token type="LiteralStringRegex"/> | |
50 </rule> | |
51 <rule pattern="[^\\#<>]+"> | |
52 <token type="LiteralStringRegex"/> | |
53 </rule> | |
54 </state> | |
55 <state name="cb-regex"> | |
56 <rule pattern="\\[\\{}]"> | |
57 <token type="LiteralStringRegex"/> | |
58 </rule> | |
59 <rule pattern="\{"> | |
60 <token type="LiteralStringRegex"/> | |
61 <push/> | |
62 </rule> | |
63 <rule pattern="\}[imsx]*"> | |
64 <token type="LiteralStringRegex"/> | |
65 <pop depth="1"/> | |
66 </rule> | |
67 <rule> | |
68 <include state="string-intp"/> | |
69 </rule> | |
70 <rule pattern="[\\#{}]"> | |
71 <token type="LiteralStringRegex"/> | |
72 </rule> | |
73 <rule pattern="[^\\#{}]+"> | |
74 <token type="LiteralStringRegex"/> | |
75 </rule> | |
76 </state> | |
77 <state name="simple-backtick"> | |
78 <rule> | |
79 <include state="string-intp-escaped"/> | |
80 </rule> | |
81 <rule pattern="[^\\`#]+"> | |
82 <token type="LiteralStringBacktick"/> | |
83 </rule> | |
84 <rule pattern="[\\#]"> | |
85 <token type="LiteralStringBacktick"/> | |
86 </rule> | |
87 <rule pattern="`"> | |
88 <token type="LiteralStringBacktick"/> | |
89 <pop depth="1"/> | |
90 </rule> | |
91 </state> | |
92 <state name="string-intp"> | |
93 <rule pattern="#\{"> | |
94 <token type="LiteralStringInterpol"/> | |
95 <push state="in-intp"/> | |
96 </rule> | |
97 </state> | |
98 <state name="interpolated-regex"> | |
99 <rule> | |
100 <include state="string-intp"/> | |
101 </rule> | |
102 <rule pattern="[\\#]"> | |
103 <token type="LiteralStringRegex"/> | |
104 </rule> | |
105 <rule pattern="[^\\#]+"> | |
106 <token type="LiteralStringRegex"/> | |
107 </rule> | |
108 </state> | |
109 <state name="cb-string"> | |
110 <rule pattern="\\[\\{}]"> | |
111 <token type="LiteralStringOther"/> | |
112 </rule> | |
113 <rule pattern="\{"> | |
114 <token type="LiteralStringOther"/> | |
115 <push/> | |
116 </rule> | |
117 <rule pattern="\}"> | |
118 <token type="LiteralStringOther"/> | |
119 <pop depth="1"/> | |
120 </rule> | |
121 <rule pattern="[\\#{}]"> | |
122 <token type="LiteralStringOther"/> | |
123 </rule> | |
124 <rule pattern="[^\\#{}]+"> | |
125 <token type="LiteralStringOther"/> | |
126 </rule> | |
127 </state> | |
128 <state name="in-macro-control"> | |
129 <rule pattern="\{%"> | |
130 <token type="LiteralStringInterpol"/> | |
131 <push/> | |
132 </rule> | |
133 <rule pattern="%\}"> | |
134 <token type="LiteralStringInterpol"/> | |
135 <pop depth="1"/> | |
136 </rule> | |
137 <rule pattern="for\b|in\b"> | |
138 <token type="Keyword"/> | |
139 </rule> | |
140 <rule> | |
141 <include state="root"/> | |
142 </rule> | |
143 </state> | |
144 <state name="interpolated-string"> | |
145 <rule> | |
146 <include state="string-intp"/> | |
147 </rule> | |
148 <rule pattern="[\\#]"> | |
149 <token type="LiteralStringOther"/> | |
150 </rule> | |
151 <rule pattern="[^\\#]+"> | |
152 <token type="LiteralStringOther"/> | |
153 </rule> | |
154 </state> | |
155 <state name="in-macro-expr"> | |
156 <rule pattern="\{\{"> | |
157 <token type="LiteralStringInterpol"/> | |
158 <push/> | |
159 </rule> | |
160 <rule pattern="\}\}"> | |
161 <token type="LiteralStringInterpol"/> | |
162 <pop depth="1"/> | |
163 </rule> | |
164 <rule> | |
165 <include state="root"/> | |
166 </rule> | |
167 </state> | |
168 <state name="simple-string"> | |
169 <rule> | |
170 <include state="string-intp-escaped"/> | |
171 </rule> | |
172 <rule pattern="[^\\"#]+"> | |
173 <token type="LiteralStringDouble"/> | |
174 </rule> | |
175 <rule pattern="[\\#]"> | |
176 <token type="LiteralStringDouble"/> | |
177 </rule> | |
178 <rule pattern="""> | |
179 <token type="LiteralStringDouble"/> | |
180 <pop depth="1"/> | |
181 </rule> | |
182 </state> | |
183 <state name="cb-intp-string"> | |
184 <rule pattern="\\[\{]"> | |
185 <token type="LiteralStringOther"/> | |
186 </rule> | |
187 <rule pattern="\{"> | |
188 <token type="LiteralStringOther"/> | |
189 <push/> | |
190 </rule> | |
191 <rule pattern="\}"> | |
192 <token type="LiteralStringOther"/> | |
193 <pop depth="1"/> | |
194 </rule> | |
195 <rule> | |
196 <include state="string-intp-escaped"/> | |
197 </rule> | |
198 <rule pattern="[\\#{}]"> | |
199 <token type="LiteralStringOther"/> | |
200 </rule> | |
201 <rule pattern="[^\\#{}]+"> | |
202 <token type="LiteralStringOther"/> | |
203 </rule> | |
204 </state> | |
205 <state name="string-intp-escaped"> | |
206 <rule> | |
207 <include state="string-intp"/> | |
208 </rule> | |
209 <rule> | |
210 <include state="string-escaped"/> | |
211 </rule> | |
212 </state> | |
213 <state name="sb-regex"> | |
214 <rule pattern="\\[\\\[\]]"> | |
215 <token type="LiteralStringRegex"/> | |
216 </rule> | |
217 <rule pattern="\["> | |
218 <token type="LiteralStringRegex"/> | |
219 <push/> | |
220 </rule> | |
221 <rule pattern="\][imsx]*"> | |
222 <token type="LiteralStringRegex"/> | |
223 <pop depth="1"/> | |
224 </rule> | |
225 <rule> | |
226 <include state="string-intp"/> | |
227 </rule> | |
228 <rule pattern="[\\#\[\]]"> | |
229 <token type="LiteralStringRegex"/> | |
230 </rule> | |
231 <rule pattern="[^\\#\[\]]+"> | |
232 <token type="LiteralStringRegex"/> | |
233 </rule> | |
234 </state> | |
235 <state name="classname"> | |
236 <rule pattern="[A-Z_]\w*"> | |
237 <token type="NameClass"/> | |
238 </rule> | |
239 <rule pattern="(\()(\s*)([A-Z_]\w*)(\s*)(\))"> | |
240 <bygroups> | |
241 <token type="Punctuation"/> | |
242 <token type="Text"/> | |
243 <token type="NameClass"/> | |
244 <token type="Text"/> | |
245 <token type="Punctuation"/> | |
246 </bygroups> | |
247 </rule> | |
248 <rule> | |
249 <pop depth="1"/> | |
250 </rule> | |
251 </state> | |
252 <state name="string-escaped"> | |
253 <rule pattern="\\([\\befnstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})"> | |
254 <token type="LiteralStringEscape"/> | |
255 </rule> | |
256 </state> | |
257 <state name="sb-intp-string"> | |
258 <rule pattern="\\[\[]"> | |
259 <token type="LiteralStringOther"/> | |
260 </rule> | |
261 <rule pattern="\["> | |
262 <token type="LiteralStringOther"/> | |
263 <push/> | |
264 </rule> | |
265 <rule pattern="\]"> | |
266 <token type="LiteralStringOther"/> | |
267 <pop depth="1"/> | |
268 </rule> | |
269 <rule> | |
270 <include state="string-intp-escaped"/> | |
271 </rule> | |
272 <rule pattern="[\\#\[\]]"> | |
273 <token type="LiteralStringOther"/> | |
274 </rule> | |
275 <rule pattern="[^\\#\[\]]+"> | |
276 <token type="LiteralStringOther"/> | |
277 </rule> | |
278 </state> | |
279 <state name="pa-regex"> | |
280 <rule pattern="\\[\\()]"> | |
281 <token type="LiteralStringRegex"/> | |
282 </rule> | |
283 <rule pattern="\("> | |
284 <token type="LiteralStringRegex"/> | |
285 <push/> | |
286 </rule> | |
287 <rule pattern="\)[imsx]*"> | |
288 <token type="LiteralStringRegex"/> | |
289 <pop depth="1"/> | |
290 </rule> | |
291 <rule> | |
292 <include state="string-intp"/> | |
293 </rule> | |
294 <rule pattern="[\\#()]"> | |
295 <token type="LiteralStringRegex"/> | |
296 </rule> | |
297 <rule pattern="[^\\#()]+"> | |
298 <token type="LiteralStringRegex"/> | |
299 </rule> | |
300 </state> | |
301 <state name="in-attr"> | |
302 <rule pattern="\["> | |
303 <token type="Operator"/> | |
304 <push/> | |
305 </rule> | |
306 <rule pattern="\]"> | |
307 <token type="Operator"/> | |
308 <pop depth="1"/> | |
309 </rule> | |
310 <rule> | |
311 <include state="root"/> | |
312 </rule> | |
313 </state> | |
314 <state name="ab-intp-string"> | |
315 <rule pattern="\\[<]"> | |
316 <token type="LiteralStringOther"/> | |
317 </rule> | |
318 <rule pattern="<"> | |
319 <token type="LiteralStringOther"/> | |
320 <push/> | |
321 </rule> | |
322 <rule pattern=">"> | |
323 <token type="LiteralStringOther"/> | |
324 <pop depth="1"/> | |
325 </rule> | |
326 <rule> | |
327 <include state="string-intp-escaped"/> | |
328 </rule> | |
329 <rule pattern="[\\#<>]"> | |
330 <token type="LiteralStringOther"/> | |
331 </rule> | |
332 <rule pattern="[^\\#<>]+"> | |
333 <token type="LiteralStringOther"/> | |
334 </rule> | |
335 </state> | |
336 <state name="in-intp"> | |
337 <rule pattern="\{"> | |
338 <token type="LiteralStringInterpol"/> | |
339 <push/> | |
340 </rule> | |
341 <rule pattern="\}"> | |
342 <token type="LiteralStringInterpol"/> | |
343 <pop depth="1"/> | |
344 </rule> | |
345 <rule> | |
346 <include state="root"/> | |
347 </rule> | |
348 </state> | |
349 <state name="end-part"> | |
350 <rule pattern=".+"> | |
351 <token type="CommentPreproc"/> | |
352 <pop depth="1"/> | |
353 </rule> | |
354 </state> | |
355 <state name="root"> | |
356 <rule pattern="#.*?$"> | |
357 <token type="CommentSingle"/> | |
358 </rule> | |
359 <rule pattern="(instance_sizeof|pointerof|protected|abstract|require|private|include|unless|typeof|sizeof|return|extend|ensure|rescue|ifdef|super|break|begin|until|while|elsif|yield|next|when|else|then|case|with|end|asm|if|do|as|of)\b"> | |
360 <token type="Keyword"/> | |
361 </rule> | |
362 <rule pattern="(false|true|nil)\b"> | |
363 <token type="KeywordConstant"/> | |
364 </rule> | |
365 <rule pattern="(module|lib)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)"> | |
366 <bygroups> | |
367 <token type="Keyword"/> | |
368 <token type="Text"/> | |
369 <token type="NameNamespace"/> | |
370 </bygroups> | |
371 </rule> | |
372 <rule pattern="(def|fun|macro)(\s+)((?:[a-zA-Z_]\w*::)*)"> | |
373 <bygroups> | |
374 <token type="Keyword"/> | |
375 <token type="Text"/> | |
376 <token type="NameNamespace"/> | |
377 </bygroups> | |
378 <push state="funcname"/> | |
379 </rule> | |
380 <rule pattern="def(?=[*%&^`~+-/\[<>=])"> | |
381 <token type="Keyword"/> | |
382 <push state="funcname"/> | |
383 </rule> | |
384 <rule pattern="(class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)"> | |
385 <bygroups> | |
386 <token type="Keyword"/> | |
387 <token type="Text"/> | |
388 <token type="NameNamespace"/> | |
389 </bygroups> | |
390 <push state="classname"/> | |
391 </rule> | |
392 <rule pattern="(self|out|uninitialized)\b|(is_a|responds_to)\?"> | |
393 <token type="KeywordPseudo"/> | |
394 </rule> | |
395 <rule pattern="(def_equals_and_hash|assert_responds_to|forward_missing_to|def_equals|property|def_hash|parallel|delegate|debugger|getter|record|setter|spawn|pp)\b"> | |
396 <token type="NameBuiltinPseudo"/> | |
397 </rule> | |
398 <rule pattern="getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b"> | |
399 <token type="NameBuiltinPseudo"/> | |
400 </rule> | |
401 <rule pattern="(?<!\.)(get_stack_top|StaticArray|Concurrent|with_color|Reference|Scheduler|read_line|Exception|at_exit|Pointer|Channel|Float64|sprintf|Float32|Process|Object|Struct|caller|UInt16|UInt32|UInt64|system|future|Number|printf|String|Symbol|Int32|Range|Slice|Regex|Mutex|sleep|Array|Class|raise|Tuple|Deque|delay|Float|Int16|print|abort|Value|UInt8|Int64|puts|Proc|File|Void|exit|fork|Bool|Char|gets|lazy|loop|main|rand|Enum|Int8|Time|Hash|Set|Box|Nil|Dir|Int|p)\b"> | |
402 <token type="NameBuiltin"/> | |
403 </rule> | |
404 <rule pattern="(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)"> | |
405 <token type="LiteralStringHeredoc"/> | |
406 </rule> | |
407 <rule pattern="(<<-?)("|\')()(\2)(.*?\n)"> | |
408 <token type="LiteralStringHeredoc"/> | |
409 </rule> | |
410 <rule pattern="__END__"> | |
411 <token type="CommentPreproc"/> | |
412 <push state="end-part"/> | |
413 </rule> | |
414 <rule pattern="(?:^|(?<=[=<>~!:])|(?<=(?:\s|;)when\s)|(?<=(?:\s|;)or\s)|(?<=(?:\s|;)and\s)|(?<=\.index\s)|(?<=\.scan\s)|(?<=\.sub\s)|(?<=\.sub!\s)|(?<=\.gsub\s)|(?<=\.gsub!\s)|(?<=\.match\s)|(?<=(?:\s|;)if\s)|(?<=(?:\s|;)elsif\s)|(?<=^when\s)|(?<=^index\s)|(?<=^scan\s)|(?<=^sub\s)|(?<=^gsub\s)|(?<=^sub!\s)|(?<=^gsub!\s)|(?<=^match\s)|(?<=^if\s)|(?<=^elsif\s))(\s*)(/)"> | |
415 <bygroups> | |
416 <token type="Text"/> | |
417 <token type="LiteralStringRegex"/> | |
418 </bygroups> | |
419 <push state="multiline-regex"/> | |
420 </rule> | |
421 <rule pattern="(?<=\(|,|\[)/"> | |
422 <token type="LiteralStringRegex"/> | |
423 <push state="multiline-regex"/> | |
424 </rule> | |
425 <rule pattern="(\s+)(/)(?![\s=])"> | |
426 <bygroups> | |
427 <token type="Text"/> | |
428 <token type="LiteralStringRegex"/> | |
429 </bygroups> | |
430 <push state="multiline-regex"/> | |
431 </rule> | |
432 <rule pattern="(0o[0-7]+(?:_[0-7]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?"> | |
433 <bygroups> | |
434 <token type="LiteralNumberOct"/> | |
435 <token type="Text"/> | |
436 <token type="Operator"/> | |
437 </bygroups> | |
438 </rule> | |
439 <rule pattern="(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?"> | |
440 <bygroups> | |
441 <token type="LiteralNumberHex"/> | |
442 <token type="Text"/> | |
443 <token type="Operator"/> | |
444 </bygroups> | |
445 </rule> | |
446 <rule pattern="(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?"> | |
447 <bygroups> | |
448 <token type="LiteralNumberBin"/> | |
449 <token type="Text"/> | |
450 <token type="Operator"/> | |
451 </bygroups> | |
452 </rule> | |
453 <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?f[0-9]+)?)(\s*)([/?])?"> | |
454 <bygroups> | |
455 <token type="LiteralNumberFloat"/> | |
456 <token type="Text"/> | |
457 <token type="Operator"/> | |
458 </bygroups> | |
459 </rule> | |
460 <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?f[0-9]+)?)(\s*)([/?])?"> | |
461 <bygroups> | |
462 <token type="LiteralNumberFloat"/> | |
463 <token type="Text"/> | |
464 <token type="Operator"/> | |
465 </bygroups> | |
466 </rule> | |
467 <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?f[0-9]+))(\s*)([/?])?"> | |
468 <bygroups> | |
469 <token type="LiteralNumberFloat"/> | |
470 <token type="Text"/> | |
471 <token type="Operator"/> | |
472 </bygroups> | |
473 </rule> | |
474 <rule pattern="(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?"> | |
475 <bygroups> | |
476 <token type="LiteralNumberInteger"/> | |
477 <token type="Text"/> | |
478 <token type="Operator"/> | |
479 </bygroups> | |
480 </rule> | |
481 <rule pattern="@@[a-zA-Z_]\w*"> | |
482 <token type="NameVariableClass"/> | |
483 </rule> | |
484 <rule pattern="@[a-zA-Z_]\w*"> | |
485 <token type="NameVariableInstance"/> | |
486 </rule> | |
487 <rule pattern="\$\w+"> | |
488 <token type="NameVariableGlobal"/> | |
489 </rule> | |
490 <rule pattern="\$[!@&`\'+~=/\\,;.<>_*$?:"^-]"> | |
491 <token type="NameVariableGlobal"/> | |
492 </rule> | |
493 <rule pattern="\$-[0adFiIlpvw]"> | |
494 <token type="NameVariableGlobal"/> | |
495 </rule> | |
496 <rule pattern="::"> | |
497 <token type="Operator"/> | |
498 </rule> | |
499 <rule> | |
500 <include state="strings"/> | |
501 </rule> | |
502 <rule pattern="\?(\\[MC]-)*(\\([\\befnrtv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)"> | |
503 <token type="LiteralStringChar"/> | |
504 </rule> | |
505 <rule pattern="[A-Z][A-Z_]+\b"> | |
506 <token type="NameConstant"/> | |
507 </rule> | |
508 <rule pattern="\{%"> | |
509 <token type="LiteralStringInterpol"/> | |
510 <push state="in-macro-control"/> | |
511 </rule> | |
512 <rule pattern="\{\{"> | |
513 <token type="LiteralStringInterpol"/> | |
514 <push state="in-macro-expr"/> | |
515 </rule> | |
516 <rule pattern="(@\[)(\s*)([A-Z]\w*)"> | |
517 <bygroups> | |
518 <token type="Operator"/> | |
519 <token type="Text"/> | |
520 <token type="NameDecorator"/> | |
521 </bygroups> | |
522 <push state="in-attr"/> | |
523 </rule> | |
524 <rule pattern="(\.|::)(\[\]\?|<=>|===|\[\]=|>>|&&|\*\*|\[\]|\|\||>=|=~|!~|<<|<=|!=|==|<|/|=|-|\+|>|\*|&|%|\^|!|\||~)"> | |
525 <bygroups> | |
526 <token type="Operator"/> | |
527 <token type="NameOperator"/> | |
528 </bygroups> | |
529 </rule> | |
530 <rule pattern="(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])"> | |
531 <bygroups> | |
532 <token type="Operator"/> | |
533 <token type="Name"/> | |
534 </bygroups> | |
535 </rule> | |
536 <rule pattern="[a-zA-Z_]\w*(?:[!?](?!=))?"> | |
537 <token type="Name"/> | |
538 </rule> | |
539 <rule pattern="(\[|\]\??|\*\*|<=>?|>=|<<?|>>?|=~|===|!~|&&?|\|\||\.{1,3})"> | |
540 <token type="Operator"/> | |
541 </rule> | |
542 <rule pattern="[-+/*%=<>&!^|~]=?"> | |
543 <token type="Operator"/> | |
544 </rule> | |
545 <rule pattern="[(){};,/?:\\]"> | |
546 <token type="Punctuation"/> | |
547 </rule> | |
548 <rule pattern="\s+"> | |
549 <token type="Text"/> | |
550 </rule> | |
551 </state> | |
552 <state name="multiline-regex"> | |
553 <rule> | |
554 <include state="string-intp"/> | |
555 </rule> | |
556 <rule pattern="\\\\"> | |
557 <token type="LiteralStringRegex"/> | |
558 </rule> | |
559 <rule pattern="\\/"> | |
560 <token type="LiteralStringRegex"/> | |
561 </rule> | |
562 <rule pattern="[\\#]"> | |
563 <token type="LiteralStringRegex"/> | |
564 </rule> | |
565 <rule pattern="[^\\/#]+"> | |
566 <token type="LiteralStringRegex"/> | |
567 </rule> | |
568 <rule pattern="/[imsx]*"> | |
569 <token type="LiteralStringRegex"/> | |
570 <pop depth="1"/> | |
571 </rule> | |
572 </state> | |
573 <state name="ab-string"> | |
574 <rule pattern="\\[\\<>]"> | |
575 <token type="LiteralStringOther"/> | |
576 </rule> | |
577 <rule pattern="<"> | |
578 <token type="LiteralStringOther"/> | |
579 <push/> | |
580 </rule> | |
581 <rule pattern=">"> | |
582 <token type="LiteralStringOther"/> | |
583 <pop depth="1"/> | |
584 </rule> | |
585 <rule pattern="[\\#<>]"> | |
586 <token type="LiteralStringOther"/> | |
587 </rule> | |
588 <rule pattern="[^\\#<>]+"> | |
589 <token type="LiteralStringOther"/> | |
590 </rule> | |
591 </state> | |
592 <state name="pa-string"> | |
593 <rule pattern="\\[\\()]"> | |
594 <token type="LiteralStringOther"/> | |
595 </rule> | |
596 <rule pattern="\("> | |
597 <token type="LiteralStringOther"/> | |
598 <push/> | |
599 </rule> | |
600 <rule pattern="\)"> | |
601 <token type="LiteralStringOther"/> | |
602 <pop depth="1"/> | |
603 </rule> | |
604 <rule pattern="[\\#()]"> | |
605 <token type="LiteralStringOther"/> | |
606 </rule> | |
607 <rule pattern="[^\\#()]+"> | |
608 <token type="LiteralStringOther"/> | |
609 </rule> | |
610 </state> | |
611 <state name="strings"> | |
612 <rule pattern="\:@{0,2}[a-zA-Z_]\w*[!?]?"> | |
613 <token type="LiteralStringSymbol"/> | |
614 </rule> | |
615 <rule pattern="\:@{0,2}(\[\]\?|<=>|===|\[\]=|>>|&&|\*\*|\[\]|\|\||>=|=~|!~|<<|<=|!=|==|<|/|=|-|\+|>|\*|&|%|\^|!|\||~)"> | |
616 <token type="LiteralStringSymbol"/> | |
617 </rule> | |
618 <rule pattern=":'(\\\\|\\'|[^'])*'"> | |
619 <token type="LiteralStringSymbol"/> | |
620 </rule> | |
621 <rule pattern="'(\\\\|\\'|[^']|\\[^'\\]+)'"> | |
622 <token type="LiteralStringChar"/> | |
623 </rule> | |
624 <rule pattern=":""> | |
625 <token type="LiteralStringSymbol"/> | |
626 <push state="simple-sym"/> | |
627 </rule> | |
628 <rule pattern="([a-zA-Z_]\w*)(:)(?!:)"> | |
629 <bygroups> | |
630 <token type="LiteralStringSymbol"/> | |
631 <token type="Punctuation"/> | |
632 </bygroups> | |
633 </rule> | |
634 <rule pattern="""> | |
635 <token type="LiteralStringDouble"/> | |
636 <push state="simple-string"/> | |
637 </rule> | |
638 <rule pattern="(?<!\.)`"> | |
639 <token type="LiteralStringBacktick"/> | |
640 <push state="simple-backtick"/> | |
641 </rule> | |
642 <rule pattern="%\{"> | |
643 <token type="LiteralStringOther"/> | |
644 <push state="cb-intp-string"/> | |
645 </rule> | |
646 <rule pattern="%[wi]\{"> | |
647 <token type="LiteralStringOther"/> | |
648 <push state="cb-string"/> | |
649 </rule> | |
650 <rule pattern="%r\{"> | |
651 <token type="LiteralStringRegex"/> | |
652 <push state="cb-regex"/> | |
653 </rule> | |
654 <rule pattern="%\["> | |
655 <token type="LiteralStringOther"/> | |
656 <push state="sb-intp-string"/> | |
657 </rule> | |
658 <rule pattern="%[wi]\["> | |
659 <token type="LiteralStringOther"/> | |
660 <push state="sb-string"/> | |
661 </rule> | |
662 <rule pattern="%r\["> | |
663 <token type="LiteralStringRegex"/> | |
664 <push state="sb-regex"/> | |
665 </rule> | |
666 <rule pattern="%\("> | |
667 <token type="LiteralStringOther"/> | |
668 <push state="pa-intp-string"/> | |
669 </rule> | |
670 <rule pattern="%[wi]\("> | |
671 <token type="LiteralStringOther"/> | |
672 <push state="pa-string"/> | |
673 </rule> | |
674 <rule pattern="%r\("> | |
675 <token type="LiteralStringRegex"/> | |
676 <push state="pa-regex"/> | |
677 </rule> | |
678 <rule pattern="%<"> | |
679 <token type="LiteralStringOther"/> | |
680 <push state="ab-intp-string"/> | |
681 </rule> | |
682 <rule pattern="%[wi]<"> | |
683 <token type="LiteralStringOther"/> | |
684 <push state="ab-string"/> | |
685 </rule> | |
686 <rule pattern="%r<"> | |
687 <token type="LiteralStringRegex"/> | |
688 <push state="ab-regex"/> | |
689 </rule> | |
690 <rule pattern="(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[imsx]*)"> | |
691 <token type="LiteralString"/> | |
692 </rule> | |
693 <rule pattern="(%[wi]([\W_]))((?:\\\2|(?!\2).)*)(\2)"> | |
694 <token type="LiteralString"/> | |
695 </rule> | |
696 <rule pattern="(?<=[-+/*%=<>&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)"> | |
697 <bygroups> | |
698 <token type="Text"/> | |
699 <token type="LiteralStringOther"/> | |
700 <token type="None"/> | |
701 </bygroups> | |
702 </rule> | |
703 <rule pattern="^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)"> | |
704 <bygroups> | |
705 <token type="Text"/> | |
706 <token type="LiteralStringOther"/> | |
707 <token type="None"/> | |
708 </bygroups> | |
709 </rule> | |
710 <rule pattern="(%([\[{(<]))((?:\\\2|(?!\2).)*)(\2)"> | |
711 <token type="LiteralString"/> | |
712 </rule> | |
713 </state> | |
714 <state name="sb-string"> | |
715 <rule pattern="\\[\\\[\]]"> | |
716 <token type="LiteralStringOther"/> | |
717 </rule> | |
718 <rule pattern="\["> | |
719 <token type="LiteralStringOther"/> | |
720 <push/> | |
721 </rule> | |
722 <rule pattern="\]"> | |
723 <token type="LiteralStringOther"/> | |
724 <pop depth="1"/> | |
725 </rule> | |
726 <rule pattern="[\\#\[\]]"> | |
727 <token type="LiteralStringOther"/> | |
728 </rule> | |
729 <rule pattern="[^\\#\[\]]+"> | |
730 <token type="LiteralStringOther"/> | |
731 </rule> | |
732 </state> | |
733 <state name="funcname"> | |
734 <rule pattern="(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)"> | |
735 <bygroups> | |
736 <token type="NameClass"/> | |
737 <token type="Operator"/> | |
738 <token type="NameFunction"/> | |
739 </bygroups> | |
740 <pop depth="1"/> | |
741 </rule> | |
742 <rule> | |
743 <pop depth="1"/> | |
744 </rule> | |
745 </state> | |
746 <state name="simple-sym"> | |
747 <rule> | |
748 <include state="string-escaped"/> | |
749 </rule> | |
750 <rule pattern="[^\\"#]+"> | |
751 <token type="LiteralStringSymbol"/> | |
752 </rule> | |
753 <rule pattern="[\\#]"> | |
754 <token type="LiteralStringSymbol"/> | |
755 </rule> | |
756 <rule pattern="""> | |
757 <token type="LiteralStringSymbol"/> | |
758 <pop depth="1"/> | |
759 </rule> | |
760 </state> | |
761 </rules> | |
762 </lexer> |