...

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

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

     1<lexer>
     2  <config>
     3    <name>Python</name>
     4    <alias>python</alias>
     5    <alias>py</alias>
     6    <alias>sage</alias>
     7    <alias>python3</alias>
     8    <alias>py3</alias>
     9    <filename>*.py</filename>
    10    <filename>*.pyi</filename>
    11    <filename>*.pyw</filename>
    12    <filename>*.jy</filename>
    13    <filename>*.sage</filename>
    14    <filename>*.sc</filename>
    15    <filename>SConstruct</filename>
    16    <filename>SConscript</filename>
    17    <filename>*.bzl</filename>
    18    <filename>BUCK</filename>
    19    <filename>BUILD</filename>
    20    <filename>BUILD.bazel</filename>
    21    <filename>WORKSPACE</filename>
    22    <filename>*.tac</filename>
    23    <mime_type>text/x-python</mime_type>
    24    <mime_type>application/x-python</mime_type>
    25    <mime_type>text/x-python3</mime_type>
    26    <mime_type>application/x-python3</mime_type>
    27  </config>
    28  <rules>
    29    <state name="numbers">
    30      <rule pattern="(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?">
    31        <token type="LiteralNumberFloat"/>
    32      </rule>
    33      <rule pattern="\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?">
    34        <token type="LiteralNumberFloat"/>
    35      </rule>
    36      <rule pattern="0[oO](?:_?[0-7])+">
    37        <token type="LiteralNumberOct"/>
    38      </rule>
    39      <rule pattern="0[bB](?:_?[01])+">
    40        <token type="LiteralNumberBin"/>
    41      </rule>
    42      <rule pattern="0[xX](?:_?[a-fA-F0-9])+">
    43        <token type="LiteralNumberHex"/>
    44      </rule>
    45      <rule pattern="\d(?:_?\d)*">
    46        <token type="LiteralNumberInteger"/>
    47      </rule>
    48    </state>
    49    <state name="expr">
    50      <rule pattern="(?i)(rf|fr)(&#34;&#34;&#34;)">
    51        <bygroups>
    52          <token type="LiteralStringAffix"/>
    53          <token type="LiteralStringDouble"/>
    54        </bygroups>
    55        <combined state="rfstringescape" state="tdqf"/>
    56      </rule>
    57      <rule pattern="(?i)(rf|fr)(&#39;&#39;&#39;)">
    58        <bygroups>
    59          <token type="LiteralStringAffix"/>
    60          <token type="LiteralStringSingle"/>
    61        </bygroups>
    62        <combined state="rfstringescape" state="tsqf"/>
    63      </rule>
    64      <rule pattern="(?i)(rf|fr)(&#34;)">
    65        <bygroups>
    66          <token type="LiteralStringAffix"/>
    67          <token type="LiteralStringDouble"/>
    68        </bygroups>
    69        <combined state="rfstringescape" state="dqf"/>
    70      </rule>
    71      <rule pattern="(?i)(rf|fr)(&#39;)">
    72        <bygroups>
    73          <token type="LiteralStringAffix"/>
    74          <token type="LiteralStringSingle"/>
    75        </bygroups>
    76        <combined state="rfstringescape" state="sqf"/>
    77      </rule>
    78      <rule pattern="([fF])(&#34;&#34;&#34;)">
    79        <bygroups>
    80          <token type="LiteralStringAffix"/>
    81          <token type="LiteralStringDouble"/>
    82        </bygroups>
    83        <combined state="fstringescape" state="tdqf"/>
    84      </rule>
    85      <rule pattern="([fF])(&#39;&#39;&#39;)">
    86        <bygroups>
    87          <token type="LiteralStringAffix"/>
    88          <token type="LiteralStringSingle"/>
    89        </bygroups>
    90        <combined state="fstringescape" state="tsqf"/>
    91      </rule>
    92      <rule pattern="([fF])(&#34;)">
    93        <bygroups>
    94          <token type="LiteralStringAffix"/>
    95          <token type="LiteralStringDouble"/>
    96        </bygroups>
    97        <combined state="fstringescape" state="dqf"/>
    98      </rule>
    99      <rule pattern="([fF])(&#39;)">
   100        <bygroups>
   101          <token type="LiteralStringAffix"/>
   102          <token type="LiteralStringSingle"/>
   103        </bygroups>
   104        <combined state="fstringescape" state="sqf"/>
   105      </rule>
   106      <rule pattern="(?i)(rb|br|r)(&#34;&#34;&#34;)">
   107        <bygroups>
   108          <token type="LiteralStringAffix"/>
   109          <token type="LiteralStringDouble"/>
   110        </bygroups>
   111        <push state="tdqs"/>
   112      </rule>
   113      <rule pattern="(?i)(rb|br|r)(&#39;&#39;&#39;)">
   114        <bygroups>
   115          <token type="LiteralStringAffix"/>
   116          <token type="LiteralStringSingle"/>
   117        </bygroups>
   118        <push state="tsqs"/>
   119      </rule>
   120      <rule pattern="(?i)(rb|br|r)(&#34;)">
   121        <bygroups>
   122          <token type="LiteralStringAffix"/>
   123          <token type="LiteralStringDouble"/>
   124        </bygroups>
   125        <push state="dqs"/>
   126      </rule>
   127      <rule pattern="(?i)(rb|br|r)(&#39;)">
   128        <bygroups>
   129          <token type="LiteralStringAffix"/>
   130          <token type="LiteralStringSingle"/>
   131        </bygroups>
   132        <push state="sqs"/>
   133      </rule>
   134      <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
   135        <bygroups>
   136          <token type="LiteralStringAffix"/>
   137          <token type="LiteralStringDouble"/>
   138        </bygroups>
   139        <combined state="stringescape" state="tdqs"/>
   140      </rule>
   141      <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
   142        <bygroups>
   143          <token type="LiteralStringAffix"/>
   144          <token type="LiteralStringSingle"/>
   145        </bygroups>
   146        <combined state="stringescape" state="tsqs"/>
   147      </rule>
   148      <rule pattern="([uUbB]?)(&#34;)">
   149        <bygroups>
   150          <token type="LiteralStringAffix"/>
   151          <token type="LiteralStringDouble"/>
   152        </bygroups>
   153        <combined state="stringescape" state="dqs"/>
   154      </rule>
   155      <rule pattern="([uUbB]?)(&#39;)">
   156        <bygroups>
   157          <token type="LiteralStringAffix"/>
   158          <token type="LiteralStringSingle"/>
   159        </bygroups>
   160        <combined state="stringescape" state="sqs"/>
   161      </rule>
   162      <rule pattern="[^\S\n]+">
   163        <token type="Text"/>
   164      </rule>
   165      <rule>
   166        <include state="numbers"/>
   167      </rule>
   168      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|:=|[-~+/*%=&lt;&gt;&amp;^|.]">
   169        <token type="Operator"/>
   170      </rule>
   171      <rule pattern="[]{}:(),;[]">
   172        <token type="Punctuation"/>
   173      </rule>
   174      <rule pattern="(in|is|and|or|not)\b">
   175        <token type="OperatorWord"/>
   176      </rule>
   177      <rule>
   178        <include state="expr-keywords"/>
   179      </rule>
   180      <rule>
   181        <include state="builtins"/>
   182      </rule>
   183      <rule>
   184        <include state="magicfuncs"/>
   185      </rule>
   186      <rule>
   187        <include state="magicvars"/>
   188      </rule>
   189      <rule>
   190        <include state="name"/>
   191      </rule>
   192    </state>
   193    <state name="fstrings-double">
   194      <rule pattern="\}">
   195        <token type="LiteralStringInterpol"/>
   196      </rule>
   197      <rule pattern="\{">
   198        <token type="LiteralStringInterpol"/>
   199        <push state="expr-inside-fstring"/>
   200      </rule>
   201      <rule pattern="[^\\\&#39;&#34;{}\n]+">
   202        <token type="LiteralStringDouble"/>
   203      </rule>
   204      <rule pattern="[\&#39;&#34;\\]">
   205        <token type="LiteralStringDouble"/>
   206      </rule>
   207    </state>
   208    <state name="keywords">
   209      <rule pattern="(yield from|nonlocal|continue|finally|except|lambda|assert|global|return|raise|yield|while|break|await|async|pass|else|elif|with|try|for|del|as|if|match|case)\b">
   210        <token type="Keyword"/>
   211      </rule>
   212      <rule pattern="(False|True|None)\b">
   213        <token type="KeywordConstant"/>
   214      </rule>
   215    </state>
   216    <state name="dqs">
   217      <rule pattern="&#34;">
   218        <token type="LiteralStringDouble"/>
   219        <pop depth="1"/>
   220      </rule>
   221      <rule pattern="\\\\|\\&#34;|\\\n">
   222        <token type="LiteralStringEscape"/>
   223      </rule>
   224      <rule>
   225        <include state="strings-double"/>
   226      </rule>
   227    </state>
   228    <state name="fromimport">
   229      <rule pattern="(\s+)(import)\b">
   230        <bygroups>
   231          <token type="Text"/>
   232          <token type="KeywordNamespace"/>
   233        </bygroups>
   234        <pop depth="1"/>
   235      </rule>
   236      <rule pattern="\.">
   237        <token type="NameNamespace"/>
   238      </rule>
   239      <rule pattern="None\b">
   240        <token type="NameBuiltinPseudo"/>
   241        <pop depth="1"/>
   242      </rule>
   243      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
   244        <token type="NameNamespace"/>
   245      </rule>
   246      <rule>
   247        <pop depth="1"/>
   248      </rule>
   249    </state>
   250    <state name="builtins">
   251      <rule pattern="(?&lt;!\.)(staticmethod|classmethod|memoryview|__import__|issubclass|isinstance|frozenset|bytearray|enumerate|reversed|property|compile|complex|delattr|hasattr|setattr|globals|getattr|divmod|filter|locals|format|object|sorted|slice|print|bytes|range|input|tuple|round|super|float|eval|list|dict|repr|type|vars|hash|next|bool|open|iter|oct|pow|min|zip|max|map|bin|len|set|any|dir|all|abs|str|sum|chr|int|hex|ord|id)\b">
   252        <token type="NameBuiltin"/>
   253      </rule>
   254      <rule pattern="(?&lt;!\.)(self|Ellipsis|NotImplemented|cls)\b">
   255        <token type="NameBuiltinPseudo"/>
   256      </rule>
   257      <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|ConnectionAbortedError|ConnectionRefusedError|UnicodeTranslateError|ConnectionResetError|ModuleNotFoundError|NotImplementedError|FloatingPointError|StopAsyncIteration|UnicodeDecodeError|DeprecationWarning|UnicodeEncodeError|NotADirectoryError|ProcessLookupError|ZeroDivisionError|IsADirectoryError|FileNotFoundError|UnboundLocalError|KeyboardInterrupt|ChildProcessError|EnvironmentError|IndentationError|InterruptedError|BlockingIOError|ArithmeticError|ConnectionError|BrokenPipeError|FileExistsError|ResourceWarning|PermissionError|RuntimeWarning|ReferenceError|AttributeError|AssertionError|UnicodeWarning|RecursionError|StopIteration|BaseException|OverflowError|SyntaxWarning|FutureWarning|GeneratorExit|ImportWarning|UnicodeError|TimeoutError|WindowsError|RuntimeError|BytesWarning|SystemError|UserWarning|MemoryError|ImportError|LookupError|BufferError|SyntaxError|SystemExit|ValueError|IndexError|NameError|Exception|TypeError|TabError|EOFError|KeyError|VMSError|Warning|OSError|IOError)\b">
   258        <token type="NameException"/>
   259      </rule>
   260    </state>
   261    <state name="classname">
   262      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
   263        <token type="NameClass"/>
   264        <pop depth="1"/>
   265      </rule>
   266    </state>
   267    <state name="import">
   268      <rule pattern="(\s+)(as)(\s+)">
   269        <bygroups>
   270          <token type="Text"/>
   271          <token type="Keyword"/>
   272          <token type="Text"/>
   273        </bygroups>
   274      </rule>
   275      <rule pattern="\.">
   276        <token type="NameNamespace"/>
   277      </rule>
   278      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
   279        <token type="NameNamespace"/>
   280      </rule>
   281      <rule pattern="(\s*)(,)(\s*)">
   282        <bygroups>
   283          <token type="Text"/>
   284          <token type="Operator"/>
   285          <token type="Text"/>
   286        </bygroups>
   287      </rule>
   288      <rule>
   289        <pop depth="1"/>
   290      </rule>
   291    </state>
   292    <state name="tsqs">
   293      <rule pattern="&#39;&#39;&#39;">
   294        <token type="LiteralStringSingle"/>
   295        <pop depth="1"/>
   296      </rule>
   297      <rule>
   298        <include state="strings-single"/>
   299      </rule>
   300      <rule pattern="\n">
   301        <token type="LiteralStringSingle"/>
   302      </rule>
   303    </state>
   304    <state name="strings-double">
   305      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]">
   306        <token type="LiteralStringInterpol"/>
   307      </rule>
   308      <rule pattern="\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[&lt;&gt;=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}">
   309        <token type="LiteralStringInterpol"/>
   310      </rule>
   311      <rule pattern="[^\\\&#39;&#34;%{\n]+">
   312        <token type="LiteralStringDouble"/>
   313      </rule>
   314      <rule pattern="[\&#39;&#34;\\]">
   315        <token type="LiteralStringDouble"/>
   316      </rule>
   317      <rule pattern="%|(\{{1,2})">
   318        <token type="LiteralStringDouble"/>
   319      </rule>
   320    </state>
   321    <state name="tdqf">
   322      <rule pattern="&#34;&#34;&#34;">
   323        <token type="LiteralStringDouble"/>
   324        <pop depth="1"/>
   325      </rule>
   326      <rule>
   327        <include state="fstrings-double"/>
   328      </rule>
   329      <rule pattern="\n">
   330        <token type="LiteralStringDouble"/>
   331      </rule>
   332    </state>
   333    <state name="expr-inside-fstring-inner">
   334      <rule pattern="[{([]">
   335        <token type="Punctuation"/>
   336        <push state="expr-inside-fstring-inner"/>
   337      </rule>
   338      <rule pattern="[])}]">
   339        <token type="Punctuation"/>
   340        <pop depth="1"/>
   341      </rule>
   342      <rule pattern="\s+">
   343        <token type="Text"/>
   344      </rule>
   345      <rule>
   346        <include state="expr"/>
   347      </rule>
   348    </state>
   349    <state name="sqs">
   350      <rule pattern="&#39;">
   351        <token type="LiteralStringSingle"/>
   352        <pop depth="1"/>
   353      </rule>
   354      <rule pattern="\\\\|\\&#39;|\\\n">
   355        <token type="LiteralStringEscape"/>
   356      </rule>
   357      <rule>
   358        <include state="strings-single"/>
   359      </rule>
   360    </state>
   361    <state name="funcname">
   362      <rule>
   363        <include state="magicfuncs"/>
   364      </rule>
   365      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
   366        <token type="NameFunction"/>
   367        <pop depth="1"/>
   368      </rule>
   369      <rule>
   370        <pop depth="1"/>
   371      </rule>
   372    </state>
   373    <state name="expr-keywords">
   374      <rule pattern="(yield from|async for|lambda|yield|await|else|for|if)\b">
   375        <token type="Keyword"/>
   376      </rule>
   377      <rule pattern="(False|True|None)\b">
   378        <token type="KeywordConstant"/>
   379      </rule>
   380    </state>
   381    <state name="name">
   382      <rule pattern="@[_\p{L}][_\p{L}\p{N}]*(\s*\.\s*[_\p{L}][_\p{L}\p{N}]*)*">
   383        <token type="NameDecorator"/>
   384      </rule>
   385      <rule pattern="@">
   386        <token type="Operator"/>
   387      </rule>
   388      <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
   389        <token type="Name"/>
   390      </rule>
   391    </state>
   392    <state name="magicfuncs">
   393      <rule pattern="(__instancecheck__|__subclasscheck__|__getattribute__|__length_hint__|__rfloordiv__|__ifloordiv__|__itruediv__|__contains__|__floordiv__|__rtruediv__|__reversed__|__setitem__|__complex__|__rdivmod__|__delattr__|__rmatmul__|__ilshift__|__prepare__|__delitem__|__rrshift__|__imatmul__|__rlshift__|__setattr__|__truediv__|__getitem__|__missing__|__getattr__|__irshift__|__rshift__|__format__|__invert__|__matmul__|__divmod__|__delete__|__aenter__|__lshift__|__await__|__bytes__|__anext__|__aiter__|__aexit__|__round__|__float__|__enter__|__index__|__iadd__|__ipow__|__rpow__|__iter__|__init__|__ixor__|__rmul__|__rmod__|__imul__|__imod__|__iand__|__hash__|__rsub__|__exit__|__rxor__|__bool__|__call__|__rand__|__next__|__radd__|__isub__|__repr__|__set__|__add__|__new__|__neg__|__xor__|__and__|__mul__|__mod__|__sub__|__len__|__str__|__ror__|__ior__|__pos__|__del__|__get__|__dir__|__abs__|__int__|__pow__|__eq__|__gt__|__le__|__lt__|__ne__|__or__|__ge__)\b">
   394        <token type="NameFunctionMagic"/>
   395      </rule>
   396    </state>
   397    <state name="root">
   398      <rule pattern="\n">
   399        <token type="Text"/>
   400      </rule>
   401      <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
   402        <bygroups>
   403          <token type="Text"/>
   404          <token type="LiteralStringAffix"/>
   405          <token type="LiteralStringDoc"/>
   406        </bygroups>
   407      </rule>
   408      <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
   409        <bygroups>
   410          <token type="Text"/>
   411          <token type="LiteralStringAffix"/>
   412          <token type="LiteralStringDoc"/>
   413        </bygroups>
   414      </rule>
   415      <rule pattern="\A#!.+$">
   416        <token type="CommentHashbang"/>
   417      </rule>
   418      <rule pattern="#.*$">
   419        <token type="CommentSingle"/>
   420      </rule>
   421      <rule pattern="\\\n">
   422        <token type="Text"/>
   423      </rule>
   424      <rule pattern="\\">
   425        <token type="Text"/>
   426      </rule>
   427      <rule>
   428        <include state="keywords"/>
   429      </rule>
   430      <rule pattern="(def)((?:\s|\\\s)+)">
   431        <bygroups>
   432          <token type="Keyword"/>
   433          <token type="Text"/>
   434        </bygroups>
   435        <push state="funcname"/>
   436      </rule>
   437      <rule pattern="(class)((?:\s|\\\s)+)">
   438        <bygroups>
   439          <token type="Keyword"/>
   440          <token type="Text"/>
   441        </bygroups>
   442        <push state="classname"/>
   443      </rule>
   444      <rule pattern="(from)((?:\s|\\\s)+)">
   445        <bygroups>
   446          <token type="KeywordNamespace"/>
   447          <token type="Text"/>
   448        </bygroups>
   449        <push state="fromimport"/>
   450      </rule>
   451      <rule pattern="(import)((?:\s|\\\s)+)">
   452        <bygroups>
   453          <token type="KeywordNamespace"/>
   454          <token type="Text"/>
   455        </bygroups>
   456        <push state="import"/>
   457      </rule>
   458      <rule>
   459        <include state="expr"/>
   460      </rule>
   461    </state>
   462    <state name="fstrings-single">
   463      <rule pattern="\}">
   464        <token type="LiteralStringInterpol"/>
   465      </rule>
   466      <rule pattern="\{">
   467        <token type="LiteralStringInterpol"/>
   468        <push state="expr-inside-fstring"/>
   469      </rule>
   470      <rule pattern="[^\\\&#39;&#34;{}\n]+">
   471        <token type="LiteralStringSingle"/>
   472      </rule>
   473      <rule pattern="[\&#39;&#34;\\]">
   474        <token type="LiteralStringSingle"/>
   475      </rule>
   476    </state>
   477    <state name="magicvars">
   478      <rule pattern="(__annotations__|__kwdefaults__|__qualname__|__objclass__|__defaults__|__closure__|__globals__|__weakref__|__module__|__class__|__bases__|__slots__|__file__|__code__|__name__|__func__|__dict__|__self__|__mro__|__doc__)\b">
   479        <token type="NameVariableMagic"/>
   480      </rule>
   481    </state>
   482    <state name="tsqf">
   483      <rule pattern="&#39;&#39;&#39;">
   484        <token type="LiteralStringSingle"/>
   485        <pop depth="1"/>
   486      </rule>
   487      <rule>
   488        <include state="fstrings-single"/>
   489      </rule>
   490      <rule pattern="\n">
   491        <token type="LiteralStringSingle"/>
   492      </rule>
   493    </state>
   494    <state name="strings-single">
   495      <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]">
   496        <token type="LiteralStringInterpol"/>
   497      </rule>
   498      <rule pattern="\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[&lt;&gt;=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}">
   499        <token type="LiteralStringInterpol"/>
   500      </rule>
   501      <rule pattern="[^\\\&#39;&#34;%{\n]+">
   502        <token type="LiteralStringSingle"/>
   503      </rule>
   504      <rule pattern="[\&#39;&#34;\\]">
   505        <token type="LiteralStringSingle"/>
   506      </rule>
   507      <rule pattern="%|(\{{1,2})">
   508        <token type="LiteralStringSingle"/>
   509      </rule>
   510    </state>
   511    <state name="rfstringescape">
   512      <rule pattern="\{\{">
   513        <token type="LiteralStringEscape"/>
   514      </rule>
   515      <rule pattern="\}\}">
   516        <token type="LiteralStringEscape"/>
   517      </rule>
   518    </state>
   519    <state name="sqf">
   520      <rule pattern="&#39;">
   521        <token type="LiteralStringSingle"/>
   522        <pop depth="1"/>
   523      </rule>
   524      <rule pattern="\\\\|\\&#39;|\\\n">
   525        <token type="LiteralStringEscape"/>
   526      </rule>
   527      <rule>
   528        <include state="fstrings-single"/>
   529      </rule>
   530    </state>
   531    <state name="dqf">
   532      <rule pattern="&#34;">
   533        <token type="LiteralStringDouble"/>
   534        <pop depth="1"/>
   535      </rule>
   536      <rule pattern="\\\\|\\&#34;|\\\n">
   537        <token type="LiteralStringEscape"/>
   538      </rule>
   539      <rule>
   540        <include state="fstrings-double"/>
   541      </rule>
   542    </state>
   543    <state name="expr-inside-fstring">
   544      <rule pattern="[{([]">
   545        <token type="Punctuation"/>
   546        <push state="expr-inside-fstring-inner"/>
   547      </rule>
   548      <rule pattern="(=\s*)?(\![sraf])?\}">
   549        <token type="LiteralStringInterpol"/>
   550        <pop depth="1"/>
   551      </rule>
   552      <rule pattern="(=\s*)?(\![sraf])?:">
   553        <token type="LiteralStringInterpol"/>
   554        <pop depth="1"/>
   555      </rule>
   556      <rule pattern="\s+">
   557        <token type="Text"/>
   558      </rule>
   559      <rule>
   560        <include state="expr"/>
   561      </rule>
   562    </state>
   563    <state name="tdqs">
   564      <rule pattern="&#34;&#34;&#34;">
   565        <token type="LiteralStringDouble"/>
   566        <pop depth="1"/>
   567      </rule>
   568      <rule>
   569        <include state="strings-double"/>
   570      </rule>
   571      <rule pattern="\n">
   572        <token type="LiteralStringDouble"/>
   573      </rule>
   574    </state>
   575    <state name="fstringescape">
   576      <rule>
   577        <include state="rfstringescape"/>
   578      </rule>
   579      <rule>
   580        <include state="stringescape"/>
   581      </rule>
   582    </state>
   583    <state name="stringescape">
   584      <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
   585        <token type="LiteralStringEscape"/>
   586      </rule>
   587    </state>
   588  </rules>
   589</lexer>

View as plain text