...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     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>

View as plain text