Warning, /frameworks/syntax-highlighting/data/syntax/d.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language [
0003 <!ENTITY hexfloat "0[xX][\da-fA-F_]*(?:\.[\da-fA-F_]*)?[pP][-+]?\d[\d_]*[fFL]?i?">
0004 <!-- Float starting with a dot is matched in main context -->
0005 <!-- All floats except integers -->
0006 <!-- RegExpr is branched rather than using look aheads for efficiency at the expense of extra length -->
0007 <!ENTITY float "\d[_\d]*(?:\.(?!\.)[_\d]*(?:[eE][-+]?\d[_\d]*)?[fFL]?i?|[eE][-+]?\d[_\d]*[fFL]?i?|[fF]i?|[fFL]?i)">
0008 ]>
0009 <!--
0010 ========================================================================
0011
0012 D.XML supports syntax highlighting for the D programming language under Kate.
0013
0014 Updated 2007-2008 - Diggory Hardy <diggory.hardy@gmail.com> (copyright kate project).
0015 Copyright (C) 2007 - Aziz Köksal <aziz.koeksal@gmail.com>
0016 Copyright (C) 2007 - Jari-Matti Mäkelä <jmjm@iki.fi>
0017 Copyright (C) 2004 - Simon J Mackenzie <project.katedxml@smackoz.fastmail.fm>
0018
0019 This code is released under the LGPL as part of kdelibs/kate.
0020
0021 ========================================================================
0022
0023 D is a next generation language written by Walter Bright of Digital Mars fame.
0024 Digital Mars C, C++ and D Compilers can be obtained from http://www.digitalmars.com/d/
0025
0026 ========================================================================
0027
0028 UPDATE HISTORY:-
0029 2008.09.22 - d.xml 1.61 - D 1.035/2.019 - Fix for identifiers starting _ and containing numbers.
0030 2008.08.01 - d.xml 1.60 - D 1.033/2.017 - Merging ddoc.xml 1.14 since there is no advantage to having it separate.
0031 2008.07.14 - uncommited - Added properties: .tupleof, .offsetof
0032 2008.06.14 - D.XML 1.53 - D 1.030/2.014 - Added user keyword highlighting.
0033 2008.06.06 - D.XML 1.53 - D 1.030/2.014 - Small fix involving floats starting . in embedded Ddoc.
0034 - Added nothrow and pure attributes (D2.0 only).
0035 2008.04.09 - D.XML 1.52 - D 1.028/2.012 - Added properties (especially for arrays).
0036 - Added rules for C-Style indenter (thanks vektorboson!)
0037 2008.02.22 - D.XML 1.51 - D 1.027/2.011 - Changed char rule behaviour on line end.
0038 - Added support for strings ending with c, w or d (must have got lost at some point).
0039 2008.02.22 - ddoc.xml 1.14 - Fixes/improvements for macros. Highlights first symbol and non-symbols
0040 before as errors; matches embedded brackets () properly.
0041 2008.01.09 - D.XML 1.50 - D 1.025/2.009 - Changed pragma, version, deprecated matching to use keyword not DetectString.
0042 2007.12.18 - D.XML 1.49 - D 1.025/2.009 - Fixed some bugs to make the StartingLetter context exit correctly and match identifiers properly.
0043 2007.12.12 - D.XML 1.48 - D 1.024/2.008 - Adjusted existing contexts somewhat (mostly cleanup).
0044 - Implemented scope context to hightlight exit in scope(exit) etc.
0045 - Adjusted deprecated keyword highlighting.
0046 - Changed layout somewhat.
0047 - Implemented extra highlighting rules for expressions, attributes, etc.
0048 - Changed a lot of colours.
0049 2007.11.15 - D.XML 1.47 - D 1.023/2.007 - Fixed a few unapperent "bugs" found by checkdtd.
0050 2007.11.15 - ddoc.xml 1.13 - Fixed a couple of bugs found by checkdtd and changed the version number format.
0051 2007.11.5 - ddoc.xml 1.12 - Fixed: correct matching of things like /***/ .
0052 2007.10.11 - ddoc.xml 1.11 - Safety catch: check for unterminated code sections (i.e. check for end of
0053 ddoc comment even in code sections).
0054 - Used DetectIdentifier to (presumably) improve performance.
0055 2007.10.09 - uncommited - ditto - Changed some context="#pop" tags to context="#stay" within the normal
0056 context (bugfix for ddoc embedded code highlighting).
0057 2007.10.9 - ddoc.xml 1.10 - Enabled embedded ddoc code highlighting
0058 2007.10.9 - ddoc.xml 1.00 - Initial version
0059 2007.10.08 - D.XML 1.46 - D 1.022/2.005 - Stole Alert and Region Marker highlighting from C++ syntax.
0060 - Added support for DDoc highlighting.
0061 - Reviewed the float regexps again! Tried to make the best of both versions.
0062 2007.09.17 - D.XML 1.45 - D 1.021/2.004 - Reverted back to old regexps (but fixed hex floats).
0063 Can't combine all float regexps into a single RegExpr element using the '|' operator.
0064 It creates strange problems (like program lock-ups and wrong matches).
0065 - Fix: '=' is allowed in import statements now.
0066 - Fix: character literals are matched correctly now.
0067 - The #line special token sequence is matched fully now (the filespec string needs special handling).
0068 2007.09.10 - D.XML 1.44 - D 1.021/2.004 - Added __EOF__ to specialtokens.
0069 - Replaced float regexps with more accurate ones. Not sure about speed.
0070 - Fixed Octal regexp not to match 0_ .
0071 2007.07.24 - D.XML 1.43 - D 1.020/2.003 - Added System to ltypes.
0072 - Improved matching of version declarations.
0073 - Fixed matching of hexadecimal floats.
0074 - Deprecated style is stroked out again.
0075 2007.07.21 - D.XML 1.42 - D 1.018/2.002 - d.xml validates again according to language.xml.
0076 - HTML entities are highlighted now.
0077 - Numbers before and after the slice operator are not highl. as floats anymore.
0078 - Added C++ to ltypes.
0079 - Improved matching of module/import declarations.
0080 2007.07.01 - D.XML 1.41 - D 1.017/2.001 - fixed matching of numbers, added deprecated style, minor changes to styles, updated authors line
0081 2007.07.01 - D.XML 1.40 - D 1.017/2.001 - matches now .di extensions, removed phobos-specific printf/writef and added
0082 - library defined symbols string, wstring, dstring, size_t, ptrdiff_t, hash_t,
0083 - Error, Exception, Object, TypeInfo and ClassInfo
0084 2007.06.30 - D.XML 1.39 - D 1.017 - matching is much faster now, added "lib" to pragma types, added special tokens,
0085 - /+ +/ can be nested now, numbers are matched more correctly, character literals don't span multiple lines anymore
0086 - escape sequences inside strings and character literals are highlighted,
0087 - non-hex characters in hex strings are highlighted with the Error style,
0088 - using more default styles instead of custom ones
0089 2007.04.11 - D.XML 1.38 - D 1.011 - ref, macro keywords are now supported, fixed \\ inside a string, updated author
0090 2007.02.12 - D.XML 1.37 - D 1.006 - bool, foreach_reverse, lazy, scope and typeid keywords are now supported, fixed \"
0091 - inside a string, fixed ending of wysiwyg strings.
0092 2004.08.15 - D.XML 1.36 - D 0.98 - Current release of D.
0093 - package, writef(strictly speaking writef isn't a keyword) - keywords are now supported.
0094 2004.??.?? - D.XML 1.35 - D 0.?? - Not sure how this release got posted!
0095 2004.05.23 - D.XML 1.34 - D 0.90 - updated.
0096 2004.05.19 - D.XML 1.33 - D 0.89 - mixin - keyword is now supported.
0097 2004.05.19 - D.XML 1.32 - D 0.77 - pragma, typeof - keywords are now supported.
0098 2004.05.19 - D.XML 1.31 - D 0.76 - is - keyword is now supported.
0099 2003.09.06 - D.XML 1.30 - D 0.71 - foreach - keyword is now supported.
0100 2003.08.18 - D.XML 1.20 - D 0.69 - floats are now supported.
0101 - embedded underscores in integer and float literals are now supported.
0102 2003.08.11 - D.XML 1.10 - updated.
0103 2003.07.18 - D.XML 1.00 - First released.
0104
0105 ========================================================================
0106 -->
0107
0108 <language name="D" version="13" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
0109 <highlighting>
0110 <!-- User-defined keywords (add identifiers you'd like highlighted here) -->
0111 <list name="userkeywords">
0112 </list>
0113 <list name="statements">
0114 <item>asm</item>
0115 <item>body</item>
0116 <item>break</item>
0117 <item>case</item>
0118 <item>catch</item>
0119 <item>continue</item>
0120 <item>default</item>
0121 <item>do</item>
0122 <item>else</item>
0123 <item>finally</item>
0124 <item>for</item>
0125 <item>foreach</item>
0126 <item>foreach_reverse</item>
0127 <item>goto</item>
0128 <item>if</item>
0129 <item>mixin</item>
0130 <item>return</item>
0131 <item>switch</item>
0132 <item>throw</item>
0133 <item>try</item>
0134 <item>while</item>
0135 <item>with</item>
0136
0137 <!-- these are statements according to the spec, although I might call them attributes -->
0138 <item>synchronized</item>
0139
0140 </list>
0141
0142 <list name="attributes">
0143 <!-- also storage classes -->
0144 <item>abstract</item>
0145 <item>align</item>
0146 <item>auto</item>
0147 <item>const</item>
0148 <item>export</item>
0149 <item>final</item>
0150 <item>immutable</item>
0151 <item>inout</item>
0152 <item>invariant</item>
0153 <item>lazy</item>
0154 <item>nothrow</item>
0155 <item>override</item>
0156 <item>package</item>
0157 <item>private</item>
0158 <item>protected</item>
0159 <item>public</item>
0160 <item>pure</item>
0161 <item>ref</item>
0162 <item>shared</item>
0163 <item>static</item>
0164
0165 <!-- these may be statements -->
0166 <!-- in (more common to use as an expression since in attribute is only ever the default) -->
0167 <item>out</item>
0168 <item>scope</item>
0169
0170 <item>__gshared</item>
0171 </list>
0172
0173 <list name="expressions">
0174 <!-- primary expressions -->
0175 <item>false</item>
0176 <item>null</item>
0177 <item>super</item>
0178 <item>this</item>
0179 <item>true</item>
0180 <item>typeid</item>
0181
0182 <!-- other expressions -->
0183 <item>assert</item>
0184 <item>cast</item>
0185 <item>is</item>
0186 <item>new</item>
0187 <item>delete</item>
0188 <item>in</item> <!-- also an attribute and a statement -->
0189
0190 <!-- sometimes declarators -->
0191 <item>delegate</item>
0192 <item>function</item>
0193 </list>
0194
0195 <list name="modules">
0196 <item>module</item>
0197 <item>import</item> <!-- also an expression -->
0198 </list>
0199
0200 <list name="declarators">
0201 <item>alias</item>
0202 <item>enum</item>
0203 <item>typedef</item>
0204 <item>class</item>
0205 <item>interface</item>
0206 <item>struct</item>
0207 <item>union</item>
0208 </list>
0209
0210 <list name="types">
0211 <item>typeof</item>
0212
0213 <item>void</item>
0214 <item>bool</item>
0215 <item>byte</item>
0216 <item>ubyte</item>
0217 <item>short</item>
0218 <item>ushort</item>
0219 <item>int</item>
0220 <item>uint</item>
0221 <item>long</item>
0222 <item>ulong</item>
0223 <item>cent</item>
0224 <item>ucent</item>
0225 <item>float</item>
0226 <item>double</item>
0227 <item>real</item>
0228 <item>ireal</item>
0229 <item>ifloat</item>
0230 <item>idouble</item>
0231 <item>creal</item>
0232 <item>cfloat</item>
0233 <item>cdouble</item>
0234 <item>char</item>
0235 <item>wchar</item>
0236 <item>dchar</item>
0237 </list>
0238
0239 <list name="templates">
0240 <item>macro</item> <!-- what's this? just reserved? -->
0241 <item>template</item>
0242 </list>
0243
0244 <list name="properties">
0245 <item>init</item>
0246 <item>sizeof</item>
0247 <item>alignof</item>
0248 <item>mangleof</item>
0249 <item>stringof</item>
0250 <item>tupleof</item>
0251 <item>offsetof</item>
0252 <item>max</item>
0253 <item>min</item>
0254 <item>infinity</item>
0255 <item>nan</item>
0256 <item>dig</item>
0257 <item>epsilon</item>
0258 <item>mant_dig</item>
0259 <item>max_10_exp</item>
0260 <item>max_exp</item>
0261 <item>min_10_exp</item>
0262 <item>min_exp</item>
0263 <item>re</item>
0264 <item>im</item>
0265 <item>length</item>
0266 <item>ptr</item>
0267 <item>dup</item>
0268 <item>idup</item>
0269 <item>reverse</item>
0270 <item>sort</item>
0271 <item>keys</item>
0272 <item>values</item>
0273 <item>rehash</item>
0274 </list>
0275
0276 <list name="libsymbols">
0277 <!-- these are only symbols defined in object.d(i) -->
0278 <item>size_t</item>
0279 <item>ptrdiff_t</item>
0280 <item>hash_t</item>
0281 <item>Error</item>
0282 <item>Exception</item>
0283 <item>Object</item>
0284 <item>TypeInfo</item>
0285 <item>ClassInfo</item>
0286 <item>ModuleInfo</item>
0287 <item>Interface</item>
0288 <item>OffsetTypeInfo</item>
0289 <item>TypeInfo_Typedef</item>
0290 <item>TypeInfo_Enum</item>
0291 <item>TypeInfo_Pointer</item>
0292 <item>TypeInfo_Array</item>
0293 <item>TypeInfo_StaticArray</item>
0294 <item>TypeInfo_AssociativeArray</item>
0295 <item>TypeInfo_Function</item>
0296 <item>TypeInfo_Delegate</item>
0297 <item>TypeInfo_Class</item>
0298 <item>TypeInfo_Interface</item>
0299 <item>TypeInfo_Struct</item>
0300 <item>TypeInfo_Tuple</item>
0301
0302 <!-- phobos only as of tango 0.99.3 -->
0303 <item>string</item>
0304 <item>wstring</item>
0305 <item>dstring</item>
0306 <item>bit</item>
0307 <item>TypeInfo_Const</item>
0308 <item>TypeInfo_Invariant</item>
0309 </list>
0310
0311 <list name="linkage">
0312 <item>extern</item>
0313 </list>
0314 <list name="ltypes">
0315 <item>C</item>
0316 <!-- <item>C++</item> --><!-- is handled specially in Linkage rule -->
0317 <item>D</item>
0318 <item>Windows</item>
0319 <item>Pascal</item>
0320 <item>System</item>
0321 <!-- <item>Objective-C</item> --><!-- is handled specially in Linkage rule -->
0322 </list>
0323
0324 <list name="ptypes">
0325 <item>inline</item>
0326 <item>lib</item>
0327 <item>linkerDirective</item>
0328 <item>mangle</item>
0329 <item>msg</item>
0330 <item>startaddress</item>
0331 </list>
0332
0333 <list name="scope_keywords">
0334 <item>exit</item>
0335 <item>success</item>
0336 <item>failure</item>
0337 </list>
0338
0339 <list name="vtypes">
0340 <item>DigitalMars</item>
0341 <item>X86</item>
0342 <item>X86_64</item>
0343 <item>Windows</item>
0344 <item>Win32</item>
0345 <item>Win64</item>
0346 <item>linux</item>
0347 <item>LittleEndian</item>
0348 <item>BigEndian</item>
0349 <item>D_Coverage</item>
0350 <item>D_InlineAsm_X86</item>
0351 <item>unittest</item>
0352 <item>D_Version2</item>
0353 <item>none</item>
0354 <item>all</item>
0355 </list>
0356
0357 <list name="specialtokens">
0358 <item>__FILE__</item>
0359 <item>__LINE__</item>
0360 <item>__DATE__</item>
0361 <item>__TIME__</item>
0362 <item>__TIMESTAMP__</item>
0363 <item>__VENDOR__</item>
0364 <item>__VERSION__</item>
0365 <item>__EOF__</item>
0366 </list>
0367
0368 <list name="tests">
0369 <item>debug</item>
0370 <item>unittest</item>
0371 </list>
0372
0373 <list name="pragma">
0374 <item>pragma</item>
0375 </list>
0376
0377 <list name="version">
0378 <item>version</item>
0379 </list>
0380
0381 <list name="deprecated">
0382 <item>deprecated</item>
0383 <item>volatile</item> <!-- has been deprecated -->
0384 </list>
0385
0386 <contexts>
0387 <context name="normal" attribute="Normal Text" lineEndContext="#stay">
0388 <DetectSpaces />
0389 <!-- Performance improvement (probably): anything starting with a letter is matched separately -->
0390 <RegExpr String="[a-zA-Z_]" attribute="Normal Text" context="StartingLetter" lookAhead="true"/>
0391
0392 <HlCStringChar attribute="EscapeSequence" context="#stay"/>
0393 <Detect2Chars attribute="EscapeSequence" context="UnicodeShort" char="\" char1="u"/>
0394 <Detect2Chars attribute="EscapeSequence" context="UnicodeLong" char="\" char1="U"/>
0395 <Detect2Chars attribute="EscapeSequence" context="HTMLEntity" char="\" char1="&"/>
0396
0397 <DetectChar attribute="Char" context="CharLiteral" char="'"/>
0398 <DetectChar attribute="String" context="String" char="""/>
0399 <DetectChar attribute="BQString" context="BQString" char="`"/>
0400
0401 <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
0402 <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
0403 <IncludeRules context="CommentRules" />
0404
0405 <!-- Match ... and .. before numbers are matched. -->
0406 <!-- Now in symbols keywords section -->
0407 <StringDetect attribute="Normal Text" context="#stay" String="..."/>
0408 <Detect2Chars attribute="Normal Text" char="." char1="."/>
0409
0410 <!-- Float starting with a dot -->
0411 <RegExpr attribute="Float" context="#stay" String="\.\d[\d_]*(?:[eE][-+]?\d[\d_]*)?[fFL]?i?"/>
0412
0413 <!-- Try to match various built-in properties -->
0414 <DetectChar char="." attribute="Normal Text" context="Properties"/>
0415
0416 <!-- Look ahead for a digit and switch to NumberLiteral context if found. -->
0417 <RegExpr context="NumberLiteral" String="\d" attribute="Normal Text" lookAhead="true"/>
0418
0419 <!-- #line Integer [Filespec] -->
0420 <StringDetect attribute="Pragma" context="LinePragma" String="#line"/>
0421
0422 <!-- Rules for the C-style indenter. Currently problems with /// and /++ comments. -->
0423 <DetectChar attribute="Symbol" context="BraceA" char="{" beginRegion="BraceA" />
0424 <AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]|~^;"/>
0425 </context>
0426
0427 <context name="BraceA" attribute="Normal Text" lineEndContext="#stay">
0428 <DetectChar attribute="Symbol" context="#pop" char="}" endRegion="BraceA" />
0429 <IncludeRules context="normal"/>
0430 </context>
0431
0432 <context name="StartingLetter" attribute="Normal Text" lineEndContext="#pop">
0433 <DetectSpaces />
0434 <!-- fall-through should work now that DetectIdentifier is used (without infinite loops) -->
0435 <!-- maybe not... got an infinite loop -->
0436 <RegExpr String="[^a-zA-Z_]" attribute="Normal Text" context="#pop" lookAhead="true"/>
0437
0438 <!-- detect whether scope, in, out, etc. are used as attributes or statements (etc.) -->
0439 <!-- rules cannot match across newlines unfortunately -->
0440 <RegExpr String="in\s*(?=\{)|out\s*(?=(\(([a-zA-Z_][\w_]*)?\)\s*)?\{)" attribute="Statement" context="#stay" />
0441 <RegExpr String="scope\s*(?=\()" attribute="Statement" context="Scope" />
0442 <RegExpr String="import\s*(?=\()" attribute="Expression" context="#stay" />
0443 <RegExpr String="(function|delegate)\s*(?=\()" attribute="Declarator" context="#stay" />
0444
0445 <keyword String="statements" attribute="Statement" context="#stay" />
0446 <keyword String="attributes" attribute="Attribute" context="#stay" />
0447 <keyword String="expressions" attribute="Expression" context="#stay" />
0448 <keyword String="declarators" attribute="Declarator" context="#stay" />
0449 <keyword String="templates" attribute="Template" context="#stay" />
0450 <keyword String="modules" attribute="Module" context="ModuleName"/>
0451 <keyword String="types" attribute="Type" context="#stay" />
0452 <keyword String="libsymbols" attribute="LibrarySymbols" context="#stay" />
0453 <keyword String="linkage" attribute="Linkage" context="Linkage" />
0454 <keyword String="specialtokens" attribute="SpecialTokens" context="#stay" />
0455 <keyword String="tests" attribute="Tests" context="#stay" />
0456 <!-- These must use keyword not DetectString: DetectString does not check for word-break after string. -->
0457 <keyword String="pragma" attribute="Pragma" context="Pragma" />
0458 <keyword String="version" attribute="Version" context="Version" />
0459 <keyword String="deprecated" attribute="Deprecated" context="#stay" />
0460
0461 <Detect2Chars attribute="RawString" context="RawString" char="r" char1="""/>
0462 <Detect2Chars attribute="HexString" context="HexString" char="x" char1="""/>
0463 <Detect2Chars attribute="Token String Delimiter" context="TokenString" char="q" char1="{"/>
0464 <RegExpr attribute="Delimited String Delimiter" context="DelimStrHeredoc" String="q"([A-Za-z_][A-Za-z0-9_]*)$" />
0465 <StringDetect attribute="Delimited String Delimiter" context="DelimStrBracket" String="q"[" />
0466 <StringDetect attribute="Delimited String Delimiter" context="DelimStrParen" String="q"(" />
0467 <StringDetect attribute="Delimited String Delimiter" context="DelimStrLtGt" String="q"<" />
0468 <StringDetect attribute="Delimited String Delimiter" context="DelimStrBrace" String="q"{" />
0469 <RegExpr attribute="Delimited String Delimiter" context="DelimStrSimple" String="q"([^A-Za-z_[(<{])" />
0470
0471 <!-- user highlighting: last so as not to interfere with anything else -->
0472 <keyword String="userkeywords" attribute="UserKeywords" context="#stay" />
0473
0474 <DetectIdentifier />
0475 </context>
0476
0477 <context name="Properties" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
0478 <keyword String="properties" attribute="Property" context="#pop" />
0479 </context>
0480 <context name="NumberLiteral" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
0481 <!-- Float literals -->
0482 <!-- Floats must be matched before Binary|Octal|Hex|DecInteger -->
0483 <RegExpr attribute="Float" context="#pop" String="&hexfloat;|&float;"/>
0484
0485 <!-- Binary|Octal|Hex|DecInteger -->
0486 <!-- Common, optional suffix: (L[uU]?|[uU]L?)? -->
0487 <RegExpr attribute="Binary" context="#pop" String="0[bB]_*[01][01_]*(?:L[uU]?|[uU]L?)?"/>
0488 <!-- Octal must be matched before DecInteger -->
0489 <RegExpr attribute="Octal" context="#pop" String="0[0-7_]+(?:L[uU]?|[uU]L?)?"/>
0490 <RegExpr attribute="Hex" context="#pop" String="0[xX]_*[\da-fA-F][\da-fA-F_]*(?:L[uU]?|[uU]L?)?"/>
0491 <!-- Decimal integers must be matched last -->
0492 <RegExpr attribute="Integer" context="#pop" String="\d+[\d_]*(?:L[uU]?|[uU]L?)?"/>
0493 </context>
0494
0495 <context name="LinePragma" attribute="Pragma" lineEndContext="#pop">
0496 <DetectSpaces/>
0497 <!-- Match an Integer -->
0498 <RegExpr attribute="Integer" context="#stay" String="(?:(?:0(?:[0-7_]+|[bB]_*[01][01_]*|[xX]_*[\da-fA-F][\da-fA-F_]*))|\d+[\d_]*)(?:L[uU]?|[uU]L?)?"/>
0499 <RangeDetect attribute="String" context="#stay" char=""" char1="""/>
0500 <keyword attribute="SpecialTokens" context="#stay" String="specialtokens"/>
0501 <IncludeRules context="CommentRules" />
0502 <RegExpr attribute="Error" context="#pop" String=".+"/>
0503 </context>
0504
0505 <!-- \u 4HexDigits -->
0506 <context name="UnicodeShort" attribute="EscapeSequence" lineEndContext="#pop">
0507 <RegExpr attribute="EscapeSequence" context="#pop" String="[\da-fA-F]{4}"/>
0508 </context>
0509 <!-- \U 8HexDigits -->
0510 <context name="UnicodeLong" attribute="EscapeSequence" lineEndContext="#pop">
0511 <RegExpr attribute="EscapeSequence" context="#pop" String="[\da-fA-F]{8}"/>
0512 </context>
0513 <!-- \& Alpha Alphanumerical+ ; -->
0514 <context name="HTMLEntity" attribute="EscapeSequence" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
0515 <RegExpr attribute="EscapeSequence" context="#pop" String="[a-zA-Z]\w+;"/>
0516 </context>
0517
0518 <context name="ModuleName" attribute="Module Name" lineEndContext="#stay">
0519 <DetectSpaces/>
0520 <IncludeRules context="CommentRules" />
0521 <RegExpr context="#pop" String="[^\s\w.:,=]" lookAhead="true"/>
0522 </context>
0523
0524 <context name="Linkage" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
0525 <DetectSpaces/>
0526 <DetectChar attribute="Normal Text" context="Linkage2" char="("/>
0527 <IncludeRules context="CommentRules" />
0528 </context>
0529 <context name="Linkage2" attribute="Normal Text" lineEndContext="#stay">
0530 <DetectSpaces/>
0531 <StringDetect attribute="Linkage Type" context="Linkage-C++" String="C++"/>
0532 <StringDetect attribute="Linkage Type" context="#stay" String="Objective-C"/>
0533 <keyword attribute="Linkage Type" context="#stay" String="ltypes"/>
0534 <IncludeRules context="CommentRules" />
0535 <!-- Fall-through rules, highlighting errors: -->
0536 <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
0537 <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
0538 </context>
0539 <context name="Linkage-C++" attribute="Normal Text" lineEndContext="#stay">
0540 <DetectSpaces/>
0541 <IncludeRules context="CommentRules" />
0542 <DetectChar char="," attribute="Normal Text" context="Linkage-C++2"/>
0543 <DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop"/>
0544 <RegExpr String="." attribute="Error" context="#stay"/>
0545 </context>
0546 <context name="Linkage-C++2" attribute="Normal Text" lineEndContext="#stay">
0547 <DetectSpaces/>
0548 <IncludeRules context="CommentRules" />
0549 <DetectIdentifier attribute="Normal Text" context="#stay"/>
0550 <DetectChar char="." attribute="Normal Text" context="#stay"/>
0551 <DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop"/>
0552 <RegExpr String="." attribute="Error" context="#stay"/>
0553 </context>
0554
0555 <context name="Version" attribute="Normal Text" lineEndContext="#stay">
0556 <DetectSpaces/>
0557 <DetectChar attribute="Normal Text" context="VersionSpec" char="="/>
0558 <DetectChar attribute="Normal Text" context="VersionCond" char="("/>
0559 <IncludeRules context="CommentRules" />
0560 <!-- Fall-through rules, highlighting errors: -->
0561 <RegExpr String="[^\s\n]+" attribute="Error" context="#pop"/>
0562 </context>
0563 <context name="VersionSpec" attribute="Normal Text" lineEndContext="#stay">
0564 <DetectSpaces/>
0565 <DetectIdentifier attribute="Normal Text" context="#stay"/>
0566 <RegExpr attribute="Integer" context="#stay" String="\d+[\d_]*(?:L[uU]?|[uU]L?)?"/>
0567 <DetectChar char=";" attribute="Normal Text" context="#pop#pop"/>
0568 <RegExpr String="." attribute="Error" context="#pop#pop"/>
0569 </context>
0570 <context name="VersionCond" attribute="Normal Text" lineEndContext="#stay">
0571 <DetectSpaces/>
0572 <keyword attribute="Version Type" context="#stay" String="vtypes"/>
0573 <DetectIdentifier attribute="Normal Text" context="#stay"/>
0574 <RegExpr attribute="Integer" context="#stay" String="\d+[\d_]*(?:L[uU]?|[uU]L?)?"/>
0575 <IncludeRules context="CommentRules" />
0576 <!-- Fall-through rules, highlighting errors: -->
0577 <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
0578 <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
0579 </context>
0580
0581 <context name="Scope" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
0582 <DetectSpaces/>
0583 <DetectChar attribute="Normal Text" context="Scope2" char="("/>
0584 <IncludeRules context="CommentRules" />
0585 </context>
0586 <context name="Scope2" attribute="Normal Text" lineEndContext="#stay">
0587 <DetectSpaces/>
0588 <keyword String="scope_keywords" attribute="Expression" context="#stay"/>
0589 <IncludeRules context="CommentRules" />
0590 <!-- Fall-through rules, highlighting errors: -->
0591 <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
0592 <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
0593 </context>
0594
0595 <context name="Pragma" attribute="Pragma" lineEndContext="#stay">
0596 <DetectSpaces/>
0597 <DetectChar attribute="Normal Text" context="Pragma2" char="("/>
0598 <IncludeRules context="CommentRules" />
0599 <!-- Fall-through rules, highlighting errors: -->
0600 <RegExpr String="[^\s\n]+" attribute="Error" context="#pop"/>
0601 </context>
0602 <context name="Pragma2" attribute="Pragma" lineEndContext="#stay">
0603 <DetectSpaces/>
0604 <keyword attribute="Version Type" context="Pragma3" String="ptypes"/>
0605 <DetectIdentifier attribute="Normal Text" context="Pragma3"/>
0606 <IncludeRules context="CommentRules" />
0607 <!-- Fall-through rules, highlighting errors: -->
0608 <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
0609 <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
0610 </context>
0611 <context name="Pragma3" attribute="Pragma" lineEndContext="#stay">
0612 <DetectSpaces/>
0613 <DetectChar char="," attribute="Normal Text" context="Pragma4"/>
0614 <DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop"/>
0615 <RegExpr String="." attribute="Error" context="#pop#pop#pop"/>
0616 </context>
0617 <context name="Pragma4" attribute="Pragma" lineEndContext="#stay">
0618 <DetectChar char="(" attribute="Normal Text" context="Parenthetical"/>
0619 <DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop#pop"/>
0620 <IncludeRules context="normal" />
0621 </context>
0622 <context name="Parenthetical" attribute="Normal Text" lineEndContext="#stay">
0623 <DetectChar char="(" attribute="Normal Text" context="Parenthetical"/>
0624 <DetectChar char=")" attribute="Normal Text" context="#pop"/>
0625 <IncludeRules context="normal" />
0626 </context>
0627
0628 <!-- Strings -->
0629 <!-- r"..." -->
0630 <context name="RawString" attribute="RawString" lineEndContext="#stay">
0631 <DetectChar attribute="RawString" context="#pop" char="""/>
0632 </context>
0633 <!-- `...` -->
0634 <context name="BQString" attribute="BQString" lineEndContext="#stay">
0635 <DetectChar attribute="BQString" context="#pop" char="`"/>
0636 </context>
0637 <!-- x"..." -->
0638 <context name="HexString" attribute="HexString" lineEndContext="#stay">
0639 <DetectChar attribute="HexString" context="#pop" char="""/>
0640 <RegExpr attribute="Error" context="#stay" String="[^\sa-fA-F\d"]+" />
0641 </context>
0642 <!-- '...' -->
0643 <context name="CharLiteral" attribute="Char" lineEndContext="CharLiteralClosing" fallthrough="true" fallthroughContext="#pop">
0644 <!-- Empty '' -->
0645 <DetectChar attribute="Char" context="#pop" char="'"/>
0646 <!-- \t \n \r etc. -->
0647 <HlCStringChar attribute="EscapeSequence" context="CharLiteralClosing"/>
0648 <!-- \u 4HexDigits | \U 8HexDigits | HTMLEntity -->
0649 <RegExpr attribute="EscapeSequence" context="CharLiteralClosing" String="\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}|&[a-zA-Z]\w+;)"/>
0650 <!-- Invalid escape sequences -->
0651 <RegExpr attribute="Error" context="CharLiteralClosing" String="\\."/>
0652 <!-- Any character -->
0653 <RegExpr attribute="Char" context="CharLiteralClosing" String="."/>
0654 </context>
0655 <!-- Anything other than a closing ' is now be an error -->
0656 <context name="CharLiteralClosing" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
0657 <DetectChar attribute="Char" context="#pop#pop" char="'"/>
0658 </context>
0659 <!-- "..." -->
0660 <context name="String" attribute="String" lineEndContext="#stay">
0661 <HlCStringChar attribute="EscapeSequence"/>
0662 <Detect2Chars attribute="String" context="#pop" char=""" char1="c"/>
0663 <Detect2Chars attribute="String" context="#pop" char=""" char1="w"/>
0664 <Detect2Chars attribute="String" context="#pop" char=""" char1="d"/>
0665 <DetectChar attribute="String" context="#pop" char="""/>
0666 <Detect2Chars attribute="EscapeSequence" context="UnicodeShort" char="\" char1="u"/>
0667 <Detect2Chars attribute="EscapeSequence" context="UnicodeLong" char="\" char1="U"/>
0668 <Detect2Chars attribute="EscapeSequence" context="HTMLEntity" char="\" char1="&"/>
0669 </context>
0670 <!-- token strings: q{...} -->
0671 <context name="TokenString" attribute="Normal Text" lineEndContext="#stay">
0672 <DetectChar attribute="Token String Delimiter" context="#pop" char="}" />
0673 <IncludeRules context="normal" />
0674 </context>
0675 <!-- delimited strings -->
0676 <!-- q"IDENTIFIER...IDENTIFIER" -->
0677 <context name="DelimStrHeredoc" attribute="Delimited String Content" lineEndContext="#stay">
0678 <StringDetect attribute="Delimited String Delimiter" context="#pop" String="%1"" dynamic="true" column="0" />
0679 <StringDetect attribute="Error" context="#pop" String="%1" dynamic="true" column="0" />
0680 </context>
0681 <!-- q"[...]" -->
0682 <context name="DelimStrBracket" attribute="Delimited String Content" lineEndContext="#stay">
0683 <DetectChar attribute="Delimited String Content" context="DelimStrBracket2" char="[" />
0684 <Detect2Chars attribute="Delimited String Delimiter" context="#pop" char="]" char1=""" />
0685 <DetectChar attribute="Error" context="#pop" char="]" />
0686 </context>
0687 <context name="DelimStrBracket2" attribute="Delimited String Content" lineEndContext="#stay">
0688 <DetectChar attribute="Delimited String Content" context="DelimStrBracket2" char="[" />
0689 <DetectChar attribute="Delimited String Content" context="#pop" char="]" />
0690 </context>
0691 <!-- q"(...)" -->
0692 <context name="DelimStrParen" attribute="Delimited String Content" lineEndContext="#stay">
0693 <DetectChar attribute="Delimited String Content" context="DelimStrParen2" char="(" />
0694 <Detect2Chars attribute="Delimited String Delimiter" context="#pop" char=")" char1=""" />
0695 <DetectChar attribute="Error" context="#pop" char=")" />
0696 </context>
0697 <context name="DelimStrParen2" attribute="Delimited String Content" lineEndContext="#stay">
0698 <DetectChar attribute="Delimited String Content" context="DelimStrParen2" char="(" />
0699 <DetectChar attribute="Delimited String Content" context="#pop" char=")" />
0700 </context>
0701 <!-- q"<...>" -->
0702 <context name="DelimStrLtGt" attribute="Delimited String Content" lineEndContext="#stay">
0703 <DetectChar attribute="Delimited String Content" context="DelimStrLtGt2" char="<" />
0704 <Detect2Chars attribute="Delimited String Delimiter" context="#pop" char=">" char1=""" />
0705 <DetectChar attribute="Error" context="#pop" char=">" />
0706 </context>
0707 <context name="DelimStrLtGt2" attribute="Delimited String Content" lineEndContext="#stay">
0708 <DetectChar attribute="Delimited String Content" context="DelimStrLtGt2" char="<" />
0709 <DetectChar attribute="Delimited String Content" context="#pop" char=">" />
0710 </context>
0711 <!-- q"{...}" -->
0712 <context name="DelimStrBrace" attribute="Delimited String Content" lineEndContext="#stay">
0713 <DetectChar attribute="Delimited String Content" context="DelimStrBrace2" char="{" />
0714 <Detect2Chars attribute="Delimited String Delimiter" context="#pop" char="}" char1=""" />
0715 <DetectChar attribute="Error" context="#pop" char="}" />
0716 </context>
0717 <context name="DelimStrBrace2" attribute="Delimited String Content" lineEndContext="#stay">
0718 <DetectChar attribute="Delimited String Content" context="DelimStrBrace2" char="{" />
0719 <DetectChar attribute="Delimited String Content" context="#pop" char="}" />
0720 </context>
0721 <!-- q"*...*" -->
0722 <context name="DelimStrSimple" attribute="Delimited String Content" lineEndContext="#stay">
0723 <StringDetect attribute="Delimited String Delimiter" context="#pop" String="%1"" dynamic="true" />
0724 <StringDetect attribute="Error" context="#pop" String="%1" dynamic="true" />
0725 </context>
0726
0727 <!-- Comments -->
0728 <context name="CommentRules" attribute="Normal Text" lineEndContext="#pop">
0729 <IncludeRules context="DdocNormal" />
0730 <Detect2Chars attribute="Comment" context="CommentLine" char="/" char1="/"/>
0731 <Detect2Chars attribute="Comment" context="CommentBlock" char="/" char1="*" beginRegion="CommentBlock"/>
0732 <Detect2Chars attribute="Comment" context="CommentNested" char="/" char1="+" beginRegion="CommentNested"/>
0733 <!-- This context is only for including rules from. -->
0734 </context>
0735 <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop">
0736 </context>
0737 <context name="CommentLine" attribute="Comment" lineEndContext="#pop">
0738 <DetectSpaces />
0739 <IncludeRules context="##Comments" />
0740 </context>
0741 <context name="CommentBlock" attribute="Comment" lineEndContext="#stay">
0742 <DetectSpaces />
0743 <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentBlock"/>
0744 <IncludeRules context="##Comments" />
0745 </context>
0746 <context name="CommentNested" attribute="Comment" lineEndContext="#stay">
0747 <DetectSpaces />
0748 <Detect2Chars attribute="Comment" context="CommentNested" char="/" char1="+" beginRegion="CommentNested"/>
0749 <Detect2Chars attribute="Comment" context="#pop" char="+" char1="/" endRegion="CommentNested"/>
0750 <IncludeRules context="##Comments" />
0751 </context>
0752
0753
0754 <!-- Ddoc contexts -->
0755 <context name="DdocNormal" attribute="Normal Text" lineEndContext="#stay">
0756 <RegExpr attribute="Comment" context="DdocLine" String="/{3,}"/>
0757 <RegExpr attribute="Comment" context="DdocBlock" String="/\*{2,}(?!/)" beginRegion="DdocBlock"/>
0758 <RegExpr attribute="Comment" context="DdocNested" String="/\+{2,}(?!/)" beginRegion="DdocNested"/>
0759 </context>
0760
0761 <context name="DdocLine" attribute="Ddoc" lineEndContext="#pop">
0762 <DetectSpaces />
0763 <DetectIdentifier attribute="Ddoc"/>
0764 <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
0765 <RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:(?:$|\s)" />
0766 <IncludeRules context="##Comments" />
0767 </context>
0768
0769 <context name="DdocBlock" attribute="Ddoc" lineEndContext="#stay">
0770 <DetectSpaces />
0771 <DetectIdentifier attribute="Ddoc"/>
0772 <RegExpr attribute="Comment" context="#pop" String="\*+/" endRegion="DdocBlock"/>
0773 <DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
0774
0775 <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
0776 <RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:(?:$|\s)" />
0777 <IncludeRules context="##Comments" />
0778
0779 <!-- Avoid matching this; do it this way since (^|\s)-* always matches .- and \s-* never
0780 matches .- (spaces have already been matched); however -*($|\s) matches just fine.
0781 Also can't use \b since - is not a word character. -->
0782 <RegExpr attribute="Ddoc" context="#stay" String="[^-]-{3,}" />
0783 <RegExpr attribute="Comment" context="DdocBlockCode" String="-{3,}(?:$|\s)" />
0784 </context>
0785
0786 <context name="DdocNested" attribute="Ddoc" lineEndContext="#stay">
0787 <DetectSpaces />
0788 <DetectIdentifier attribute="Ddoc"/>
0789 <!-- Ddoc recognises nested comments/ddoc, but ignores them as far as formatting is concerned. -->
0790 <Detect2Chars attribute="Ddoc" context="DdocNested2" char="/" char1="+"/>
0791 <RegExpr attribute="Comment" context="#pop" String="\++/" endRegion="DdocNested"/>
0792 <DetectChar attribute="Comment" context="#stay" char="+" firstNonSpace="true" />
0793
0794 <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
0795 <RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:(?:$|\s)" />
0796 <IncludeRules context="##Comments" />
0797
0798 <!-- As above. -->
0799 <RegExpr attribute="Ddoc" context="#stay" String="[^-]-{3,}" />
0800 <RegExpr attribute="Comment" context="DdocNestedCode" String="-{3,}(?:$|\s)" />
0801 </context>
0802
0803 <context name="DdocNested2" attribute="Ddoc" lineEndContext="#stay">
0804 <DetectSpaces />
0805 <DetectIdentifier attribute="Ddoc"/>
0806 <!-- Identical to DdocNested except that nested comments don't receive any formatting -->
0807 <RegExpr attribute="Ddoc" context="#pop" String="\++/"/>
0808 <!-- The above rules should match before the unwanted rule in DdocNested -->
0809 <IncludeRules context="DdocNested" />
0810 </context>
0811
0812 <!-- When entering a macro: provides highlighting for first symbol (macro name) -->
0813 <context name="DdocMacro" attribute="Error" lineEndContext="#stay">
0814 <DetectSpaces attribute="Macro Text" /> <!-- avoid showing space as an error -->
0815
0816 <DetectChar attribute="Macros" context="#pop" char=")" /> <!-- early end of macro -->
0817 <IncludeRules context="MacroRules" />
0818
0819 <!-- first symbol of macro -->
0820 <DetectIdentifier attribute="Macros" context="DdocMacro2" />
0821 </context>
0822 <!-- For rest of macro -->
0823 <context name="DdocMacro2" attribute="Macro Text" lineEndContext="#stay">
0824 <DetectChar attribute="Macros" context="#pop#pop" char=")" /> <!-- end of macro -->
0825 <IncludeRules context="MacroRules" />
0826 </context>
0827 <!-- For embedded brackets (yeah, extra work to ignore them) -->
0828 <context name="DdocMacro3" attribute="Macro Text" lineEndContext="#stay">
0829 <DetectChar attribute="Macro Text" context="#pop" char=")" /> <!-- end of embedded brackets -->
0830 <IncludeRules context="MacroRules" />
0831 </context>
0832 <!-- Rules common to all macros -->
0833 <context name="MacroRules" attribute="Macro Text" lineEndContext="#stay">
0834 <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" /> <!-- embedded -->
0835 <DetectChar attribute="Macro Text" context="DdocMacro3" char="(" /> <!-- extra brackets -->
0836
0837 <DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
0838 </context>
0839
0840 <context name="DdocBlockCode" attribute="DdocCode" lineEndContext="#stay">
0841 <DetectSpaces />
0842 <!-- See update 1.11 -->
0843 <RegExpr attribute="Comment" context="#pop#pop" String="\*+/" endRegion="DdocBlock"/>
0844 <DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
0845 <!-- As above. -->
0846 <RegExpr attribute="DdocCode" context="#stay" String="[^-]-{3,}" />
0847 <RegExpr attribute="Comment" context="#pop" String="-{3,}(?:$|\s)" />
0848 <IncludeRules context="##D" />
0849 </context>
0850 <context name="DdocNestedCode" attribute="DdocCode" lineEndContext="#stay">
0851 <DetectSpaces />
0852 <!-- See update 1.11 -->
0853 <RegExpr attribute="Comment" context="#pop#pop" String="\++/" endRegion="DdocNested"/>
0854 <DetectChar attribute="Comment" context="#stay" char="+" firstNonSpace="true" />
0855 <!-- As above. -->
0856 <RegExpr attribute="DdocCode" context="#stay" String="[^-]-{3,}" />
0857 <RegExpr attribute="Comment" context="#pop" String="-{3,}(?:$|\s)" />
0858 <IncludeRules context="##D" />
0859 </context>
0860 </contexts>
0861 <itemDatas>
0862 <itemData name="Normal Text" defStyleNum="dsNormal"/>
0863 <itemData name="Symbol" defStyleNum="dsOperator"/>
0864
0865 <!-- keywords -->
0866 <itemData name="Statement" defStyleNum="dsKeyword"/>
0867 <itemData name="Expression" defStyleNum="dsAttribute" bold="1"/> <!-- #000080 -->
0868 <itemData name="Declarator" defStyleNum="dsWarning" bold="1"/> <!-- #800000 -->
0869 <itemData name="Template" defStyleNum="dsOthers" bold="1"/> <!-- #008000 -->
0870
0871 <itemData name="Attribute" defStyleNum="dsFunction" bold="1"/> <!-- #800080 -->
0872 <itemData name="Deprecated" defStyleNum="dsFunction" bold="1" strikeOut="true"/> <!-- #800080 -->
0873
0874 <itemData name="Property" defStyleNum="dsDataType" bold="1"/> <!-- #000080 -->
0875
0876 <itemData name="Type" defStyleNum="dsDataType"/>
0877 <itemData name="LibrarySymbols" defStyleNum="dsBuiltIn" italic="1"/>
0878
0879 <itemData name="UserKeywords" defStyleNum="dsDataType" italic="1"/>
0880
0881 <!-- module, import -->
0882 <itemData name="Module" defStyleNum="dsPreprocessor" bold="1"/> <!-- #008000 -->
0883 <itemData name="Module Name" defStyleNum="dsImport"/> <!-- #008000 -->
0884
0885 <!-- pragma, special tokens -->
0886 <itemData name="SpecialTokens" defStyleNum="dsOthers" bold="1"/> <!-- #00aa00 -->
0887 <itemData name="Pragma" defStyleNum="dsOthers" bold="1"/> <!-- #00aa00 -->
0888
0889 <!-- version, extern -->
0890 <itemData name="Version" defStyleNum="dsDecVal"/> <!-- #808000 -->
0891 <itemData name="Version Type" defStyleNum="dsNormal" bold="1"/>
0892 <itemData name="Linkage" defStyleNum="dsInformation" bold="1"/> <!-- #808000 -->
0893 <itemData name="Linkage Type" defStyleNum="dsNormal" bold="1"/>
0894
0895 <itemData name="Tests" defStyleNum="dsFunction" bold="1"/> <!-- #ff00ff -->
0896
0897 <itemData name="Comment" defStyleNum="dsComment"/>
0898 <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
0899
0900 <itemData name="Error" defStyleNum="dsError"/>
0901
0902 <!-- literals -->
0903 <itemData name="Integer" defStyleNum="dsDecVal"/>
0904 <itemData name="Binary" defStyleNum="dsBaseN"/>
0905 <itemData name="Octal" defStyleNum="dsBaseN"/>
0906 <itemData name="Hex" defStyleNum="dsBaseN"/>
0907 <itemData name="Float" defStyleNum="dsFloat"/>
0908
0909 <itemData name="EscapeSequence" defStyleNum="dsSpecialChar"/>
0910 <itemData name="String" defStyleNum="dsString"/>
0911 <itemData name="Char" defStyleNum="dsChar"/>
0912 <itemData name="RawString" defStyleNum="dsVerbatimString"/>
0913 <itemData name="BQString" defStyleNum="dsSpecialString"/>
0914 <itemData name="HexString" defStyleNum="dsSpecialString"/>
0915 <itemData name="Token String Delimiter" defStyleNum="dsKeyword"/>
0916 <itemData name="Delimited String Content" defStyleNum="dsVerbatimString"/>
0917 <itemData name="Delimited String Delimiter" defStyleNum="dsKeyword"/>
0918
0919 <!-- Ddoc specific -->
0920 <itemData name="Macros" defStyleNum="dsSpecialChar" bold="1" italic="0" /> <!-- #bf5fbf -->
0921 <itemData name="Macro Text" defStyleNum="dsAttribute" bold="0" italic="0" /> <!-- #bf7fff -->
0922 <itemData name="Ddoc" defStyleNum="dsDocumentation" /> <!-- #7f7fff -->
0923 <itemData name="DdocSection" defStyleNum="dsAnnotation" bold="1" /> <!-- #7f7fff -->
0924 <itemData name="DdocCode" defStyleNum="dsNormal" italic="1" />
0925 </itemDatas>
0926 </highlighting>
0927 <general>
0928 <comments>
0929 <comment name="singleLine" start="//" position="afterwhitespace"/>
0930 <comment name="multiLine" start="/+" end="+/" region="CommentNested"/>
0931 </comments>
0932 <keywords casesensitive="true"/>
0933 </general>
0934 </language>
0935 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->