Warning, /frameworks/syntax-highlighting/data/syntax/python.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language 0003 [ 0004 <!ENTITY digitPart "[0-9](?:_?[0-9])*"> 0005 <!ENTITY beforeDigit "(?<![\.\w[:^ascii:]])"> 0006 <!ENTITY beforePointFloat "(?<![\w[:^ascii:]])"> 0007 0008 <!-- Python 2 style. Syntax: 0009 1. start character '%' 0010 2. [optional] Mapping key, e.g. '(foo)' 0011 3. [optional] Conversion flags, one of '#0- +' 0012 4. [optional] Minimum width, integer or '*' 0013 5. [optional] Precision, '.' followed by integer or '*' 0014 6. [optional] Length modifier, one of 'hlL' 0015 7. conversion type, one of 'crsdiouxXeEfFgG%' 0016 [Special cases: %prog and %default - see http://docs.python.org/library/optparse.html] 0017 --> 0018 <!ENTITY strsubstitution_py2 "%(?:(?:\([a-zA-Z0-9_]+\))?[#0\- +]?(?:[1-9][0-9]*|\*)?(?:\.(?:[1-9][0-9]*|\*))?[hlL]?[crsdiouxXeEfFgG%]|prog|default)"> 0019 <!-- http://docs.python.org/3/library/string.html#format-string-syntax: 0020 replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}" 0021 field_name ::= arg_name ("." attribute_name | "[" element_index "]")* 0022 arg_name ::= [identifier | integer] 0023 attribute_name ::= identifier 0024 element_index ::= integer | index_string 0025 index_string ::= <any source character except "]"> + 0026 conversion ::= "r" | "s" | "a" 0027 format_spec ::= [[fill]align][sign][z][#][0][width][_,][.precision][type] 0028 fill ::= <any character> 0029 align ::= "<" | ">" | "=" | "^" 0030 sign ::= "+" | "-" | " " 0031 width ::= integer 0032 precision ::= integer 0033 type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%" 0034 --> 0035 <!ENTITY format_spec "(?:![rsa])?(?::(?:[^}]?[<>=^])?[ +-]?z?#?0?[0-9]*[_,]?(?:\.[0-9]+)?[bcdeEfFgGnosxX%]?)?"> 0036 <!ENTITY strsubstitution_py3 "\{(?:(?:[a-zA-Z0-9_]+|[0-9]+)(?:\.[a-zA-Z0-9_]+|\[[^ \]]+\])*)?&format_spec;?\}"> 0037 0038 <!ENTITY rawString "(?:ru|u?r|)(?:'(?:[^']++|\\')*+'|"(?:[^"]++|\\")*+")"> 0039 <!ENTITY formatString "(?:r?f|fr?)(?:'(?:[^'{]++|\\'|\{\{|\{[^}]++\})*+'|"(?:[^"]++|\\"|\{\{|\{[^}]*+\})*+")"> 0040 <!ENTITY string "&rawString;|&formatString;"> 0041 ]> 0042 <!-- Python syntax highlightning v0.9 by Per Wigren --> 0043 <!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) --> 0044 <!-- Python syntax highlighting v1.97 by Paul Giannaros --> 0045 <!-- Python syntax highlighting v1.99 by Primoz Anzur --> 0046 <!-- Python syntax highlighting v2.01 by Paul Giannaros: 0047 * full format character support 0048 * unicode string modifier supported --> 0049 <!-- v2.02 remove RegExpr for nums and make indent consistent --> 0050 <!-- v2.03 highlight decorators, remove operator regex, don't highlight parens as operators --> 0051 <!-- v2.04 make alerts visible even if they are directly after ''' or # without a space --> 0052 <!-- v2.06 decorator names can (and often do) contain periods --> 0053 <!-- v2.07 add support for %prog and co, see bug 142832 --> 0054 <!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords --> 0055 <!-- v2.29 recognize escape sequenzes correctly --> 0056 <language name="Python" version="27" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;*.pyi;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license=""> 0057 <highlighting> 0058 <list name="import"> 0059 <item>import</item> 0060 <item>from</item> 0061 <item>as</item> 0062 </list> 0063 <list name="defs"> 0064 <item>class</item> 0065 <item>def</item> 0066 <item>del</item> 0067 <item>global</item> 0068 <item>lambda</item> 0069 <item>nonlocal</item> 0070 </list> 0071 <list name="operators"> 0072 <item>and</item> 0073 <item>in</item> 0074 <item>is</item> 0075 <item>not</item> 0076 <item>or</item> 0077 </list> 0078 <list name="flow"> 0079 <item>assert</item> 0080 <item>break</item> 0081 <item>continue</item> 0082 <item>elif</item> 0083 <item>else</item> 0084 <item>except</item> 0085 <item>finally</item> 0086 <item>for</item> 0087 <item>if</item> 0088 <item>pass</item> 0089 <item>raise</item> 0090 <item>return</item> 0091 <item>try</item> 0092 <item>while</item> 0093 <item>with</item> 0094 <item>async</item> 0095 <item>await</item> 0096 </list> 0097 <list name="flow_yield"> 0098 <item>yield</item> 0099 <!-- 0100 "yield from" added here as a keyword for autocompletion. The actual handling 0101 is in context="yield" so that we won't need to add space as a weakDeliminator. 0102 --> 0103 <item>yield from</item> 0104 </list> 0105 <list name="patternmatching"> 0106 <item>match</item> 0107 <item>case</item> 0108 </list> 0109 <list name="builtinfuncs"> 0110 <!-- https://docs.python.org/3.11/library/functions.html#built-in-funcs --> 0111 <item>__import__</item> 0112 <item>abs</item> 0113 <item>aiter</item> 0114 <item>all</item> 0115 <item>anext</item> 0116 <item>any</item> 0117 <item>apply</item> 0118 <item>ascii</item> 0119 <item>basestring</item> 0120 <item>bin</item> 0121 <item>breakpoint</item> 0122 <item>bool</item> 0123 <item>buffer</item> 0124 <item>bytearray</item> 0125 <item>bytes</item> 0126 <item>callable</item> 0127 <item>chr</item> 0128 <item>classmethod</item> 0129 <item>cmp</item> 0130 <item>coerce</item> 0131 <item>compile</item> 0132 <item>complex</item> 0133 <item>delattr</item> 0134 <item>dict</item> 0135 <item>dir</item> 0136 <item>divmod</item> 0137 <item>enumerate</item> 0138 <item>eval</item> 0139 <item>exec</item> 0140 <item>execfile</item> 0141 <item>file</item> 0142 <item>filter</item> 0143 <item>float</item> 0144 <item>format</item> 0145 <item>frozenset</item> 0146 <item>getattr</item> 0147 <item>globals</item> 0148 <item>hasattr</item> 0149 <item>hash</item> 0150 <item>help</item> 0151 <item>hex</item> 0152 <item>id</item> 0153 <item>input</item> 0154 <item>int</item> 0155 <item>intern</item> 0156 <item>isinstance</item> 0157 <item>issubclass</item> 0158 <item>iter</item> 0159 <item>len</item> 0160 <item>list</item> 0161 <item>locals</item> 0162 <item>long</item> 0163 <item>map</item> 0164 <item>max</item> 0165 <item>memoryview</item> 0166 <item>min</item> 0167 <item>next</item> 0168 <item>object</item> 0169 <item>oct</item> 0170 <item>open</item> 0171 <item>ord</item> 0172 <item>pow</item> 0173 <item>print</item> 0174 <item>property</item> 0175 <item>range</item> 0176 <item>raw_input</item> 0177 <item>reduce</item> 0178 <item>reload</item> 0179 <item>repr</item> 0180 <item>reversed</item> 0181 <item>round</item> 0182 <item>set</item> 0183 <item>setattr</item> 0184 <item>slice</item> 0185 <item>sorted</item> 0186 <item>staticmethod</item> 0187 <item>str</item> 0188 <item>sum</item> 0189 <item>super</item> 0190 <item>tuple</item> 0191 <item>type</item> 0192 <item>unichr</item> 0193 <item>unicode</item> 0194 <item>vars</item> 0195 <item>xrange</item> 0196 <item>zip</item> 0197 </list> 0198 <list name="specialvars"> 0199 <item>None</item> 0200 <item>self</item> 0201 <item>True</item> 0202 <item>False</item> 0203 <item>NotImplemented</item> 0204 <item>Ellipsis</item> 0205 <item>__debug__</item> 0206 <item>__file__</item> 0207 <item>__name__</item> 0208 <item>__qualname__</item> 0209 </list> 0210 <list name="bindings"> 0211 <item>SIGNAL</item> 0212 <item>SLOT</item> 0213 <item>connect</item> 0214 </list> 0215 <list name="overloaders"> 0216 <!-- https://docs.python.org/3.10/reference/datamodel.html#special-method-names --> 0217 <item>__new__</item> 0218 <item>__init__</item> 0219 <item>__del__</item> 0220 <item>__repr__</item> 0221 <item>__str__</item> 0222 <item>__lt__</item> 0223 <item>__le__</item> 0224 <item>__eq__</item> 0225 <item>__ne__</item> 0226 <item>__gt__</item> 0227 <item>__ge__</item> 0228 <item>__cmp__</item> 0229 <item>__rcmp__</item> 0230 <item>__hash__</item> 0231 <item>__bool__</item> 0232 <item>__nonzero__</item> 0233 <item>__unicode__</item> 0234 <item>__getattr__</item> 0235 <item>__setattr__</item> 0236 <item>__delattr__</item> 0237 <item>__getattribute__</item> 0238 <item>__get__</item> 0239 <item>__set__</item> 0240 <item>__delete__</item> 0241 <item>__call__</item> 0242 <item>__len__</item> 0243 <item>__length_hint__</item> 0244 <item>__getitem__</item> 0245 <item>__setitem__</item> 0246 <item>__delitem__</item> 0247 <item>__missing__</item> 0248 <item>__iter__</item> 0249 <item>__reversed__</item> 0250 <item>__contains__</item> 0251 <item>__getslice__</item> 0252 <item>__setslice__</item> 0253 <item>__delslice__</item> 0254 <item>__add__</item> 0255 <item>__sub__</item> 0256 <item>__mul__</item> 0257 <item>__matmul__</item> 0258 <item>__floordiv__</item> 0259 <item>__mod__</item> 0260 <item>__divmod__</item> 0261 <item>__pow__</item> 0262 <item>__lshift__</item> 0263 <item>__rshift__</item> 0264 <item>__and__</item> 0265 <item>__xor__</item> 0266 <item>__or__</item> 0267 <item>__div__</item> 0268 <item>__truediv__</item> 0269 <item>__radd__</item> 0270 <item>__rsub__</item> 0271 <item>__rmul__</item> 0272 <item>__rmatmul__</item> 0273 <item>__rdiv__</item> 0274 <item>__rtruediv__</item> 0275 <item>__rfloordiv__</item> 0276 <item>__rmod__</item> 0277 <item>__rdivmod__</item> 0278 <item>__rpow__</item> 0279 <item>__rlshift__</item> 0280 <item>__rrshift__</item> 0281 <item>__rand__</item> 0282 <item>__rxor__</item> 0283 <item>__ror__</item> 0284 <item>__iadd__</item> 0285 <item>__isub__</item> 0286 <item>__imul__</item> 0287 <item>__imatmul__</item> 0288 <item>__idiv__</item> 0289 <item>__itruediv__</item> 0290 <item>__ifloordiv__</item> 0291 <item>__imod__</item> 0292 <item>__ipow__</item> 0293 <item>__ilshift__</item> 0294 <item>__irshift__</item> 0295 <item>__iand__</item> 0296 <item>__ixor__</item> 0297 <item>__ior__</item> 0298 <item>__neg__</item> 0299 <item>__pos__</item> 0300 <item>__abs__</item> 0301 <item>__invert__</item> 0302 <item>__complex__</item> 0303 <item>__int__</item> 0304 <item>__long__</item> 0305 <item>__float__</item> 0306 <item>__oct__</item> 0307 <item>__hex__</item> 0308 <item>__index__</item> 0309 <item>__round__</item> 0310 <item>__trunc__</item> 0311 <item>__floor__</item> 0312 <item>__ceil__</item> 0313 <item>__coerce__</item> 0314 <item>__enter__</item> 0315 <item>__exit__</item> 0316 <item>__match_args__</item> 0317 <item>__buffer__</item> 0318 <item>__release_buffer__</item> 0319 <item>__bytes__</item> 0320 <item>__format__</item> 0321 <item>__next__</item> 0322 <item>__dir__</item> 0323 <item>__await__</item> 0324 <item>__aiter__</item> 0325 <item>__anext__</item> 0326 <item>__aenter__</item> 0327 <item>__aexit__</item> 0328 <item>__slots__</item> 0329 <item>__init_subclass__</item> 0330 <item>__set_name__</item> 0331 <item>__prepare__</item> 0332 <item>__instancecheck__</item> 0333 <item>__subclasscheck__</item> 0334 <item>__class_getitem__</item> 0335 </list> 0336 <list name="exceptions"> 0337 <!-- 0338 Exceptions list resources used: 0339 - http://docs.python.org/2.7/library/exceptions.html#exception-hierarchy 0340 - http://docs.python.org/3.10/library/exceptions.html#exception-hierarchy 0341 --> 0342 <item>ArithmeticError</item> 0343 <item>AssertionError</item> 0344 <item>AttributeError</item> 0345 <item>BaseException</item> 0346 <item>BlockingIOError</item> 0347 <item>BrokenPipeError</item> 0348 <item>BufferError</item> 0349 <item>BytesWarning</item> 0350 <item>ChildProcessError</item> 0351 <item>ConnectionAbortedError</item> 0352 <item>ConnectionError</item> 0353 <item>ConnectionRefusedError</item> 0354 <item>ConnectionResetError</item> 0355 <item>DeprecationWarning</item> 0356 <item>EnvironmentError</item> 0357 <item>EOFError</item> 0358 <item>EncodingWarning</item> 0359 <item>Exception</item> 0360 <item>FileExistsError</item> 0361 <item>FileNotFoundError</item> 0362 <item>FloatingPointError</item> 0363 <item>FutureWarning</item> 0364 <item>GeneratorExit</item> 0365 <item>ImportError</item> 0366 <item>ImportWarning</item> 0367 <item>IndentationError</item> 0368 <item>IndexError</item> 0369 <item>InterruptedError</item> 0370 <item>IOError</item> 0371 <item>IsADirectoryError</item> 0372 <item>KeyboardInterrupt</item> 0373 <item>KeyError</item> 0374 <item>LookupError</item> 0375 <item>MemoryError</item> 0376 <item>ModuleNotFoundError</item> 0377 <item>NameError</item> 0378 <item>NotADirectoryError</item> 0379 <item>NotImplementedError</item> 0380 <item>OSError</item> 0381 <item>OverflowError</item> 0382 <item>PendingDeprecationWarning</item> 0383 <item>PermissionError</item> 0384 <item>ProcessLookupError</item> 0385 <item>RecursionError</item> 0386 <item>ReferenceError</item> 0387 <item>ResourceWarning</item> 0388 <item>RuntimeError</item> 0389 <item>RuntimeWarning</item> 0390 <item>StandardError</item> 0391 <item>StopAsyncIteration</item> 0392 <item>StopIteration</item> 0393 <item>SyntaxError</item> 0394 <item>SyntaxWarning</item> 0395 <item>SystemError</item> 0396 <item>SystemExit</item> 0397 <item>TabError</item> 0398 <item>TimeoutError</item> 0399 <item>TypeError</item> 0400 <item>UnboundLocalError</item> 0401 <item>UnicodeDecodeError</item> 0402 <item>UnicodeEncodeError</item> 0403 <item>UnicodeError</item> 0404 <item>UnicodeTranslateError</item> 0405 <item>UnicodeWarning</item> 0406 <item>UserWarning</item> 0407 <item>ValueError</item> 0408 <item>Warning</item> 0409 <item>WindowsError</item> 0410 <item>ZeroDivisionError</item> 0411 </list> 0412 <contexts> 0413 <context name="Normal" attribute="Normal Text" lineEndContext="#stay"> 0414 <DetectSpaces attribute="Normal Text"/> 0415 0416 <DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/> 0417 <DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/> 0418 <DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/> 0419 0420 <DetectChar attribute="Comment" char="#" context="Hash comment"/> 0421 0422 <keyword attribute="Special Variable" String="specialvars" context="#stay"/> 0423 <keyword attribute="Flow Control Keyword" String="flow" context="#stay"/> 0424 <keyword attribute="Operator Keyword" String="operators" context="#stay"/> 0425 <keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/> 0426 <keyword attribute="Definition Keyword" String="defs" context="#stay"/> 0427 <keyword attribute="Flow Control Keyword" String="flow_yield" context="yield"/> 0428 <keyword attribute="Flow Control Keyword" String="patternmatching" context="Pattern Matching" lookAhead="1" firstNonSpace="1"/> 0429 <keyword attribute="Import" String="import" context="#stay"/> 0430 <keyword attribute="Exceptions" String="exceptions" context="#stay"/> 0431 <keyword attribute="Overloaders" String="overloaders" context="#stay"/> 0432 <keyword attribute="Extensions" String="bindings" context="#stay"/> 0433 0434 <IncludeRules context="Number" /> 0435 <IncludeRules context="CommentVariants" /> 0436 <IncludeRules context="StringVariants" /> 0437 0438 <DetectIdentifier attribute="Normal Text"/> 0439 0440 <RegExpr attribute="Decorator" String="@[_a-zA-Z[:^ascii:]][\._a-zA-Z0-9[:^ascii:]]*" firstNonSpace="true"/> 0441 <Detect2Chars attribute="Operator" char=":" char1="=" context="#stay"/> 0442 <AnyChar attribute="Operator" String="+*/%|=;<>!^&~-@" context="#stay"/> 0443 0444 <LineContinue attribute="Operator" context="MultiLineExpr"/> 0445 0446 <Int attribute="Error"/> 0447 </context> 0448 <context name="MultiLineExpr" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0449 <DetectSpaces attribute="Normal Text"/> 0450 <IncludeRules context="StringVariants" /> 0451 </context> 0452 0453 <!-- https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals --> 0454 <!-- https://docs.python.org/3/reference/lexical_analysis.html#integer-literals --> 0455 <context name="Number" attribute="Normal Text" lineEndContext="#pop"> 0456 <!-- fast path --> 0457 <RegExpr String="&beforeDigit;[0-9]|&beforePointFloat;\.[0-9]" context="AssumeNumber" lookAhead="1"/> 0458 </context> 0459 <context name="AssumeNumber" attribute="Normal Text" lineEndContext="#pop"> 0460 <!-- Complex: 1j ; 1.1j ; 1.j ; .1j ; 1e3j ; 1.1e3j ; 1.e3j ; .1e3j --> 0461 <RegExpr attribute="Complex" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|&beforePointFloat;\.&digitPart;)(?:[eE][\+\-]?&digitPart;)?[jJ]" context="CheckSuffixError"/> 0462 <!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 --> 0463 <RegExpr attribute="Hex" String="0[xX](?:_?[0-9a-fA-F])+" context="CheckSuffixError"/> 0464 <RegExpr attribute="Binary" String="0[bB](?:_?[01])+" context="CheckSuffixError"/> 0465 <RegExpr attribute="Octal" String="0[oO](?:_?[0-7])+" context="CheckSuffixError"/> 0466 <!-- Float: 1.1 ; 1. ; .1 ; 1e3 ; 1.1e3 ; 1.e3 ; .1e3 --> 0467 <RegExpr attribute="Float" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|\.&digitPart;)[eE][\+\-]?&digitPart;|&digitPart;\.(?:&digitPart;)?|\.&digitPart;" context="CheckSuffixError"/> 0468 <!-- Decimal: 123 ; 000 --> 0469 <!-- l and L are python2 suffixes --> 0470 <RegExpr attribute="Int" String="(?:[1-9](?:_?\d)*|0(?:_?0)*)[lL]?" context="CheckSuffixError"/> 0471 </context> 0472 <context name="CheckSuffixError" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 0473 <RegExpr attribute="Error" String="[\w\d]+" context="#pop#pop"/> 0474 </context> 0475 0476 <context name="yield" attribute="Flow Control Keyword" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0477 <DetectSpaces attribute="Normal Text" context="#stay"/> 0478 <WordDetect attribute="Flow Control Keyword" context="#pop" String="from"/> 0479 </context> 0480 0481 <context name="Pattern Matching" attribute="Flow Control Keyword" lineEndContext="#pop"> 0482 <!-- 0483 Python 3.10: https://docs.python.org/3.10/reference/compound_stmts.html#the-match-statement 0484 ( 'match' | 'case' ) expression ':' 0485 exclude: 0486 ( 'match' | 'case' ) ( 'if' | 'for' | '.' | ':' | '=' | ',' | ']' | ')' ) ... 0487 --> 0488 <RegExpr attribute="Flow Control Keyword" String="\w++(?=\s+(?!(?:if|for)\b)[\w'"~]|\s*+(?![.:=\]),]|(?:if|for)\b)((?:&string;|[^#;(){}]|\(\)|\((?1)\)|\{\}|\{(\s*+(?:(?:&string;|[a-zA-Z0-9.]++)\s*+:\s*+(?:&string;|[^#;(){},]|\(\)|\((?1)\)|\{\}|\{(?2)\})++,?)*+)\})+?):)|" context="#pop"/> 0489 <DetectIdentifier attribute="Normal Text" context="#pop"/> 0490 </context> 0491 0492 <context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0493 <DetectSpaces/> 0494 <LineContinue attribute="Normal Text" context="#pop!CheckForStringNext"/> 0495 </context> 0496 0497 <context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0498 <DetectSpaces/> 0499 <LineContinue attribute="Normal Text" context="#stay"/> 0500 <IncludeRules context="StringVariants"/> 0501 </context> 0502 0503 <!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals --> 0504 <!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals --> 0505 <context name="StringVariants" attribute="Normal Text" lineEndContext="#stay"> 0506 <!-- fast path --> 0507 <RegExpr String="(?:u|r|b|f|ur|fr|rf|br|rb)?['"]" insensitive="true" context="AssumeStringVariants" lookAhead="1"/> 0508 </context> 0509 <context name="AssumeStringVariants" attribute="Normal Text" lineEndContext="#stay"> 0510 <RegExpr attribute="String" String="u?'''" insensitive="true" context="#pop!Triple A-string" beginRegion="Triple A-region"/> 0511 <RegExpr attribute="String" String="u?"""" insensitive="true" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/> 0512 <RegExpr attribute="String" String="u?'" insensitive="true" context="#pop!Single A-string"/> 0513 <RegExpr attribute="String" String="u?"" insensitive="true" context="#pop!Single Q-string"/> 0514 0515 <StringDetect attribute="F-String" String="f'''" insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/> 0516 <StringDetect attribute="F-String" String="f"""" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/> 0517 <StringDetect attribute="F-String" String="f'" insensitive="true" context="#pop!Single A-F-String"/> 0518 <StringDetect attribute="F-String" String="f"" insensitive="true" context="#pop!Single Q-F-String"/> 0519 0520 <RegExpr attribute="Raw String" String="u?r'''" insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/> 0521 <RegExpr attribute="Raw String" String="u?r"""" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/> 0522 <RegExpr attribute="Raw String" String="u?r'" insensitive="true" context="#pop!Raw A-string"/> 0523 <RegExpr attribute="Raw String" String="u?r"" insensitive="true" context="#pop!Raw Q-string"/> 0524 0525 <RegExpr attribute="Raw F-String" String="(?:fr|rf)'''" insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/> 0526 <RegExpr attribute="Raw F-String" String="(?:fr|rf)"""" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/> 0527 <RegExpr attribute="Raw F-String" String="(?:fr|rf)'" insensitive="true" context="#pop!Raw A-F-String"/> 0528 <RegExpr attribute="Raw F-String" String="(?:fr|rf)"" insensitive="true" context="#pop!Raw Q-F-String"/> 0529 0530 <StringDetect attribute="B-String" String="b'''" insensitive="true" context="#pop!Triple A-B-String" beginRegion="Triple A-region"/> 0531 <StringDetect attribute="B-String" String="b"""" insensitive="true" context="#pop!Triple Q-B-String" beginRegion="Triple Q-region"/> 0532 <StringDetect attribute="B-String" String="b'" insensitive="true" context="#pop!Single A-B-String"/> 0533 <StringDetect attribute="B-String" String="b"" insensitive="true" context="#pop!Single Q-B-String"/> 0534 0535 <RegExpr attribute="Raw B-String" String="(?:br|rb)'''" insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/> 0536 <RegExpr attribute="Raw B-String" String="(?:br|rb)"""" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/> 0537 <RegExpr attribute="Raw B-String" String="(?:br|rb)'" insensitive="true" context="#pop!Raw A-B-String"/> 0538 <RegExpr attribute="Raw B-String" String="(?:br|rb)"" insensitive="true" context="#pop!Raw Q-B-String"/> 0539 </context> 0540 0541 <!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals --> 0542 <!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals --> 0543 <context name="CommentVariants" attribute="Normal Text" lineEndContext="#stay"> 0544 <!-- fast path --> 0545 <RegExpr String="(?:u|r|ur)?['"]" insensitive="true" firstNonSpace="true" context="AssumeCommentVariants" lookAhead="1"/> 0546 </context> 0547 <context name="AssumeCommentVariants" attribute="Normal Text" lineEndContext="#stay"> 0548 <RegExpr attribute="Comment" String="(?:u?r?)'''" insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/> 0549 <RegExpr attribute="Comment" String="(?:u?r?)"""" insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/> 0550 <RegExpr attribute="Comment" String="(?:u?r?)'" insensitive="true" context="#pop!Single A-comment"/> 0551 <RegExpr attribute="Comment" String="(?:u?r?)"" insensitive="true" context="#pop!Single Q-comment"/> 0552 </context> 0553 0554 <context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true"> 0555 <DetectSpaces/> 0556 <DetectChar attribute="Normal Text" char="}" context="#pop" endRegion="Dictionary"/> 0557 <IncludeRules context="StringVariants" /> 0558 <IncludeRules context="Normal" /> 0559 </context> 0560 0561 <context name="List" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true"> 0562 <DetectSpaces/> 0563 <DetectChar attribute="Normal Text" char="]" context="#pop" endRegion="List"/> 0564 <IncludeRules context="StringVariants" /> 0565 <IncludeRules context="Normal" /> 0566 </context> 0567 0568 <context name="Tuple" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true"> 0569 <DetectSpaces/> 0570 <DetectChar attribute="Normal Text" char=")" context="#pop" endRegion="Tuple"/> 0571 <IncludeRules context="StringVariants" /> 0572 <IncludeRules context="Normal" /> 0573 </context> 0574 0575 <context name="UnfinishedStringError" attribute="Error" lineEndContext="#stay" noIndentationBasedFolding="true"> 0576 <!-- A single string/comment reached the end of the line without a \ line escape --> 0577 <!-- We set the following line (or part of it) to the "Error" attribute so that this error is easier to spot --> 0578 <RegExpr attribute="Error" String="^(\s{4,}|[^[\]()"']{4,}(["'].*)?)" context="#pop" column="0"/> 0579 </context> 0580 0581 <!-- Comments --> 0582 0583 <context name="Hash comment" attribute="Comment" lineEndContext="#pop"> 0584 <DetectSpaces /> 0585 <IncludeRules context="##Comments" /> 0586 <DetectIdentifier/> 0587 </context> 0588 0589 <context name="Triple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true"> 0590 <DetectSpaces/> 0591 <StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Triple A-region"/> 0592 <IncludeRules context="##Comments" /> 0593 <DetectIdentifier/> 0594 <IncludeRules context="stringescape"/> 0595 <LineContinue attribute="String Char" context="#stay"/> 0596 </context> 0597 0598 <context name="Triple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true"> 0599 <DetectSpaces/> 0600 <StringDetect attribute="Comment" String=""""" context="#pop" endRegion="Triple Q-region"/> 0601 <IncludeRules context="##Comments" /> 0602 <DetectIdentifier/> 0603 <IncludeRules context="stringescape"/> 0604 <LineContinue attribute="String Char" context="#stay"/> 0605 </context> 0606 0607 <context name="Single A-comment" attribute="Comment" lineEndContext="#pop!UnfinishedStringError"> 0608 <DetectSpaces/> 0609 <DetectChar attribute="Comment" char="'" context="#pop"/> 0610 <IncludeRules context="##Comments" /> 0611 <DetectIdentifier/> 0612 <IncludeRules context="stringescape"/> 0613 <LineContinue attribute="String Char" context="#stay"/> 0614 </context> 0615 0616 <context name="Single Q-comment" attribute="Comment" lineEndContext="#pop!UnfinishedStringError"> 0617 <DetectSpaces/> 0618 <DetectChar attribute="Comment" char=""" context="#pop"/> 0619 <IncludeRules context="##Comments" /> 0620 <DetectIdentifier/> 0621 <IncludeRules context="stringescape"/> 0622 <LineContinue attribute="String Char" context="#stay"/> 0623 </context> 0624 0625 <!-- Strings --> 0626 0627 <!-- format characters --> 0628 <context name="stringformat" attribute="String Substitution" lineEndContext="#stay"> 0629 <RegExpr attribute="String Substitution" String="&strsubstitution_py2;|&strsubstitution_py3;" context="#stay"/> 0630 <Detect2Chars attribute="String Substitution" char="{" char1="{" context="#stay" /> 0631 <Detect2Chars attribute="String Substitution" char="}" char1="}" context="#stay" /> 0632 </context> 0633 0634 <!-- escape characters --> 0635 <context name="stringescape" attribute="String Char" lineEndContext="#stay"> 0636 <!-- As this highlighting style is for both, Python 2 and 3, 0637 we do not know if a normal string is “unicode” or not. So we 0638 --> 0639 <RegExpr attribute="String Char" String="\\[\\'"abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8}|\\N\{[a-zA-Z0-9\- ]+\}" context="#stay"/> 0640 </context> 0641 0642 <!-- escape characters --> 0643 <context name="bytesescape" attribute="String Char" lineEndContext="#stay"> 0644 <!-- As this highlighting style is for both, Python 2 and 3, 0645 we do not know if a normal string is “unicode” or not. So we 0646 --> 0647 <RegExpr attribute="String Char" String="\\[\\'"abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}" context="#stay"/> 0648 </context> 0649 0650 <!-- f-literals --> 0651 <context name="stringinterpolation" attribute="F-String" lineEndContext="#stay"> 0652 <Detect2Chars attribute="String Char" char="{" char1="{" context="#stay"/> 0653 <DetectChar attribute="String Substitution" char="{" context="String Interpolation"/> 0654 <Detect2Chars attribute="String Char" char="}" char1="}" context="#stay"/> 0655 <DetectChar attribute="Error" char="}" context="#stay"/> 0656 </context> 0657 <context name="String Interpolation" attribute="String Substitution" lineEndContext="#stay"> 0658 <DetectChar attribute="Error" char="\" context="#pop"/> 0659 <RegExpr attribute="String Substitution" String="&format_spec;\}" context="#pop"/> 0660 <IncludeRules context="Normal"/> <!-- TODO: create expression context instead --> 0661 </context> 0662 0663 0664 <!-- 0665 It follows a Binary tree of string kinds (not even touching byte literals). 0666 The levels are: 0667 1. triple- vs. single-quoted 0668 2. apostrophe vs. quotation mark 0669 3. static vs. interpolated (f-literal) 0670 4. escaped vs. raw 0671 Adding byte literals wouldn’t make the current 2⁴ into 2⁵ contexts, as there are no byte f-literals 0672 --> 0673 0674 <!-- Triple-quoted A-strings --> 0675 <context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0676 <DetectSpaces attribute="String"/> 0677 <DetectIdentifier attribute="String"/> 0678 <IncludeRules context="stringescape"/> 0679 <IncludeRules context="stringformat"/> 0680 <StringDetect attribute="String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0681 <LineContinue attribute="String Char" context="#stay"/> 0682 </context> 0683 0684 <context name="Raw Triple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0685 <DetectSpaces attribute="Raw String"/> 0686 <DetectIdentifier attribute="Raw String"/> 0687 <Detect2Chars attribute="Raw String" char="\" char1="'"/> 0688 <Detect2Chars attribute="Raw String" char="\" char1="\"/> 0689 <IncludeRules context="stringformat"/> 0690 <StringDetect attribute="Raw String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0691 </context> 0692 0693 <context name="Triple A-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0694 <DetectSpaces attribute="F-String"/> 0695 <DetectIdentifier attribute="F-String"/> 0696 <IncludeRules context="stringescape"/> 0697 <IncludeRules context="stringinterpolation"/> 0698 <StringDetect attribute="F-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0699 <LineContinue attribute="String Char" context="#stay"/> 0700 </context> 0701 0702 <context name="Raw Triple A-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0703 <DetectSpaces attribute="Raw F-String"/> 0704 <DetectIdentifier attribute="Raw F-String"/> 0705 <Detect2Chars attribute="Raw F-String" char="\" char1="'"/> 0706 <Detect2Chars attribute="Raw F-String" char="\" char1="\"/> 0707 <IncludeRules context="stringinterpolation"/> 0708 <StringDetect attribute="Raw F-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0709 </context> 0710 0711 <context name="Triple A-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0712 <RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'"abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|'(?!''))++"/> 0713 <IncludeRules context="bytesescape"/> 0714 <StringDetect attribute="B-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0715 <LineContinue attribute="String Char" context="#stay"/> 0716 <RegExpr attribute="Error" String="."/> 0717 </context> 0718 0719 <context name="Raw Triple A-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0720 <RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?|'(?!''))++"/> 0721 <StringDetect attribute="Raw B-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0722 <RegExpr attribute="Error" String="."/> 0723 </context> 0724 0725 <!-- Triple-quoted Q-strings --> 0726 <context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0727 <DetectSpaces attribute="String"/> 0728 <DetectIdentifier attribute="String"/> 0729 <IncludeRules context="stringescape"/> 0730 <IncludeRules context="stringformat"/> 0731 <StringDetect attribute="String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0732 <LineContinue attribute="String Char" context="#stay"/> 0733 </context> 0734 0735 <context name="Raw Triple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0736 <DetectSpaces attribute="Raw String"/> 0737 <DetectIdentifier attribute="Raw String"/> 0738 <Detect2Chars attribute="Raw String" char="\" char1="""/> 0739 <Detect2Chars attribute="Raw String" char="\" char1="\"/> 0740 <IncludeRules context="stringformat"/> 0741 <StringDetect attribute="Raw String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0742 </context> 0743 0744 <context name="Triple Q-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0745 <DetectSpaces attribute="F-String"/> 0746 <DetectIdentifier attribute="F-String"/> 0747 <IncludeRules context="stringescape"/> 0748 <IncludeRules context="stringinterpolation"/> 0749 <StringDetect attribute="F-String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0750 <LineContinue attribute="String Char" context="#stay"/> 0751 </context> 0752 0753 <context name="Raw Triple Q-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0754 <DetectSpaces attribute="Raw F-String"/> 0755 <DetectIdentifier attribute="Raw F-String"/> 0756 <Detect2Chars attribute="Raw F-String" char="\" char1="""/> 0757 <Detect2Chars attribute="Raw F-String" char="\" char1="\"/> 0758 <IncludeRules context="stringinterpolation"/> 0759 <StringDetect attribute="Raw F-String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0760 </context> 0761 0762 <context name="Triple Q-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0763 <RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\(?=[^\\'"abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|"(?!""))++"/> 0764 <IncludeRules context="bytesescape"/> 0765 <StringDetect attribute="B-String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0766 <LineContinue attribute="String Char" context="#stay"/> 0767 <RegExpr attribute="Error" String="."/> 0768 </context> 0769 0770 <context name="Raw Triple Q-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0771 <RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.?|"(?!""))++"/> 0772 <StringDetect attribute="Raw B-String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0773 <RegExpr attribute="Error" String="."/> 0774 </context> 0775 0776 0777 <!-- Single-quoted A-strings --> 0778 <context name="Single A-string" attribute="String" lineEndContext="#pop!UnfinishedStringError"> 0779 <DetectSpaces attribute="String"/> 0780 <DetectIdentifier attribute="String"/> 0781 <IncludeRules context="stringescape"/> 0782 <IncludeRules context="stringformat"/> 0783 <DetectChar attribute="String" char="'" context="#pop!#CheckForString"/> 0784 <LineContinue attribute="String Char" context="#stay"/> 0785 </context> 0786 0787 <context name="Raw A-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError"> 0788 <DetectSpaces attribute="Raw String"/> 0789 <DetectIdentifier attribute="Raw String"/> 0790 <Detect2Chars attribute="Raw String" char="\" char1="'"/> 0791 <Detect2Chars attribute="Raw String" char="\" char1="\"/> 0792 <IncludeRules context="stringformat"/> 0793 <DetectChar attribute="Raw String" char="'" context="#pop!#CheckForString"/> 0794 <LineContinue attribute="Raw String" context="#stay"/> 0795 </context> 0796 0797 <context name="Single A-F-String" attribute="F-String" lineEndContext="#pop!UnfinishedStringError"> 0798 <DetectSpaces attribute="F-String"/> 0799 <DetectIdentifier attribute="F-String"/> 0800 <IncludeRules context="stringescape"/> 0801 <IncludeRules context="stringinterpolation"/> 0802 <DetectChar attribute="F-String" char="'" context="#pop!#CheckForString"/> 0803 <LineContinue attribute="String Char" context="#stay"/> 0804 </context> 0805 0806 <context name="Raw A-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError"> 0807 <DetectSpaces attribute="Raw F-String"/> 0808 <DetectIdentifier attribute="Raw F-String"/> 0809 <Detect2Chars attribute="Raw F-String" char="\" char1="'"/> 0810 <Detect2Chars attribute="Raw F-String" char="\" char1="\"/> 0811 <IncludeRules context="stringinterpolation"/> 0812 <DetectChar attribute="Raw F-String" char="'" context="#pop!#CheckForString"/> 0813 <LineContinue attribute="Raw F-String" context="#stay"/> 0814 </context> 0815 0816 <context name="Single A-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError"> 0817 <RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'"abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2}))++"/> 0818 <IncludeRules context="bytesescape"/> 0819 <DetectChar attribute="B-String" char="'" context="#pop!#CheckForString"/> 0820 <LineContinue attribute="String Char" context="#stay"/> 0821 <RegExpr attribute="Error" String="."/> 0822 </context> 0823 0824 <context name="Raw A-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError"> 0825 <RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.)++"/> 0826 <DetectChar attribute="Raw B-String" char="'" context="#pop!#CheckForString"/> 0827 <LineContinue attribute="Raw B-String" context="#stay"/> 0828 <RegExpr attribute="Error" String="."/> 0829 </context> 0830 0831 <!-- Single-quoted Q-strings --> 0832 <context name="Single Q-string" attribute="String" lineEndContext="#pop!UnfinishedStringError"> 0833 <DetectSpaces attribute="String"/> 0834 <DetectIdentifier attribute="String"/> 0835 <IncludeRules context="stringescape"/> 0836 <IncludeRules context="stringformat"/> 0837 <DetectChar attribute="String" char=""" context="#pop!#CheckForString"/> 0838 <LineContinue attribute="String Char" context="#stay"/> 0839 </context> 0840 0841 <context name="Raw Q-string" attribute="Raw String" lineEndContext="#pop!UnfinishedStringError"> 0842 <DetectSpaces attribute="Raw String"/> 0843 <DetectIdentifier attribute="Raw String"/> 0844 <Detect2Chars attribute="Raw String" char="\" char1="""/> 0845 <Detect2Chars attribute="Raw String" char="\" char1="\"/> 0846 <IncludeRules context="stringformat"/> 0847 <DetectChar attribute="Raw String" char=""" context="#pop!#CheckForString"/> 0848 <LineContinue attribute="Raw String" context="#stay"/> 0849 </context> 0850 0851 <context name="Single Q-F-String" attribute="F-String" lineEndContext="#pop!UnfinishedStringError"> 0852 <DetectSpaces attribute="F-String"/> 0853 <DetectIdentifier attribute="F-String"/> 0854 <IncludeRules context="stringescape"/> 0855 <IncludeRules context="stringinterpolation"/> 0856 <DetectChar attribute="F-String" char=""" context="#pop!#CheckForString"/> 0857 <LineContinue attribute="String Char" context="#stay"/> 0858 </context> 0859 0860 <context name="Raw Q-F-String" attribute="Raw F-String" lineEndContext="#pop!UnfinishedStringError"> 0861 <DetectSpaces attribute="Raw F-String"/> 0862 <DetectIdentifier attribute="Raw F-String"/> 0863 <Detect2Chars attribute="Raw F-String" char="\" char1="""/> 0864 <Detect2Chars attribute="Raw F-String" char="\" char1="\"/> 0865 <IncludeRules context="stringinterpolation"/> 0866 <DetectChar attribute="Raw F-String" char=""" context="#pop!#CheckForString"/> 0867 <LineContinue attribute="Raw F-String" context="#stay"/> 0868 </context> 0869 0870 <context name="Single Q-B-String" attribute="B-String" lineEndContext="#pop!UnfinishedStringError"> 0871 <RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\(?=[^\\'"abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2}))++"/> 0872 <IncludeRules context="bytesescape"/> 0873 <DetectChar attribute="B-String" char=""" context="#pop!#CheckForString"/> 0874 <LineContinue attribute="String Char" context="#stay"/> 0875 <RegExpr attribute="Error" String="."/> 0876 </context> 0877 0878 <context name="Raw Q-B-String" attribute="Raw B-String" lineEndContext="#pop!UnfinishedStringError"> 0879 <RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.)++"/> 0880 <DetectChar attribute="Raw B-String" char=""" context="#pop!#CheckForString"/> 0881 <Detect2Chars attribute="Raw B-String" char="\" char1="\"/> 0882 <LineContinue attribute="Raw B-String" context="#stay"/> 0883 <RegExpr attribute="Error" String="."/> 0884 </context> 0885 0886 </contexts> 0887 0888 <itemDatas> 0889 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/> 0890 <itemData name="Definition Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 0891 <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/> 0892 <itemData name="Operator Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 0893 <itemData name="Flow Control Keyword" defStyleNum="dsControlFlow" spellChecking="false"/> 0894 <itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/> 0895 <itemData name="Special Variable" defStyleNum="dsVariable" spellChecking="false"/> 0896 <itemData name="Extensions" defStyleNum="dsExtension" spellChecking="false"/> 0897 <itemData name="Exceptions" defStyleNum="dsPreprocessor" spellChecking="false"/> 0898 <itemData name="Overloaders" defStyleNum="dsFunction" spellChecking="false"/> 0899 <itemData name="Import" defStyleNum="dsImport" spellChecking="false"/> 0900 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> 0901 <itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/> 0902 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> 0903 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/> 0904 <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/> 0905 <itemData name="Complex" defStyleNum="dsOthers" spellChecking="false"/> 0906 <itemData name="Comment" defStyleNum="dsComment"/> 0907 <itemData name="String" defStyleNum="dsString"/> 0908 <itemData name="Raw String" defStyleNum="dsVerbatimString"/> 0909 <itemData name="F-String" defStyleNum="dsSpecialString"/> 0910 <itemData name="Raw F-String" defStyleNum="dsVerbatimString"/> 0911 <itemData name="B-String" defStyleNum="dsString" spellChecking="false"/> 0912 <itemData name="Raw B-String" defStyleNum="dsVerbatimString" spellChecking="false"/> 0913 <itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/> 0914 <itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/> 0915 <itemData name="Decorator" defStyleNum="dsAttribute" spellChecking="false"/> 0916 <itemData name="Error" defStyleNum="dsError"/> 0917 </itemDatas> 0918 </highlighting> 0919 <general> 0920 <folding indentationsensitive="1" /> 0921 <emptyLines> 0922 <emptyLine regexpr="(?:\s+|\s*#.*)"/> 0923 </emptyLines> 0924 <comments> 0925 <comment name="singleLine" start="#" position="afterwhitespace"/> 0926 </comments> 0927 <keywords casesensitive="1" additionalDeliminator="#'"/> 0928 </general> 0929 </language> 0930 0931 <!-- kate: space-indent off; indent-width 2; -->