elixir.xml

  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="[^&#39;\\]+">
 42        <token type="LiteralStringOther"/>
 43      </rule>
 44      <rule pattern="\\.">
 45        <token type="LiteralStringOther"/>
 46      </rule>
 47      <rule pattern="&#39;[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="[^#&#39;\\]+">
 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="&#39;[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*&#34;&#34;&#34;">
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*&#34;&#34;&#34;">
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="=&gt;">
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=":(?:\.\.\.|&lt;&lt;&gt;&gt;|%\{\}|%|\{\})">
241        <token type="LiteralStringSymbol"/>
242      </rule>
243      <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;))">
244        <token type="LiteralStringSymbol"/>
245      </rule>
246      <rule pattern=":&#34;">
247        <token type="LiteralStringSymbol"/>
248        <push state="string_double_atom"/>
249      </rule>
250      <rule pattern=":&#39;">
251        <token type="LiteralStringSymbol"/>
252        <push state="string_single_atom"/>
253      </rule>
254      <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)">
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="\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;">
294        <token type="Operator"/>
295      </rule>
296      <rule pattern="\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~">
297        <token type="Operator"/>
298      </rule>
299      <rule pattern="\\\\|\&lt;\&lt;|\&gt;\&gt;|\=\&gt;|\(|\)|\:|\;|\,|\[|\]">
300        <token type="Punctuation"/>
301      </rule>
302      <rule pattern="&amp;\d">
303        <token type="NameEntity"/>
304      </rule>
305      <rule pattern="\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;">
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="&#34;&#34;&#34;\s*">
324        <token type="LiteralStringHeredoc"/>
325        <push state="heredoc_double"/>
326      </rule>
327      <rule pattern="&#39;&#39;&#39;\s*$">
328        <token type="LiteralStringHeredoc"/>
329        <push state="heredoc_single"/>
330      </rule>
331      <rule pattern="&#34;">
332        <token type="LiteralStringDouble"/>
333        <push state="string_double"/>
334      </rule>
335      <rule pattern="&#39;">
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])(&#34;&#34;&#34;)">
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])(&#34;&#34;&#34;)">
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])(&#39;&#39;&#39;)">
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])(&#39;&#39;&#39;)">
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]&lt;">
405        <token type="LiteralStringOther"/>
406        <push state="ab-intp"/>
407      </rule>
408      <rule pattern="~[A-Z]&lt;">
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]&#34;">
429        <token type="LiteralStringOther"/>
430        <push state="quot-intp"/>
431      </rule>
432      <rule pattern="~[A-Z]&#34;">
433        <token type="LiteralStringOther"/>
434        <push state="quot-no-intp"/>
435      </rule>
436      <rule pattern="~[a-z]&#39;">
437        <token type="LiteralStringOther"/>
438        <push state="apos-intp"/>
439      </rule>
440      <rule pattern="~[A-Z]&#39;">
441        <token type="LiteralStringOther"/>
442        <push state="apos-no-intp"/>
443      </rule>
444    </state>
445    <state name="triapos-intp">
446      <rule pattern="^\s*&#39;&#39;&#39;">
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="[^#&#39;\\]+">
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="(&#39;)">
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="[^#&#34;\\]+">
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="&#34;[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*&#39;&#39;&#39;">
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="[^#&#39;\\]+">
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="(&#39;)">
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="[^#&#34;\\]+">
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="(&#34;)">
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="[^&gt;\\]+">
650        <token type="LiteralStringOther"/>
651      </rule>
652      <rule pattern="\\.">
653        <token type="LiteralStringOther"/>
654      </rule>
655      <rule pattern="&gt;[a-zA-Z]*">
656        <token type="LiteralStringOther"/>
657        <pop depth="1"/>
658      </rule>
659    </state>
660    <state name="ab-intp">
661      <rule pattern="[^#&gt;\\]+">
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="&gt;[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="[^&#34;\\]+">
680        <token type="LiteralStringOther"/>
681      </rule>
682      <rule pattern="\\.">
683        <token type="LiteralStringOther"/>
684      </rule>
685      <rule pattern="&#34;[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*&#39;&#39;&#39;">
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="[^#&#34;\\]+">
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="(&#34;)">
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*&#34;&#34;&#34;">
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>