1. <lexer>
    
  2.   <config>
    
  3.     <name>Python 2</name>
    
  4.     <alias>python2</alias>
    
  5.     <alias>py2</alias>
    
  6.     <mime_type>text/x-python2</mime_type>
    
  7.     <mime_type>application/x-python2</mime_type>
    
  8.   </config>
    
  9.   <rules>
    
  10.     <state name="tdqs">
    
  11.       <rule pattern="&#34;&#34;&#34;">
    
  12.         <token type="LiteralStringDouble"/>
    
  13.         <pop depth="1"/>
    
  14.       </rule>
    
  15.       <rule>
    
  16.         <include state="strings-double"/>
    
  17.       </rule>
    
  18.       <rule pattern="\n">
    
  19.         <token type="LiteralStringDouble"/>
    
  20.       </rule>
    
  21.     </state>
    
  22.     <state name="name">
    
  23.       <rule pattern="@[\w.]+">
    
  24.         <token type="NameDecorator"/>
    
  25.       </rule>
    
  26.       <rule pattern="[a-zA-Z_]\w*">
    
  27.         <token type="Name"/>
    
  28.       </rule>
    
  29.     </state>
    
  30.     <state name="magicfuncs">
    
  31.       <rule pattern="(__instancecheck__|__subclasscheck__|__getattribute__|__rfloordiv__|__ifloordiv__|__setslice__|__getslice__|__contains__|__reversed__|__floordiv__|__rtruediv__|__itruediv__|__delslice__|__rlshift__|__rrshift__|__delitem__|__rdivmod__|__nonzero__|__missing__|__delattr__|__setattr__|__irshift__|__complex__|__setitem__|__getitem__|__truediv__|__unicode__|__ilshift__|__getattr__|__delete__|__coerce__|__invert__|__lshift__|__divmod__|__rshift__|__enter__|__index__|__float__|__iadd__|__rsub__|__init__|__imul__|__rpow__|__repr__|__rmul__|__isub__|__iter__|__rmod__|__ixor__|__call__|__imod__|__long__|__hash__|__rxor__|__idiv__|__iand__|__rdiv__|__ipow__|__rcmp__|__rand__|__exit__|__radd__|__str__|__cmp__|__pos__|__pow__|__oct__|__new__|__neg__|__mul__|__mod__|__set__|__xor__|__sub__|__len__|__and__|__get__|__rop__|__add__|__ior__|__div__|__iop__|__int__|__abs__|__hex__|__ror__|__del__|__eq__|__or__|__ne__|__lt__|__le__|__ge__|__gt__|__op__)\b">
    
  32.         <token type="NameFunctionMagic"/>
    
  33.       </rule>
    
  34.     </state>
    
  35.     <state name="keywords">
    
  36.       <rule pattern="(yield from|continue|finally|lambda|assert|global|except|return|print|yield|while|break|raise|elif|pass|exec|else|with|try|for|del|as|if)\b">
    
  37.         <token type="Keyword"/>
    
  38.       </rule>
    
  39.     </state>
    
  40.     <state name="tsqs">
    
  41.       <rule pattern="&#39;&#39;&#39;">
    
  42.         <token type="LiteralStringSingle"/>
    
  43.         <pop depth="1"/>
    
  44.       </rule>
    
  45.       <rule>
    
  46.         <include state="strings-single"/>
    
  47.       </rule>
    
  48.       <rule pattern="\n">
    
  49.         <token type="LiteralStringSingle"/>
    
  50.       </rule>
    
  51.     </state>
    
  52.     <state name="stringescape">
    
  53.       <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})">
    
  54.         <token type="LiteralStringEscape"/>
    
  55.       </rule>
    
  56.     </state>
    
  57.     <state name="numbers">
    
  58.       <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
    
  59.         <token type="LiteralNumberFloat"/>
    
  60.       </rule>
    
  61.       <rule pattern="\d+[eE][+-]?[0-9]+j?">
    
  62.         <token type="LiteralNumberFloat"/>
    
  63.       </rule>
    
  64.       <rule pattern="0[0-7]+j?">
    
  65.         <token type="LiteralNumberOct"/>
    
  66.       </rule>
    
  67.       <rule pattern="0[bB][01]+">
    
  68.         <token type="LiteralNumberBin"/>
    
  69.       </rule>
    
  70.       <rule pattern="0[xX][a-fA-F0-9]+">
    
  71.         <token type="LiteralNumberHex"/>
    
  72.       </rule>
    
  73.       <rule pattern="\d+L">
    
  74.         <token type="LiteralNumberIntegerLong"/>
    
  75.       </rule>
    
  76.       <rule pattern="\d+j?">
    
  77.         <token type="LiteralNumberInteger"/>
    
  78.       </rule>
    
  79.     </state>
    
  80.     <state name="import">
    
  81.       <rule pattern="(?:[ \t]|\\\n)+">
    
  82.         <token type="Text"/>
    
  83.       </rule>
    
  84.       <rule pattern="as\b">
    
  85.         <token type="KeywordNamespace"/>
    
  86.       </rule>
    
  87.       <rule pattern=",">
    
  88.         <token type="Operator"/>
    
  89.       </rule>
    
  90.       <rule pattern="[a-zA-Z_][\w.]*">
    
  91.         <token type="NameNamespace"/>
    
  92.       </rule>
    
  93.       <rule>
    
  94.         <pop depth="1"/>
    
  95.       </rule>
    
  96.     </state>
    
  97.     <state name="magicvars">
    
  98.       <rule pattern="(__metaclass__|__defaults__|__globals__|__closure__|__weakref__|__module__|__slots__|__class__|__bases__|__file__|__func__|__dict__|__name__|__self__|__code__|__mro__|__doc__)\b">
    
  99.         <token type="NameVariableMagic"/>
    
  100.       </rule>
    
  101.     </state>
    
  102.     <state name="fromimport">
    
  103.       <rule pattern="(?:[ \t]|\\\n)+">
    
  104.         <token type="Text"/>
    
  105.       </rule>
    
  106.       <rule pattern="import\b">
    
  107.         <token type="KeywordNamespace"/>
    
  108.         <pop depth="1"/>
    
  109.       </rule>
    
  110.       <rule pattern="None\b">
    
  111.         <token type="NameBuiltinPseudo"/>
    
  112.         <pop depth="1"/>
    
  113.       </rule>
    
  114.       <rule pattern="[a-zA-Z_.][\w.]*">
    
  115.         <token type="NameNamespace"/>
    
  116.       </rule>
    
  117.       <rule>
    
  118.         <pop depth="1"/>
    
  119.       </rule>
    
  120.     </state>
    
  121.     <state name="strings-single">
    
  122.       <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
    
  123.         <token type="LiteralStringInterpol"/>
    
  124.       </rule>
    
  125.       <rule pattern="[^\\\&#39;&#34;%\n]+">
    
  126.         <token type="LiteralStringSingle"/>
    
  127.       </rule>
    
  128.       <rule pattern="[\&#39;&#34;\\]">
    
  129.         <token type="LiteralStringSingle"/>
    
  130.       </rule>
    
  131.       <rule pattern="%">
    
  132.         <token type="LiteralStringSingle"/>
    
  133.       </rule>
    
  134.     </state>
    
  135.     <state name="funcname">
    
  136.       <rule>
    
  137.         <include state="magicfuncs"/>
    
  138.       </rule>
    
  139.       <rule pattern="[a-zA-Z_]\w*">
    
  140.         <token type="NameFunction"/>
    
  141.         <pop depth="1"/>
    
  142.       </rule>
    
  143.       <rule>
    
  144.         <pop depth="1"/>
    
  145.       </rule>
    
  146.     </state>
    
  147.     <state name="classname">
    
  148.       <rule pattern="[a-zA-Z_]\w*">
    
  149.         <token type="NameClass"/>
    
  150.         <pop depth="1"/>
    
  151.       </rule>
    
  152.     </state>
    
  153.     <state name="backtick">
    
  154.       <rule pattern="`.*?`">
    
  155.         <token type="LiteralStringBacktick"/>
    
  156.       </rule>
    
  157.     </state>
    
  158.     <state name="strings-double">
    
  159.       <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
    
  160.         <token type="LiteralStringInterpol"/>
    
  161.       </rule>
    
  162.       <rule pattern="[^\\\&#39;&#34;%\n]+">
    
  163.         <token type="LiteralStringDouble"/>
    
  164.       </rule>
    
  165.       <rule pattern="[\&#39;&#34;\\]">
    
  166.         <token type="LiteralStringDouble"/>
    
  167.       </rule>
    
  168.       <rule pattern="%">
    
  169.         <token type="LiteralStringDouble"/>
    
  170.       </rule>
    
  171.     </state>
    
  172.     <state name="dqs">
    
  173.       <rule pattern="&#34;">
    
  174.         <token type="LiteralStringDouble"/>
    
  175.         <pop depth="1"/>
    
  176.       </rule>
    
  177.       <rule pattern="\\\\|\\&#34;|\\\n">
    
  178.         <token type="LiteralStringEscape"/>
    
  179.       </rule>
    
  180.       <rule>
    
  181.         <include state="strings-double"/>
    
  182.       </rule>
    
  183.     </state>
    
  184.     <state name="root">
    
  185.       <rule pattern="\n">
    
  186.         <token type="Text"/>
    
  187.       </rule>
    
  188.       <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
    
  189.         <bygroups>
    
  190.           <token type="Text"/>
    
  191.           <token type="LiteralStringAffix"/>
    
  192.           <token type="LiteralStringDoc"/>
    
  193.         </bygroups>
    
  194.       </rule>
    
  195.       <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
    
  196.         <bygroups>
    
  197.           <token type="Text"/>
    
  198.           <token type="LiteralStringAffix"/>
    
  199.           <token type="LiteralStringDoc"/>
    
  200.         </bygroups>
    
  201.       </rule>
    
  202.       <rule pattern="[^\S\n]+">
    
  203.         <token type="Text"/>
    
  204.       </rule>
    
  205.       <rule pattern="\A#!.+$">
    
  206.         <token type="CommentHashbang"/>
    
  207.       </rule>
    
  208.       <rule pattern="#.*$">
    
  209.         <token type="CommentSingle"/>
    
  210.       </rule>
    
  211.       <rule pattern="[]{}:(),;[]">
    
  212.         <token type="Punctuation"/>
    
  213.       </rule>
    
  214.       <rule pattern="\\\n">
    
  215.         <token type="Text"/>
    
  216.       </rule>
    
  217.       <rule pattern="\\">
    
  218.         <token type="Text"/>
    
  219.       </rule>
    
  220.       <rule pattern="(in|is|and|or|not)\b">
    
  221.         <token type="OperatorWord"/>
    
  222.       </rule>
    
  223.       <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-~+/*%=&lt;&gt;&amp;^|.]">
    
  224.         <token type="Operator"/>
    
  225.       </rule>
    
  226.       <rule>
    
  227.         <include state="keywords"/>
    
  228.       </rule>
    
  229.       <rule pattern="(def)((?:\s|\\\s)+)">
    
  230.         <bygroups>
    
  231.           <token type="Keyword"/>
    
  232.           <token type="Text"/>
    
  233.         </bygroups>
    
  234.         <push state="funcname"/>
    
  235.       </rule>
    
  236.       <rule pattern="(class)((?:\s|\\\s)+)">
    
  237.         <bygroups>
    
  238.           <token type="Keyword"/>
    
  239.           <token type="Text"/>
    
  240.         </bygroups>
    
  241.         <push state="classname"/>
    
  242.       </rule>
    
  243.       <rule pattern="(from)((?:\s|\\\s)+)">
    
  244.         <bygroups>
    
  245.           <token type="KeywordNamespace"/>
    
  246.           <token type="Text"/>
    
  247.         </bygroups>
    
  248.         <push state="fromimport"/>
    
  249.       </rule>
    
  250.       <rule pattern="(import)((?:\s|\\\s)+)">
    
  251.         <bygroups>
    
  252.           <token type="KeywordNamespace"/>
    
  253.           <token type="Text"/>
    
  254.         </bygroups>
    
  255.         <push state="import"/>
    
  256.       </rule>
    
  257.       <rule>
    
  258.         <include state="builtins"/>
    
  259.       </rule>
    
  260.       <rule>
    
  261.         <include state="magicfuncs"/>
    
  262.       </rule>
    
  263.       <rule>
    
  264.         <include state="magicvars"/>
    
  265.       </rule>
    
  266.       <rule>
    
  267.         <include state="backtick"/>
    
  268.       </rule>
    
  269.       <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;&#34;&#34;)">
    
  270.         <bygroups>
    
  271.           <token type="LiteralStringAffix"/>
    
  272.           <token type="LiteralStringDouble"/>
    
  273.         </bygroups>
    
  274.         <push state="tdqs"/>
    
  275.       </rule>
    
  276.       <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;&#39;&#39;)">
    
  277.         <bygroups>
    
  278.           <token type="LiteralStringAffix"/>
    
  279.           <token type="LiteralStringSingle"/>
    
  280.         </bygroups>
    
  281.         <push state="tsqs"/>
    
  282.       </rule>
    
  283.       <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;)">
    
  284.         <bygroups>
    
  285.           <token type="LiteralStringAffix"/>
    
  286.           <token type="LiteralStringDouble"/>
    
  287.         </bygroups>
    
  288.         <push state="dqs"/>
    
  289.       </rule>
    
  290.       <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;)">
    
  291.         <bygroups>
    
  292.           <token type="LiteralStringAffix"/>
    
  293.           <token type="LiteralStringSingle"/>
    
  294.         </bygroups>
    
  295.         <push state="sqs"/>
    
  296.       </rule>
    
  297.       <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
    
  298.         <bygroups>
    
  299.           <token type="LiteralStringAffix"/>
    
  300.           <token type="LiteralStringDouble"/>
    
  301.         </bygroups>
    
  302.         <combined state="stringescape" state="tdqs"/>
    
  303.       </rule>
    
  304.       <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
    
  305.         <bygroups>
    
  306.           <token type="LiteralStringAffix"/>
    
  307.           <token type="LiteralStringSingle"/>
    
  308.         </bygroups>
    
  309.         <combined state="stringescape" state="tsqs"/>
    
  310.       </rule>
    
  311.       <rule pattern="([uUbB]?)(&#34;)">
    
  312.         <bygroups>
    
  313.           <token type="LiteralStringAffix"/>
    
  314.           <token type="LiteralStringDouble"/>
    
  315.         </bygroups>
    
  316.         <combined state="stringescape" state="dqs"/>
    
  317.       </rule>
    
  318.       <rule pattern="([uUbB]?)(&#39;)">
    
  319.         <bygroups>
    
  320.           <token type="LiteralStringAffix"/>
    
  321.           <token type="LiteralStringSingle"/>
    
  322.         </bygroups>
    
  323.         <combined state="stringescape" state="sqs"/>
    
  324.       </rule>
    
  325.       <rule>
    
  326.         <include state="name"/>
    
  327.       </rule>
    
  328.       <rule>
    
  329.         <include state="numbers"/>
    
  330.       </rule>
    
  331.     </state>
    
  332.     <state name="sqs">
    
  333.       <rule pattern="&#39;">
    
  334.         <token type="LiteralStringSingle"/>
    
  335.         <pop depth="1"/>
    
  336.       </rule>
    
  337.       <rule pattern="\\\\|\\&#39;|\\\n">
    
  338.         <token type="LiteralStringEscape"/>
    
  339.       </rule>
    
  340.       <rule>
    
  341.         <include state="strings-single"/>
    
  342.       </rule>
    
  343.     </state>
    
  344.     <state name="builtins">
    
  345.       <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|isinstance|basestring|issubclass|frozenset|raw_input|bytearray|enumerate|property|callable|reversed|execfile|hasattr|setattr|compile|complex|delattr|unicode|globals|getattr|unichr|reduce|xrange|buffer|intern|filter|locals|divmod|coerce|sorted|reload|object|slice|round|float|super|input|bytes|apply|tuple|range|iter|dict|long|type|hash|vars|next|file|exit|open|repr|eval|bool|list|bin|pow|zip|ord|oct|min|set|any|max|map|all|len|sum|int|dir|hex|chr|abs|cmp|str|id)\b">
    
  346.         <token type="NameBuiltin"/>
    
  347.       </rule>
    
  348.       <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b">
    
  349.         <token type="NameBuiltinPseudo"/>
    
  350.       </rule>
    
  351.       <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|UnicodeDecodeError|DeprecationWarning|UnicodeEncodeError|FloatingPointError|ZeroDivisionError|UnboundLocalError|KeyboardInterrupt|EnvironmentError|IndentationError|OverflowWarning|ArithmeticError|ReferenceError|AttributeError|AssertionError|RuntimeWarning|UnicodeWarning|GeneratorExit|SyntaxWarning|StandardError|BaseException|OverflowError|FutureWarning|ImportWarning|StopIteration|UnicodeError|WindowsError|RuntimeError|ImportError|UserWarning|LookupError|SyntaxError|SystemError|MemoryError|SystemExit|ValueError|IndexError|NameError|Exception|TypeError|EOFError|KeyError|VMSError|TabError|IOError|Warning|OSError)\b">
    
  352.         <token type="NameException"/>
    
  353.       </rule>
    
  354.     </state>
    
  355.   </rules>
    
  356. </lexer>