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>