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