1<lexer>
2 <config>
3 <name>Elixir</name>
4 <alias>elixir</alias>
5 <alias>ex</alias>
6 <alias>exs</alias>
7 <filename>*.ex</filename>
8 <filename>*.eex</filename>
9 <filename>*.exs</filename>
10 <mime_type>text/x-elixir</mime_type>
11 </config>
12 <rules>
13 <state name="cb-intp">
14 <rule pattern="[^#\}\\]+">
15 <token type="LiteralStringOther"/>
16 </rule>
17 <rule>
18 <include state="escapes"/>
19 </rule>
20 <rule pattern="\\.">
21 <token type="LiteralStringOther"/>
22 </rule>
23 <rule pattern="\}[a-zA-Z]*">
24 <token type="LiteralStringOther"/>
25 <pop depth="1"/>
26 </rule>
27 <rule>
28 <include state="interpol"/>
29 </rule>
30 </state>
31 <state name="triquot-end">
32 <rule pattern="[a-zA-Z]+">
33 <token type="LiteralStringOther"/>
34 <pop depth="1"/>
35 </rule>
36 <rule>
37 <pop depth="1"/>
38 </rule>
39 </state>
40 <state name="apos-no-intp">
41 <rule pattern="[^'\\]+">
42 <token type="LiteralStringOther"/>
43 </rule>
44 <rule pattern="\\.">
45 <token type="LiteralStringOther"/>
46 </rule>
47 <rule pattern="'[a-zA-Z]*">
48 <token type="LiteralStringOther"/>
49 <pop depth="1"/>
50 </rule>
51 </state>
52 <state name="slas-no-intp">
53 <rule pattern="[^/\\]+">
54 <token type="LiteralStringOther"/>
55 </rule>
56 <rule pattern="\\.">
57 <token type="LiteralStringOther"/>
58 </rule>
59 <rule pattern="/[a-zA-Z]*">
60 <token type="LiteralStringOther"/>
61 <pop depth="1"/>
62 </rule>
63 </state>
64 <state name="pipe-no-intp">
65 <rule pattern="[^\|\\]+">
66 <token type="LiteralStringOther"/>
67 </rule>
68 <rule pattern="\\.">
69 <token type="LiteralStringOther"/>
70 </rule>
71 <rule pattern="\|[a-zA-Z]*">
72 <token type="LiteralStringOther"/>
73 <pop depth="1"/>
74 </rule>
75 </state>
76 <state name="apos-intp">
77 <rule pattern="[^#'\\]+">
78 <token type="LiteralStringOther"/>
79 </rule>
80 <rule>
81 <include state="escapes"/>
82 </rule>
83 <rule pattern="\\.">
84 <token type="LiteralStringOther"/>
85 </rule>
86 <rule pattern="'[a-zA-Z]*">
87 <token type="LiteralStringOther"/>
88 <pop depth="1"/>
89 </rule>
90 <rule>
91 <include state="interpol"/>
92 </rule>
93 </state>
94 <state name="cb-no-intp">
95 <rule pattern="[^\}\\]+">
96 <token type="LiteralStringOther"/>
97 </rule>
98 <rule pattern="\\.">
99 <token type="LiteralStringOther"/>
100 </rule>
101 <rule pattern="\}[a-zA-Z]*">
102 <token type="LiteralStringOther"/>
103 <pop depth="1"/>
104 </rule>
105 </state>
106 <state name="heredoc_double">
107 <rule pattern="^\s*"""">
108 <token type="LiteralStringHeredoc"/>
109 <pop depth="1"/>
110 </rule>
111 <rule>
112 <include state="heredoc_interpol"/>
113 </rule>
114 </state>
115 <state name="triapos-end">
116 <rule pattern="[a-zA-Z]+">
117 <token type="LiteralStringOther"/>
118 <pop depth="1"/>
119 </rule>
120 <rule>
121 <pop depth="1"/>
122 </rule>
123 </state>
124 <state name="interpol_string">
125 <rule pattern="\}">
126 <token type="LiteralStringInterpol"/>
127 <pop depth="1"/>
128 </rule>
129 <rule>
130 <include state="root"/>
131 </rule>
132 </state>
133 <state name="triquot-intp">
134 <rule pattern="^\s*"""">
135 <token type="LiteralStringHeredoc"/>
136 <pop depth="1"/>
137 </rule>
138 <rule>
139 <include state="heredoc_interpol"/>
140 </rule>
141 </state>
142 <state name="interpol">
143 <rule pattern="#\{">
144 <token type="LiteralStringInterpol"/>
145 <push state="interpol_string"/>
146 </rule>
147 </state>
148 <state name="pa-no-intp">
149 <rule pattern="[^\)\\]+">
150 <token type="LiteralStringOther"/>
151 </rule>
152 <rule pattern="\\.">
153 <token type="LiteralStringOther"/>
154 </rule>
155 <rule pattern="\)[a-zA-Z]*">
156 <token type="LiteralStringOther"/>
157 <pop depth="1"/>
158 </rule>
159 </state>
160 <state name="map_key">
161 <rule>
162 <include state="root"/>
163 </rule>
164 <rule pattern=":">
165 <token type="Punctuation"/>
166 <push state="map_val"/>
167 </rule>
168 <rule pattern="=>">
169 <token type="Punctuation"/>
170 <push state="map_val"/>
171 </rule>
172 <rule pattern="\}">
173 <token type="Punctuation"/>
174 <pop depth="1"/>
175 </rule>
176 </state>
177 <state name="pa-intp">
178 <rule pattern="[^#\)\\]+">
179 <token type="LiteralStringOther"/>
180 </rule>
181 <rule>
182 <include state="escapes"/>
183 </rule>
184 <rule pattern="\\.">
185 <token type="LiteralStringOther"/>
186 </rule>
187 <rule pattern="\)[a-zA-Z]*">
188 <token type="LiteralStringOther"/>
189 <pop depth="1"/>
190 </rule>
191 <rule>
192 <include state="interpol"/>
193 </rule>
194 </state>
195 <state name="tuple">
196 <rule>
197 <include state="root"/>
198 </rule>
199 <rule pattern="\}">
200 <token type="Punctuation"/>
201 <pop depth="1"/>
202 </rule>
203 </state>
204 <state name="root">
205 <rule pattern="\s+">
206 <token type="Text"/>
207 </rule>
208 <rule pattern="#.*$">
209 <token type="CommentSingle"/>
210 </rule>
211 <rule pattern="(\?)(\\x\{)([\da-fA-F]+)(\})">
212 <bygroups>
213 <token type="LiteralStringChar"/>
214 <token type="LiteralStringEscape"/>
215 <token type="LiteralNumberHex"/>
216 <token type="LiteralStringEscape"/>
217 </bygroups>
218 </rule>
219 <rule pattern="(\?)(\\x[\da-fA-F]{1,2})">
220 <bygroups>
221 <token type="LiteralStringChar"/>
222 <token type="LiteralStringEscape"/>
223 </bygroups>
224 </rule>
225 <rule pattern="(\?)(\\[abdefnrstv])">
226 <bygroups>
227 <token type="LiteralStringChar"/>
228 <token type="LiteralStringEscape"/>
229 </bygroups>
230 </rule>
231 <rule pattern="\?\\?.">
232 <token type="LiteralStringChar"/>
233 </rule>
234 <rule pattern=":::">
235 <token type="LiteralStringSymbol"/>
236 </rule>
237 <rule pattern="::">
238 <token type="Operator"/>
239 </rule>
240 <rule pattern=":(?:\.\.\.|<<>>|%\{\}|%|\{\})">
241 <token type="LiteralStringSymbol"/>
242 </rule>
243 <rule pattern=":(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\<\<\<|\>\>\>|\|\|\||\&\&\&|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\>\>|\<\~\>|\|\~\>|\<\|\>|\=\=|\!\=|\<\=|\>\=|\&\&|\|\||\<\>|\+\+|\-\-|\|\>|\=\~|\-\>|\<\-|\||\.|\=|\~\>|\<\~|\<|\>|\+|\-|\*|\/|\!|\^|\&))">
244 <token type="LiteralStringSymbol"/>
245 </rule>
246 <rule pattern=":"">
247 <token type="LiteralStringSymbol"/>
248 <push state="string_double_atom"/>
249 </rule>
250 <rule pattern=":'">
251 <token type="LiteralStringSymbol"/>
252 <push state="string_single_atom"/>
253 </rule>
254 <rule pattern="((?:\.\.\.|<<>>|%\{\}|%|\{\})|(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\<\<\<|\>\>\>|\|\|\||\&\&\&|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\>\>|\<\~\>|\|\~\>|\<\|\>|\=\=|\!\=|\<\=|\>\=|\&\&|\|\||\<\>|\+\+|\-\-|\|\>|\=\~|\-\>|\<\-|\||\.|\=|\~\>|\<\~|\<|\>|\+|\-|\*|\/|\!|\^|\&)))(:)(?=\s|\n)">
255 <bygroups>
256 <token type="LiteralStringSymbol"/>
257 <token type="Punctuation"/>
258 </bygroups>
259 </rule>
260 <rule pattern="(fn|do|end|after|else|rescue|catch)\b">
261 <token type="Keyword"/>
262 </rule>
263 <rule pattern="(not|and|or|when|in)\b">
264 <token type="OperatorWord"/>
265 </rule>
266 <rule pattern="(case|cond|for|if|unless|try|receive|raise|quote|unquote|unquote_splicing|throw|super|while)\b">
267 <token type="Keyword"/>
268 </rule>
269 <rule pattern="(def|defp|defmodule|defprotocol|defmacro|defmacrop|defdelegate|defexception|defstruct|defimpl|defcallback)\b">
270 <token type="KeywordDeclaration"/>
271 </rule>
272 <rule pattern="(import|require|use|alias)\b">
273 <token type="KeywordNamespace"/>
274 </rule>
275 <rule pattern="(nil|true|false)\b">
276 <token type="NameConstant"/>
277 </rule>
278 <rule pattern="(_|__MODULE__|__DIR__|__ENV__|__CALLER__)\b">
279 <token type="NamePseudo"/>
280 </rule>
281 <rule pattern="@(?:\.\.\.|[a-z_]\w*[!?]?)">
282 <token type="NameAttribute"/>
283 </rule>
284 <rule pattern="(?:\.\.\.|[a-z_]\w*[!?]?)">
285 <token type="Name"/>
286 </rule>
287 <rule pattern="(%?)([A-Z]\w*(?:\.[A-Z]\w*)*)">
288 <bygroups>
289 <token type="Punctuation"/>
290 <token type="NameClass"/>
291 </bygroups>
292 </rule>
293 <rule pattern="\<\<\<|\>\>\>|\|\|\||\&\&\&|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\>\>|\<\~\>|\|\~\>|\<\|\>">
294 <token type="Operator"/>
295 </rule>
296 <rule pattern="\=\=|\!\=|\<\=|\>\=|\&\&|\|\||\<\>|\+\+|\-\-|\|\>|\=\~|\-\>|\<\-|\||\.|\=|\~\>|\<\~">
297 <token type="Operator"/>
298 </rule>
299 <rule pattern="\\\\|\<\<|\>\>|\=\>|\(|\)|\:|\;|\,|\[|\]">
300 <token type="Punctuation"/>
301 </rule>
302 <rule pattern="&\d">
303 <token type="NameEntity"/>
304 </rule>
305 <rule pattern="\<|\>|\+|\-|\*|\/|\!|\^|\&">
306 <token type="Operator"/>
307 </rule>
308 <rule pattern="0b[01](_?[01])*">
309 <token type="LiteralNumberBin"/>
310 </rule>
311 <rule pattern="0o[0-7](_?[0-7])*">
312 <token type="LiteralNumberOct"/>
313 </rule>
314 <rule pattern="0x[\da-fA-F](_?[\dA-Fa-f])*">
315 <token type="LiteralNumberHex"/>
316 </rule>
317 <rule pattern="\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?">
318 <token type="LiteralNumberFloat"/>
319 </rule>
320 <rule pattern="\d(_?\d)*">
321 <token type="LiteralNumberInteger"/>
322 </rule>
323 <rule pattern=""""\s*">
324 <token type="LiteralStringHeredoc"/>
325 <push state="heredoc_double"/>
326 </rule>
327 <rule pattern="'''\s*$">
328 <token type="LiteralStringHeredoc"/>
329 <push state="heredoc_single"/>
330 </rule>
331 <rule pattern=""">
332 <token type="LiteralStringDouble"/>
333 <push state="string_double"/>
334 </rule>
335 <rule pattern="'">
336 <token type="LiteralStringSingle"/>
337 <push state="string_single"/>
338 </rule>
339 <rule>
340 <include state="sigils"/>
341 </rule>
342 <rule pattern="%\{">
343 <token type="Punctuation"/>
344 <push state="map_key"/>
345 </rule>
346 <rule pattern="\{">
347 <token type="Punctuation"/>
348 <push state="tuple"/>
349 </rule>
350 </state>
351 <state name="sigils">
352 <rule pattern="(~[a-z])(""")">
353 <bygroups>
354 <token type="LiteralStringOther"/>
355 <token type="LiteralStringHeredoc"/>
356 </bygroups>
357 <push state="triquot-end" state="triquot-intp"/>
358 </rule>
359 <rule pattern="(~[A-Z])(""")">
360 <bygroups>
361 <token type="LiteralStringOther"/>
362 <token type="LiteralStringHeredoc"/>
363 </bygroups>
364 <push state="triquot-end" state="triquot-no-intp"/>
365 </rule>
366 <rule pattern="(~[a-z])(''')">
367 <bygroups>
368 <token type="LiteralStringOther"/>
369 <token type="LiteralStringHeredoc"/>
370 </bygroups>
371 <push state="triapos-end" state="triapos-intp"/>
372 </rule>
373 <rule pattern="(~[A-Z])(''')">
374 <bygroups>
375 <token type="LiteralStringOther"/>
376 <token type="LiteralStringHeredoc"/>
377 </bygroups>
378 <push state="triapos-end" state="triapos-no-intp"/>
379 </rule>
380 <rule pattern="~[a-z]\{">
381 <token type="LiteralStringOther"/>
382 <push state="cb-intp"/>
383 </rule>
384 <rule pattern="~[A-Z]\{">
385 <token type="LiteralStringOther"/>
386 <push state="cb-no-intp"/>
387 </rule>
388 <rule pattern="~[a-z]\[">
389 <token type="LiteralStringOther"/>
390 <push state="sb-intp"/>
391 </rule>
392 <rule pattern="~[A-Z]\[">
393 <token type="LiteralStringOther"/>
394 <push state="sb-no-intp"/>
395 </rule>
396 <rule pattern="~[a-z]\(">
397 <token type="LiteralStringOther"/>
398 <push state="pa-intp"/>
399 </rule>
400 <rule pattern="~[A-Z]\(">
401 <token type="LiteralStringOther"/>
402 <push state="pa-no-intp"/>
403 </rule>
404 <rule pattern="~[a-z]<">
405 <token type="LiteralStringOther"/>
406 <push state="ab-intp"/>
407 </rule>
408 <rule pattern="~[A-Z]<">
409 <token type="LiteralStringOther"/>
410 <push state="ab-no-intp"/>
411 </rule>
412 <rule pattern="~[a-z]/">
413 <token type="LiteralStringOther"/>
414 <push state="slas-intp"/>
415 </rule>
416 <rule pattern="~[A-Z]/">
417 <token type="LiteralStringOther"/>
418 <push state="slas-no-intp"/>
419 </rule>
420 <rule pattern="~[a-z]\|">
421 <token type="LiteralStringOther"/>
422 <push state="pipe-intp"/>
423 </rule>
424 <rule pattern="~[A-Z]\|">
425 <token type="LiteralStringOther"/>
426 <push state="pipe-no-intp"/>
427 </rule>
428 <rule pattern="~[a-z]"">
429 <token type="LiteralStringOther"/>
430 <push state="quot-intp"/>
431 </rule>
432 <rule pattern="~[A-Z]"">
433 <token type="LiteralStringOther"/>
434 <push state="quot-no-intp"/>
435 </rule>
436 <rule pattern="~[a-z]'">
437 <token type="LiteralStringOther"/>
438 <push state="apos-intp"/>
439 </rule>
440 <rule pattern="~[A-Z]'">
441 <token type="LiteralStringOther"/>
442 <push state="apos-no-intp"/>
443 </rule>
444 </state>
445 <state name="triapos-intp">
446 <rule pattern="^\s*'''">
447 <token type="LiteralStringHeredoc"/>
448 <pop depth="1"/>
449 </rule>
450 <rule>
451 <include state="heredoc_interpol"/>
452 </rule>
453 </state>
454 <state name="string_single_atom">
455 <rule pattern="[^#'\\]+">
456 <token type="LiteralStringSymbol"/>
457 </rule>
458 <rule>
459 <include state="escapes"/>
460 </rule>
461 <rule pattern="\\.">
462 <token type="LiteralStringSymbol"/>
463 </rule>
464 <rule pattern="(')">
465 <bygroups>
466 <token type="LiteralStringSymbol"/>
467 </bygroups>
468 <pop depth="1"/>
469 </rule>
470 <rule>
471 <include state="interpol"/>
472 </rule>
473 </state>
474 <state name="quot-intp">
475 <rule pattern="[^#"\\]+">
476 <token type="LiteralStringOther"/>
477 </rule>
478 <rule>
479 <include state="escapes"/>
480 </rule>
481 <rule pattern="\\.">
482 <token type="LiteralStringOther"/>
483 </rule>
484 <rule pattern=""[a-zA-Z]*">
485 <token type="LiteralStringOther"/>
486 <pop depth="1"/>
487 </rule>
488 <rule>
489 <include state="interpol"/>
490 </rule>
491 </state>
492 <state name="sb-no-intp">
493 <rule pattern="[^\]\\]+">
494 <token type="LiteralStringOther"/>
495 </rule>
496 <rule pattern="\\.">
497 <token type="LiteralStringOther"/>
498 </rule>
499 <rule pattern="\][a-zA-Z]*">
500 <token type="LiteralStringOther"/>
501 <pop depth="1"/>
502 </rule>
503 </state>
504 <state name="slas-intp">
505 <rule pattern="[^#/\\]+">
506 <token type="LiteralStringOther"/>
507 </rule>
508 <rule>
509 <include state="escapes"/>
510 </rule>
511 <rule pattern="\\.">
512 <token type="LiteralStringOther"/>
513 </rule>
514 <rule pattern="/[a-zA-Z]*">
515 <token type="LiteralStringOther"/>
516 <pop depth="1"/>
517 </rule>
518 <rule>
519 <include state="interpol"/>
520 </rule>
521 </state>
522 <state name="sb-intp">
523 <rule pattern="[^#\]\\]+">
524 <token type="LiteralStringOther"/>
525 </rule>
526 <rule>
527 <include state="escapes"/>
528 </rule>
529 <rule pattern="\\.">
530 <token type="LiteralStringOther"/>
531 </rule>
532 <rule pattern="\][a-zA-Z]*">
533 <token type="LiteralStringOther"/>
534 <pop depth="1"/>
535 </rule>
536 <rule>
537 <include state="interpol"/>
538 </rule>
539 </state>
540 <state name="heredoc_no_interpol">
541 <rule pattern="[^\\\n]+">
542 <token type="LiteralStringHeredoc"/>
543 </rule>
544 <rule pattern="\\.">
545 <token type="LiteralStringHeredoc"/>
546 </rule>
547 <rule pattern="\n+">
548 <token type="LiteralStringHeredoc"/>
549 </rule>
550 </state>
551 <state name="pipe-intp">
552 <rule pattern="[^#\|\\]+">
553 <token type="LiteralStringOther"/>
554 </rule>
555 <rule>
556 <include state="escapes"/>
557 </rule>
558 <rule pattern="\\.">
559 <token type="LiteralStringOther"/>
560 </rule>
561 <rule pattern="\|[a-zA-Z]*">
562 <token type="LiteralStringOther"/>
563 <pop depth="1"/>
564 </rule>
565 <rule>
566 <include state="interpol"/>
567 </rule>
568 </state>
569 <state name="map_val">
570 <rule>
571 <include state="root"/>
572 </rule>
573 <rule pattern=",">
574 <token type="Punctuation"/>
575 <pop depth="1"/>
576 </rule>
577 <rule pattern="(?=\})">
578 <token type="Punctuation"/>
579 <pop depth="1"/>
580 </rule>
581 </state>
582 <state name="heredoc_single">
583 <rule pattern="^\s*'''">
584 <token type="LiteralStringHeredoc"/>
585 <pop depth="1"/>
586 </rule>
587 <rule>
588 <include state="heredoc_interpol"/>
589 </rule>
590 </state>
591 <state name="heredoc_interpol">
592 <rule pattern="[^#\\\n]+">
593 <token type="LiteralStringHeredoc"/>
594 </rule>
595 <rule>
596 <include state="escapes"/>
597 </rule>
598 <rule pattern="\\.">
599 <token type="LiteralStringHeredoc"/>
600 </rule>
601 <rule pattern="\n+">
602 <token type="LiteralStringHeredoc"/>
603 </rule>
604 <rule>
605 <include state="interpol"/>
606 </rule>
607 </state>
608 <state name="string_single">
609 <rule pattern="[^#'\\]+">
610 <token type="LiteralStringSingle"/>
611 </rule>
612 <rule>
613 <include state="escapes"/>
614 </rule>
615 <rule pattern="\\.">
616 <token type="LiteralStringSingle"/>
617 </rule>
618 <rule pattern="(')">
619 <bygroups>
620 <token type="LiteralStringSingle"/>
621 </bygroups>
622 <pop depth="1"/>
623 </rule>
624 <rule>
625 <include state="interpol"/>
626 </rule>
627 </state>
628 <state name="string_double_atom">
629 <rule pattern="[^#"\\]+">
630 <token type="LiteralStringSymbol"/>
631 </rule>
632 <rule>
633 <include state="escapes"/>
634 </rule>
635 <rule pattern="\\.">
636 <token type="LiteralStringSymbol"/>
637 </rule>
638 <rule pattern="(")">
639 <bygroups>
640 <token type="LiteralStringSymbol"/>
641 </bygroups>
642 <pop depth="1"/>
643 </rule>
644 <rule>
645 <include state="interpol"/>
646 </rule>
647 </state>
648 <state name="ab-no-intp">
649 <rule pattern="[^>\\]+">
650 <token type="LiteralStringOther"/>
651 </rule>
652 <rule pattern="\\.">
653 <token type="LiteralStringOther"/>
654 </rule>
655 <rule pattern=">[a-zA-Z]*">
656 <token type="LiteralStringOther"/>
657 <pop depth="1"/>
658 </rule>
659 </state>
660 <state name="ab-intp">
661 <rule pattern="[^#>\\]+">
662 <token type="LiteralStringOther"/>
663 </rule>
664 <rule>
665 <include state="escapes"/>
666 </rule>
667 <rule pattern="\\.">
668 <token type="LiteralStringOther"/>
669 </rule>
670 <rule pattern=">[a-zA-Z]*">
671 <token type="LiteralStringOther"/>
672 <pop depth="1"/>
673 </rule>
674 <rule>
675 <include state="interpol"/>
676 </rule>
677 </state>
678 <state name="quot-no-intp">
679 <rule pattern="[^"\\]+">
680 <token type="LiteralStringOther"/>
681 </rule>
682 <rule pattern="\\.">
683 <token type="LiteralStringOther"/>
684 </rule>
685 <rule pattern=""[a-zA-Z]*">
686 <token type="LiteralStringOther"/>
687 <pop depth="1"/>
688 </rule>
689 </state>
690 <state name="triapos-no-intp">
691 <rule pattern="^\s*'''">
692 <token type="LiteralStringHeredoc"/>
693 <pop depth="1"/>
694 </rule>
695 <rule>
696 <include state="heredoc_no_interpol"/>
697 </rule>
698 </state>
699 <state name="string_double">
700 <rule pattern="[^#"\\]+">
701 <token type="LiteralStringDouble"/>
702 </rule>
703 <rule>
704 <include state="escapes"/>
705 </rule>
706 <rule pattern="\\.">
707 <token type="LiteralStringDouble"/>
708 </rule>
709 <rule pattern="(")">
710 <bygroups>
711 <token type="LiteralStringDouble"/>
712 </bygroups>
713 <pop depth="1"/>
714 </rule>
715 <rule>
716 <include state="interpol"/>
717 </rule>
718 </state>
719 <state name="escapes">
720 <rule pattern="(\\x\{)([\da-fA-F]+)(\})">
721 <bygroups>
722 <token type="LiteralStringEscape"/>
723 <token type="LiteralNumberHex"/>
724 <token type="LiteralStringEscape"/>
725 </bygroups>
726 </rule>
727 <rule pattern="(\\x[\da-fA-F]{1,2})">
728 <token type="LiteralStringEscape"/>
729 </rule>
730 <rule pattern="(\\[abdefnrstv])">
731 <token type="LiteralStringEscape"/>
732 </rule>
733 </state>
734 <state name="triquot-no-intp">
735 <rule pattern="^\s*"""">
736 <token type="LiteralStringHeredoc"/>
737 <pop depth="1"/>
738 </rule>
739 <rule>
740 <include state="heredoc_no_interpol"/>
741 </rule>
742 </state>
743 </rules>
744</lexer>