python_2.xml

  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>