]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/python.xml
654860eab7d9abd16def29829bd5fa70489bdac6
[factor.git] / basis / xmode / modes / python.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <!-- Python mode, by Slava Pestov. Based on PythonTokenMarker by -->\r
6 <!-- Jonathan Revusky -->\r
7 \r
8 <!-- Modified 19-Jul-00 by Ivan Frohne to: -->\r
9 <!--  (a) implement 'indentOnEnter'; -->\r
10 <!--  (b) indent next line automatically after control structures followed -->\r
11 <!--      by ':'; -->\r
12 <!--  (c) make """ or ''' multiline quotes TYPE LITERAL2; -->\r
13 <!--  (d) add TYPE FUNCTION identified by a following '(' -->\r
14 <!--  (e) eliminate the '?' SEQ TYPE ('?' has no meaning in Python); -->\r
15 <!--  (f) change the TYPE of 'and', 'or', and 'not' to KEYWORD1; and -->\r
16 <!--  (g) add all builtin functions, builtin exceptions, -->\r
17 <!--      builtin type methods, File object methods, and special type -->\r
18 <!--      attributes as TYPE KEYWORD3. -->\r
19 \r
20 <MODE>\r
21         <PROPS>\r
22                 <PROPERTY NAME="indentNextLines" VALUE="\s*[^#]{3,}:\s*(#.*)?" />\r
23                 <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />\r
24                 <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />\r
25                 <PROPERTY NAME="unindentNextLines" VALUE="^\s*(pass|else\s*:|elif\s.*:|except(\s.*)?:|finally\s*:)$" />\r
26                 <PROPERTY NAME="unindentThisLine" VALUE="^\s*(else|elif\s.*|except(\s.*)?|finally)\s*:" />\r
27                 <PROPERTY NAME="lineComment" VALUE="#" />\r
28                 <PROPERTY NAME="electricKeys" VALUE=":" />\r
29                 <PROPERTY NAME="ignoreWhitespace" VALUE="false" />\r
30         </PROPS>\r
31         <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">\r
32                 <!-- Comment -->\r
33                 <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>\r
34 \r
35                 <!-- decorator -->\r
36                 <EOL_SPAN_REGEXP HASH_CHAR="@" AT_WORD_START="TRUE" TYPE="KEYWORD4">@\w</EOL_SPAN_REGEXP>\r
37 \r
38                 <!-- Triple-quotes -->\r
39                 <SPAN TYPE="LITERAL2" DELEGATE="LITERAL_TWO">\r
40                         <BEGIN>"""</BEGIN>\r
41                         <END>"""</END>\r
42                 </SPAN>\r
43 \r
44                 <SPAN TYPE="LITERAL2" DELEGATE="LITERAL_TWO">\r
45                         <BEGIN>'''</BEGIN>\r
46                         <END>'''</END>\r
47                 </SPAN>\r
48 \r
49                 <!-- Standard literals -->\r
50                 <SPAN TYPE="LITERAL1" DELEGATE="LITERAL_ONE">\r
51                         <BEGIN>"</BEGIN>\r
52                         <END>"</END>\r
53                 </SPAN>\r
54                 <SPAN TYPE="LITERAL1" DELEGATE="LITERAL_ONE">\r
55                         <BEGIN>'</BEGIN>\r
56                         <END>'</END>\r
57                 </SPAN>\r
58 \r
59                 <SEQ TYPE="OPERATOR">=</SEQ>\r
60                 <SEQ TYPE="OPERATOR">!</SEQ>\r
61                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>\r
62                 <SEQ TYPE="OPERATOR">&lt;=</SEQ>\r
63                 <SEQ TYPE="OPERATOR">+</SEQ>\r
64                 <SEQ TYPE="OPERATOR">-</SEQ>\r
65                 <SEQ TYPE="OPERATOR">/</SEQ>\r
66                 <SEQ TYPE="OPERATOR">*</SEQ>\r
67                 <SEQ TYPE="OPERATOR">&gt;</SEQ>\r
68                 <SEQ TYPE="OPERATOR">&lt;</SEQ>\r
69                 <SEQ TYPE="OPERATOR">%</SEQ>\r
70                 <SEQ TYPE="OPERATOR">&amp;</SEQ>\r
71                 <SEQ TYPE="OPERATOR">|</SEQ>\r
72                 <SEQ TYPE="OPERATOR">^</SEQ>\r
73                 <SEQ TYPE="OPERATOR">~</SEQ>\r
74                 <SEQ TYPE="KEYWORD1">:</SEQ>\r
75 \r
76                 <MARK_PREVIOUS TYPE="FUNCTION"\r
77                         MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>\r
78                 <SEQ TYPE="OPERATOR">)</SEQ>\r
79 \r
80                 <KEYWORDS>\r
81                         <!--  Reserved Words  -->\r
82                         <KEYWORD1>and</KEYWORD1>\r
83                         <KEYWORD1>as</KEYWORD1>\r
84                         <KEYWORD1>assert</KEYWORD1>\r
85                         <KEYWORD1>break</KEYWORD1>\r
86                         <KEYWORD1>class</KEYWORD1>\r
87                         <KEYWORD1>continue</KEYWORD1>\r
88                         <KEYWORD1>def</KEYWORD1>\r
89                         <KEYWORD1>del</KEYWORD1>\r
90                         <KEYWORD1>elif</KEYWORD1>\r
91                         <KEYWORD1>else</KEYWORD1>\r
92                         <KEYWORD1>except</KEYWORD1>\r
93                         <KEYWORD1>exec</KEYWORD1>\r
94                         <KEYWORD1>finally</KEYWORD1>\r
95                         <KEYWORD1>for</KEYWORD1>\r
96                         <KEYWORD1>from</KEYWORD1>\r
97                         <KEYWORD1>global</KEYWORD1>\r
98                         <KEYWORD1>if</KEYWORD1>\r
99                         <KEYWORD1>import</KEYWORD1>\r
100                         <KEYWORD1>in</KEYWORD1>\r
101                         <KEYWORD1>is</KEYWORD1>\r
102                         <KEYWORD1>lambda</KEYWORD1>\r
103                         <KEYWORD1>not</KEYWORD1>\r
104                         <KEYWORD1>or</KEYWORD1>\r
105                         <KEYWORD1>pass</KEYWORD1>\r
106                         <KEYWORD1>print</KEYWORD1>\r
107                         <KEYWORD1>raise</KEYWORD1>\r
108                         <KEYWORD1>return</KEYWORD1>\r
109                         <KEYWORD1>reversed</KEYWORD1>\r
110                         <KEYWORD1>sorted</KEYWORD1>\r
111                         <KEYWORD1>try</KEYWORD1>\r
112                         <KEYWORD1>while</KEYWORD1>\r
113                         <KEYWORD1>with</KEYWORD1>\r
114                         <KEYWORD1>yield</KEYWORD1>\r
115                         <KEYWORD1>self</KEYWORD1>\r
116 \r
117                         <!-- builtins -->\r
118                         <KEYWORD2>abs</KEYWORD2>\r
119                         <KEYWORD2>all</KEYWORD2>\r
120                         <KEYWORD2>any</KEYWORD2>\r
121                         <KEYWORD2>apply</KEYWORD2>\r
122                         <KEYWORD2>bool</KEYWORD2>\r
123                         <KEYWORD2>buffer</KEYWORD2>\r
124                         <KEYWORD2>callable</KEYWORD2>\r
125                         <KEYWORD2>chr</KEYWORD2>\r
126                         <KEYWORD2>classmethod</KEYWORD2>\r
127                         <KEYWORD2>cmp</KEYWORD2>\r
128                         <KEYWORD2>coerce</KEYWORD2>\r
129                         <KEYWORD2>compile</KEYWORD2>\r
130                         <KEYWORD2>complex</KEYWORD2>\r
131                         <KEYWORD2>delattr</KEYWORD2>\r
132                         <KEYWORD2>dict</KEYWORD2>\r
133                         <KEYWORD2>dir</KEYWORD2>\r
134                         <KEYWORD2>divmod</KEYWORD2>\r
135                         <KEYWORD2>enumerate</KEYWORD2>\r
136                         <KEYWORD2>eval</KEYWORD2>\r
137                         <KEYWORD2>execfile</KEYWORD2>\r
138                         <KEYWORD2>file</KEYWORD2>\r
139                         <KEYWORD2>filter</KEYWORD2>\r
140                         <KEYWORD2>float</KEYWORD2>\r
141                         <KEYWORD2>frozenset</KEYWORD2>\r
142                         <KEYWORD2>getattr</KEYWORD2>\r
143                         <KEYWORD2>globals</KEYWORD2>\r
144                         <KEYWORD2>hasattr</KEYWORD2>\r
145                         <KEYWORD2>hash</KEYWORD2>\r
146                         <KEYWORD2>hex</KEYWORD2>\r
147                         <KEYWORD2>id</KEYWORD2>\r
148                         <KEYWORD2>input</KEYWORD2>\r
149                         <KEYWORD2>int</KEYWORD2>\r
150                         <KEYWORD2>intern</KEYWORD2>\r
151                         <KEYWORD2>isinstance</KEYWORD2>\r
152                         <KEYWORD2>issubclass</KEYWORD2>\r
153                         <KEYWORD2>iter</KEYWORD2>\r
154                         <KEYWORD2>len</KEYWORD2>\r
155                         <KEYWORD2>list</KEYWORD2>\r
156                         <KEYWORD2>locals</KEYWORD2>\r
157                         <KEYWORD2>long</KEYWORD2>\r
158                         <KEYWORD2>map</KEYWORD2>\r
159                         <KEYWORD2>max</KEYWORD2>\r
160                         <KEYWORD2>min</KEYWORD2>\r
161                         <KEYWORD2>object</KEYWORD2>\r
162                         <KEYWORD2>oct</KEYWORD2>\r
163                         <KEYWORD2>open</KEYWORD2>\r
164                         <KEYWORD2>ord</KEYWORD2>\r
165                         <KEYWORD2>pow</KEYWORD2>\r
166                         <KEYWORD2>property</KEYWORD2>\r
167                         <KEYWORD2>range</KEYWORD2>\r
168                         <KEYWORD2>raw_input</KEYWORD2>\r
169                         <KEYWORD2>reduce</KEYWORD2>\r
170                         <KEYWORD2>reload</KEYWORD2>\r
171                         <KEYWORD2>repr</KEYWORD2>\r
172                         <KEYWORD2>round</KEYWORD2>\r
173                         <KEYWORD2>set</KEYWORD2>\r
174                         <KEYWORD2>setattr</KEYWORD2>\r
175                         <KEYWORD2>slice</KEYWORD2>\r
176                         <KEYWORD2>staticmethod</KEYWORD2>\r
177                         <KEYWORD2>str</KEYWORD2>\r
178                         <KEYWORD2>sum</KEYWORD2>\r
179                         <KEYWORD2>super</KEYWORD2>\r
180                         <KEYWORD2>tuple</KEYWORD2>\r
181                         <KEYWORD2>type</KEYWORD2>\r
182                         <KEYWORD2>unichr</KEYWORD2>\r
183                         <KEYWORD2>unicode</KEYWORD2>\r
184                         <KEYWORD2>vars</KEYWORD2>\r
185                         <KEYWORD2>xrange</KEYWORD2>\r
186                         <KEYWORD2>zip</KEYWORD2>\r
187 \r
188                         <!-- exceptions -->\r
189                         <KEYWORD3>ArithmeticError</KEYWORD3>\r
190                         <KEYWORD3>AssertionError</KEYWORD3>\r
191                         <KEYWORD3>AttributeError</KEYWORD3>\r
192                         <KEYWORD3>DeprecationWarning</KEYWORD3>\r
193                         <KEYWORD3>EOFError</KEYWORD3>\r
194                         <KEYWORD3>EnvironmentError</KEYWORD3>\r
195                         <KEYWORD3>Exception</KEYWORD3>\r
196                         <KEYWORD3>FloatingPointError</KEYWORD3>\r
197                         <KEYWORD3>IOError</KEYWORD3>\r
198                         <KEYWORD3>ImportError</KEYWORD3>\r
199                         <KEYWORD3>IndentationError</KEYWORD3>\r
200                         <KEYWORD3>IndexError</KEYWORD3>\r
201                         <KEYWORD3>KeyError</KEYWORD3>\r
202                         <KEYWORD3>KeyboardInterrupt</KEYWORD3>\r
203                         <KEYWORD3>LookupError</KEYWORD3>\r
204                         <KEYWORD3>MemoryError</KEYWORD3>\r
205                         <KEYWORD3>NameError</KEYWORD3>\r
206                         <KEYWORD3>NotImplemented</KEYWORD3>\r
207                         <KEYWORD3>NotImplementedError</KEYWORD3>\r
208                         <KEYWORD3>OSError</KEYWORD3>\r
209                         <KEYWORD3>OverflowError</KEYWORD3>\r
210                         <KEYWORD3>OverflowWarning</KEYWORD3>\r
211                         <KEYWORD3>ReferenceError</KEYWORD3>\r
212                         <KEYWORD3>RuntimeError</KEYWORD3>\r
213                         <KEYWORD3>RuntimeWarning</KEYWORD3>\r
214                         <KEYWORD3>StandardError</KEYWORD3>\r
215                         <KEYWORD3>StopIteration</KEYWORD3>\r
216                         <KEYWORD3>SyntaxError</KEYWORD3>\r
217                         <KEYWORD3>SyntaxWarning</KEYWORD3>\r
218                         <KEYWORD3>SystemError</KEYWORD3>\r
219                         <KEYWORD3>SystemExit</KEYWORD3>\r
220                         <KEYWORD3>TabError</KEYWORD3>\r
221                         <KEYWORD3>TypeError</KEYWORD3>\r
222                         <KEYWORD3>UnboundLocalError</KEYWORD3>\r
223                         <KEYWORD3>UnicodeError</KEYWORD3>\r
224                         <KEYWORD3>UserWarning</KEYWORD3>\r
225                         <KEYWORD3>ValueError</KEYWORD3>\r
226                         <KEYWORD3>Warning</KEYWORD3>\r
227                         <KEYWORD3>WindowsError</KEYWORD3>\r
228                         <KEYWORD3>ZeroDivisionError</KEYWORD3>\r
229 \r
230                         <!-- types (from types module) -->\r
231                         <KEYWORD3>BufferType</KEYWORD3>\r
232                         <KEYWORD3>BuiltinFunctionType</KEYWORD3>\r
233                         <KEYWORD3>BuiltinMethodType</KEYWORD3>\r
234                         <KEYWORD3>ClassType</KEYWORD3>\r
235                         <KEYWORD3>CodeType</KEYWORD3>\r
236                         <KEYWORD3>ComplexType</KEYWORD3>\r
237                         <KEYWORD3>DictProxyType</KEYWORD3>\r
238                         <KEYWORD3>DictType</KEYWORD3>\r
239                         <KEYWORD3>DictionaryType</KEYWORD3>\r
240                         <KEYWORD3>EllipsisType</KEYWORD3>\r
241                         <KEYWORD3>FileType</KEYWORD3>\r
242                         <KEYWORD3>FloatType</KEYWORD3>\r
243                         <KEYWORD3>FrameType</KEYWORD3>\r
244                         <KEYWORD3>FunctionType</KEYWORD3>\r
245                         <KEYWORD3>GeneratorType</KEYWORD3>\r
246                         <KEYWORD3>InstanceType</KEYWORD3>\r
247                         <KEYWORD3>IntType</KEYWORD3>\r
248                         <KEYWORD3>LambdaType</KEYWORD3>\r
249                         <KEYWORD3>ListType</KEYWORD3>\r
250                         <KEYWORD3>LongType</KEYWORD3>\r
251                         <KEYWORD3>MethodType</KEYWORD3>\r
252                         <KEYWORD3>ModuleType</KEYWORD3>\r
253                         <KEYWORD3>NoneType</KEYWORD3>\r
254                         <KEYWORD3>ObjectType</KEYWORD3>\r
255                         <KEYWORD3>SliceType</KEYWORD3>\r
256                         <KEYWORD3>StringType</KEYWORD3>\r
257                         <KEYWORD3>StringTypes</KEYWORD3>\r
258                         <KEYWORD3>TracebackType</KEYWORD3>\r
259                         <KEYWORD3>TupleType</KEYWORD3>\r
260                         <KEYWORD3>TypeType</KEYWORD3>\r
261                         <KEYWORD3>UnboundMethodType</KEYWORD3>\r
262                         <KEYWORD3>UnicodeType</KEYWORD3>\r
263                         <KEYWORD3>XRangeType</KEYWORD3>\r
264 \r
265                         <KEYWORD3>False</KEYWORD3>\r
266                         <KEYWORD3>None</KEYWORD3>\r
267                         <KEYWORD3>True</KEYWORD3>\r
268 \r
269                         <KEYWORD3>__abs__</KEYWORD3>\r
270                         <KEYWORD3>__add__</KEYWORD3>\r
271                         <KEYWORD3>__all__</KEYWORD3>\r
272                         <KEYWORD3>__author__</KEYWORD3>\r
273                         <KEYWORD3>__bases__</KEYWORD3>\r
274                         <KEYWORD3>__builtins__</KEYWORD3>\r
275                         <KEYWORD3>__call__</KEYWORD3>\r
276                         <KEYWORD3>__class__</KEYWORD3>\r
277                         <KEYWORD3>__cmp__</KEYWORD3>\r
278                         <KEYWORD3>__coerce__</KEYWORD3>\r
279                         <KEYWORD3>__contains__</KEYWORD3>\r
280                         <KEYWORD3>__debug__</KEYWORD3>\r
281                         <KEYWORD3>__del__</KEYWORD3>\r
282                         <KEYWORD3>__delattr__</KEYWORD3>\r
283                         <KEYWORD3>__delitem__</KEYWORD3>\r
284                         <KEYWORD3>__delslice__</KEYWORD3>\r
285                         <KEYWORD3>__dict__</KEYWORD3>\r
286                         <KEYWORD3>__div__</KEYWORD3>\r
287                         <KEYWORD3>__divmod__</KEYWORD3>\r
288                         <KEYWORD3>__doc__</KEYWORD3>\r
289                         <KEYWORD3>__docformat__</KEYWORD3>\r
290                         <KEYWORD3>__eq__</KEYWORD3>\r
291                         <KEYWORD3>__file__</KEYWORD3>\r
292                         <KEYWORD3>__float__</KEYWORD3>\r
293                         <KEYWORD3>__floordiv__</KEYWORD3>\r
294                         <KEYWORD3>__future__</KEYWORD3>\r
295                         <KEYWORD3>__ge__</KEYWORD3>\r
296                         <KEYWORD3>__getattr__</KEYWORD3>\r
297                         <KEYWORD3>__getattribute__</KEYWORD3>\r
298                         <KEYWORD3>__getitem__</KEYWORD3>\r
299                         <KEYWORD3>__getslice__</KEYWORD3>\r
300                         <KEYWORD3>__gt__</KEYWORD3>\r
301                         <KEYWORD3>__hash__</KEYWORD3>\r
302                         <KEYWORD3>__hex__</KEYWORD3>\r
303                         <KEYWORD3>__iadd__</KEYWORD3>\r
304                         <KEYWORD3>__import__</KEYWORD3>\r
305                         <KEYWORD3>__imul__</KEYWORD3>\r
306                         <KEYWORD3>__init__</KEYWORD3>\r
307                         <KEYWORD3>__int__</KEYWORD3>\r
308                         <KEYWORD3>__invert__</KEYWORD3>\r
309                         <KEYWORD3>__iter__</KEYWORD3>\r
310                         <KEYWORD3>__le__</KEYWORD3>\r
311                         <KEYWORD3>__len__</KEYWORD3>\r
312                         <KEYWORD3>__long__</KEYWORD3>\r
313                         <KEYWORD3>__lshift__</KEYWORD3>\r
314                         <KEYWORD3>__lt__</KEYWORD3>\r
315                         <KEYWORD3>__members__</KEYWORD3>\r
316                         <KEYWORD3>__metaclass__</KEYWORD3>\r
317                         <KEYWORD3>__mod__</KEYWORD3>\r
318                         <KEYWORD3>__mro__</KEYWORD3>\r
319                         <KEYWORD3>__mul__</KEYWORD3>\r
320                         <KEYWORD3>__name__</KEYWORD3>\r
321                         <KEYWORD3>__ne__</KEYWORD3>\r
322                         <KEYWORD3>__neg__</KEYWORD3>\r
323                         <KEYWORD3>__new__</KEYWORD3>\r
324                         <KEYWORD3>__nonzero__</KEYWORD3>\r
325                         <KEYWORD3>__oct__</KEYWORD3>\r
326                         <KEYWORD3>__or__</KEYWORD3>\r
327                         <KEYWORD3>__path__</KEYWORD3>\r
328                         <KEYWORD3>__pos__</KEYWORD3>\r
329                         <KEYWORD3>__pow__</KEYWORD3>\r
330                         <KEYWORD3>__radd__</KEYWORD3>\r
331                         <KEYWORD3>__rdiv__</KEYWORD3>\r
332                         <KEYWORD3>__rdivmod__</KEYWORD3>\r
333                         <KEYWORD3>__reduce__</KEYWORD3>\r
334                         <KEYWORD3>__repr__</KEYWORD3>\r
335                         <KEYWORD3>__rfloordiv__</KEYWORD3>\r
336                         <KEYWORD3>__rlshift__</KEYWORD3>\r
337                         <KEYWORD3>__rmod__</KEYWORD3>\r
338                         <KEYWORD3>__rmul__</KEYWORD3>\r
339                         <KEYWORD3>__ror__</KEYWORD3>\r
340                         <KEYWORD3>__rpow__</KEYWORD3>\r
341                         <KEYWORD3>__rrshift__</KEYWORD3>\r
342                         <KEYWORD3>__rsub__</KEYWORD3>\r
343                         <KEYWORD3>__rtruediv__</KEYWORD3>\r
344                         <KEYWORD3>__rxor__</KEYWORD3>\r
345                         <KEYWORD3>__setattr__</KEYWORD3>\r
346                         <KEYWORD3>__setitem__</KEYWORD3>\r
347                         <KEYWORD3>__setslice__</KEYWORD3>\r
348                         <KEYWORD3>__self__</KEYWORD3>\r
349                         <KEYWORD3>__slots__</KEYWORD3>\r
350                         <KEYWORD3>__str__</KEYWORD3>\r
351                         <KEYWORD3>__sub__</KEYWORD3>\r
352                         <KEYWORD3>__truediv__</KEYWORD3>\r
353                         <KEYWORD3>__version__</KEYWORD3>\r
354                         <KEYWORD3>__xor__</KEYWORD3>\r
355                 </KEYWORDS>\r
356         </RULES>\r
357 \r
358         <!-- rulesets to syntax highlight string interpolation sequences -->\r
359         <RULES SET="LITERAL_ONE" DEFAULT="LITERAL1" ESCAPE="\">\r
360                 <SEQ_REGEXP HASH_CHAR="%" TYPE="LITERAL4">%[.]?\d*[diouxXeEfFgGcrs]</SEQ_REGEXP>\r
361                 <SEQ_REGEXP HASH_CHAR="%(" TYPE="LITERAL4">%\([^)]+\)[+ -]?\d*[diouxXeEfFgGcrs]</SEQ_REGEXP>\r
362         </RULES>\r
363         <!-- triple-quoted strings has its own, since it's LITERAL2 by default -->\r
364         <RULES SET="LITERAL_TWO" DEFAULT="LITERAL2" ESCAPE="\">\r
365                 <SEQ_REGEXP HASH_CHAR="%" TYPE="LITERAL4">%\d*[diouxXeEfFgGcrs]</SEQ_REGEXP>\r
366                 <SEQ_REGEXP HASH_CHAR="%(" TYPE="LITERAL4">%\([^)]+\)[+ -]?\d*[diouxXeEfFgGcrs]</SEQ_REGEXP>\r
367                 <SPAN TYPE="LITERAL3">\r
368                         <BEGIN>B{</BEGIN>\r
369                         <END>}</END>\r
370                 </SPAN>\r
371                 <SPAN TYPE="LITERAL3">\r
372                         <BEGIN>C{</BEGIN>\r
373                         <END>}</END>\r
374                 </SPAN>\r
375                 <SPAN TYPE="LITERAL3">\r
376                         <BEGIN>E{</BEGIN>\r
377                         <END>}</END>\r
378                 </SPAN>\r
379                 <SPAN TYPE="LITERAL3">\r
380                         <BEGIN>I{</BEGIN>\r
381                         <END>}</END>\r
382                 </SPAN>\r
383                 <SPAN TYPE="LITERAL3">\r
384                         <BEGIN>L{</BEGIN>\r
385                         <END>}</END>\r
386                 </SPAN>\r
387                 <!--\r
388                 <EOL_SPAN AT_WHITESPACE_END="TRUE" DELEGATE="python::MAIN" TYPE="LITERAL3">&gt;&gt;&gt;</EOL_SPAN>\r
389                 <EOL_SPAN AT_WHITESPACE_END="TRUE" DELEGATE="python::MAIN" TYPE="LITERAL3">...</EOL_SPAN>\r
390                 -->\r
391                 <EOL_SPAN AT_WHITESPACE_END="TRUE" TYPE="LITERAL3">&gt;&gt;&gt;</EOL_SPAN>\r
392                 <EOL_SPAN AT_WHITESPACE_END="TRUE" TYPE="LITERAL3">...</EOL_SPAN>\r
393                 <MARK_FOLLOWING TYPE="LITERAL3" AT_WHITESPACE_END="TRUE">@</MARK_FOLLOWING>\r
394         </RULES>\r
395 </MODE>\r
396 \r