packages feed

skylighting-core 0.14.2 → 0.14.3

raw patch · 5 files changed

+2618/−1 lines, 5 files

Files

changelog.md view
@@ -1,5 +1,9 @@ # Revision history for skylighting and skylighting-core +## 0.14.3++  * Add crystal, racket, zip syntax (#194).+ ## 0.14.2    * Add `loadValidSyntaxesFromDir` (Kevin Quick) [API change].
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.14.2+version:             0.14.3 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax
+ xml/crystal.xml view
@@ -0,0 +1,993 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language>++<!--+  Crystal syntax highlighting definition for Kate.+  Copyright (C) 2022  by Gaurav Shah (gauravshah.89@gmail.com)++  Forked from the Ruby syntax highlighting definition.+  Copyright (C) 2004  by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)+  Copyright (C) 2004  by Stefan Lang (langstefan@gmx.at)+  Copyright (C) 2008  by Robin Pedersen (robinpeder@gmail.com)+  Copyright (C) 2011  by Miquel Sabaté (mikisabate@gmail.com)++  This library is free software; you can redistribute it and/or+  modify it under the terms of the GNU Library General Public+  License as published by the Free Software Foundation; either+  version 2 of the License, or (at your option) any later version.++  This library is distributed in the hope that it will be useful,+  but WITHOUT ANY WARRANTY; without even the implied warranty of+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+  Library General Public License for more details.++  You should have received a copy of the GNU Library General Public+  License along with this library; if not, write to the+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,+  Boston, MA  02110-1301, USA.+-->++<!--+    TODO: Division after gdl contexts is interpreted as regexp+-->++<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->+<language name="Crystal" section="Sources"+	  version="0" kateversion="5.0"+	  extensions="*.cr"+	  mimetype="application/x-crystal"+	  style="crystal" indenter="ruby"+	  author="Gaurav Shah (gauravshah.89@gmail.com)" license="LGPLv2+">++	<highlighting>++		<list name="keywords">+			<item>begin</item>+			<item>break</item>+			<item>case</item>+			<item>do</item>+			<item>else</item>+			<item>elsif</item>+			<item>end</item>+			<item>ensure</item>+			<item>for</item>+			<item>if</item>+			<item>in</item>+			<item>next</item>+			<item>rescue</item>+			<item>return</item>+			<item>then</item>+			<item>unless</item>+			<item>until</item>+			<item>when</item>+			<item>yield</item>+		</list>++		<list name="access-control">+			<item>private</item>+			<item>protected</item>+		</list>++		<list name="attribute-definitions">+			<item>getter</item>+			<item>setter</item>+			<item>property</item>+		</list>++		<list name="definitions">+			<item>alias</item>+			<item>module</item>+			<item>class</item>+			<item>struct</item>+			<item>def</item>+			<item>macro</item>+		</list>++		<list name="pseudo-variables">+			<item>self</item>+			<item>super</item>+			<item>nil</item>+			<item>false</item>+			<item>true</item>+			<item>caller</item>+			<!-- TODO: move these to psudo constants list -->+			<item>__FILE__</item>+			<item>__LINE__</item>+			<item>__END_LINE__</item>+			<item>__DIR__</item>+		</list>++		<!-- Kernel module methods.+			NOTE: Methods ending in ? or !+				are included below as regexes.+		-->+		<!-- TODO: replace this with Crystal Object methods? -->+		<list name="kernel-methods">+			<!-- backquote ` -->+			<item>abort</item>+			<item>at_exit</item>+			<item>autoload</item>+			<item>autoload?</item>+			<item>binding</item>+			<item>block_given?</item>+			<item>callcc</item>+			<item>caller</item>+			<item>catch</item>+			<item>chomp</item>+			<item>chomp!</item>+			<item>chop</item>+			<item>chop!</item>+			<item>eval</item>+			<item>exec</item>+			<item>exit</item>+			<item>exit!</item>+			<item>fail</item>+			<item>fork</item>+			<item>format</item>+			<item>getc</item>+			<item>gets</item>+			<item>global_variables</item>+			<item>gsub</item>+			<item>gsub!</item>+			<item>iterator?</item>+			<item>lambda</item>+			<item>load</item>+			<item>local_variables</item>+			<item>loop</item>+			<item>method_missing</item>+			<item>open</item>+			<item>p</item>+			<item>print</item>+			<item>printf</item>+			<item>proc</item>+			<item>putc</item>+			<item>puts</item>+			<item>raise</item>+			<item>rand</item>+			<item>readline</item>+			<item>readlines</item>+			<item>require</item>+			<item>require_relative</item>+			<item>scan</item>+			<item>select</item>+			<item>set_trace_func</item>+			<item>sleep</item>+			<item>split</item>+			<item>sprintf</item>+			<item>srand</item>+			<item>sub</item>+			<item>sub!</item>+			<item>syscall</item>+			<item>system</item>+			<item>test</item>+			<item>throw</item>+			<item>trace_var</item>+			<item>trap</item>+			<item>untrace_var</item>+			<item>warn</item>+		</list>++		<list name="mixin-methods">+			<item>extend</item>+			<item>include</item>+		</list>++		<contexts>+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">+				<!-- crystal ignores newline after \ -->+				<LineContinue attribute="Normal Text" context="Line Continue"/>++				<!-- "shebang" line -->+				<!-- TODO: this may be required once crystal interpreter is ready -->+				<!--<RegExpr attribute="Keyword" String="^#!\/.*" context="#stay" column="0"/>-->++				<!-- "def" - "end" blocks -->+				<!-- check for statement modifiers with regexes -->+				<Detect2Chars attribute="Operator" char="{" char1="%" context="Find closing macro brace" beginRegion="def block"/>+				<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>+				<!-- TODO: why is this needed as a Delimiter? -->+				<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>+				<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>+				<WordDetect attribute="Keyword" String="class" context="no_heredoc" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="struct" context="no_heredoc" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="macro" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="def" context="Overloaded Operators" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>+				<!-- elsif/else close the current block and start a new one -->+				<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>++				<StringDetect attribute="Operator" String="..." context="#stay"/>+				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>++				<!-- marks a message being sent, not defined -->+				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>++				<keyword attribute="Keyword" String="keywords" context="#stay"/>+				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="check_div_2"/>+				<keyword attribute="Access Control" String="access-control" context="check_div_2"/>+				<keyword attribute="Definition" String="definitions"  context="#stay" />+				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="check_div_1"/>+				<keyword attribute="Kernel methods" String="kernel-methods" context="check_div_2"/>+				<keyword attribute="Module mixin methods" String="mixin-methods" context="check_div_2"/>++				<!-- TODO: write a rule for $~ and $? -->+				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>+				<!-- Generally a module or class name like "File", "MyModule_1", .. -->+				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>++				<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->+				<!-- TODO: add support for Crystal number literals -->+				<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>+				<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>+				<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>+				<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>+				<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>+				<Int attribute="Dec" context="check_div_1"/>+				<!-- TODO: what is this? remove if this is not required. -->+				<HlCChar attribute="Char" context="check_div_1"/>++				<!-- recognize the beginning of a HEREDOC+					This uses new features in Kate 2.3 and later++					There is no other chance of keeping heredoc apart from the+					push operator '<<' than requiring to put space between the operator+					and the string.+				-->+				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;[-~](?=\w+|[&quot;'`])" beginRegion="HereDocument" />+				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'`])" beginRegion="HereDocument" />++				<DetectChar attribute="Operator" char="." context="#stay"/>+				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>+				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>+				<!-- \s! is regexp hack -->+				<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\s!|/=\s" context="#stay"/>+				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>+				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>++				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>++				<!-- Do not send to "check_div_1" context!:+				     after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->+				<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>++				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>+				<!-- TODO: There are no single-quoted strings in Crystal. Only single-quoted characters. Modify accordingly. -->+				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>+				<DetectChar attribute="Command" char="`" context="Command String"/>++				<!-- TODO: Remove this if not needed -->+				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>++				<DetectChar attribute="Comment" char="#" context="General Comment"/>++				<DetectChar attribute="Delimiter" char="["  context="#stay"/>+				<DetectChar attribute="Delimiter" char="]"  context="check_div_1"/>++				<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/>+				<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>++				<!-- handle the different regular expression formats -->+				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>++				<!-- recognize the beginning of a general delimited input format -->+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->+				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s}])" beginRegion="GdlInput" />++				<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>+				<DetectIdentifier attribute="Normal Text" context="check_div_2"/>++			</context>++			<context name="Macro" attribute="Normal Text" lineEndContext="#stay">+				<!-- TODO: copied Macro context from Normal context. repititions can be removed. pls refactor by including rules. -->+				<!-- crystal ignores newline after \ -->+				<LineContinue attribute="Normal Text" context="Line Continue"/>++				<!-- "def" - "end" blocks -->+				<!-- check for statement modifiers with regexes -->+				<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>+				<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>+				<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>+				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>+				<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="def" context="Overloaded Operators" beginRegion="def block"/>+				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>+				<!-- elsif/else close the current block and start a new one -->+				<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>++				<StringDetect attribute="Operator" String="..." context="#stay"/>+				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>++				<!-- marks a message (being sent, not defined) -->+				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>++				<keyword attribute="Keyword" String="keywords" context="#stay"/>+				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="check_div_2"/>+				<keyword attribute="Definition" String="definitions"  context="#stay" />+				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="check_div_1"/>++				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>+				<!-- Generally a module or class name like "File", "MyModule_1", .. -->+				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>++				<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->+				<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>+				<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>+				<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>+				<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>+				<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>+				<Int attribute="Dec" context="check_div_1"/>+				<HlCChar attribute="Char" context="check_div_1"/>++				<!-- recognize the beginning of a HEREDOC+					This uses new features in Kate 2.3 and later++					There is no other chance of keeping heredoc apart from the+					push operator '<<' than requiring to put space between the operator+					and the string.+				-->+				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;[-~](?=\w+|[&quot;'`])" beginRegion="HereDocument" />+				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'`])" beginRegion="HereDocument" />++				<DetectChar attribute="Operator" char="." context="#stay"/>+				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>+				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>+				<!-- \s! is regexp hack -->+				<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\s!|/=\s" context="#stay"/>+				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>+				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>++				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>++				<!-- Do not send to "check_div_1" context!:+				     after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->+				<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>++				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>+				<!-- TODO: There are no single-quoted strings in Crystal. Only single-quoted characters. Modify accordingly. -->+				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>+				<DetectChar attribute="Command" char="`" context="Command String"/>++				<!-- TODO: Remove this if not needed -->+				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>++				<DetectChar attribute="Comment" char="#" context="General Comment"/>++				<DetectChar attribute="Delimiter" char="["  context="#stay"/>+				<DetectChar attribute="Delimiter" char="]"  context="check_div_1"/>++				<!-- handle the different regular expression formats -->+				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>++				<!-- recognize the beginning of a general delimited input format -->+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->+				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s}])" beginRegion="GdlInput" />++				<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>+				<DetectIdentifier attribute="Normal Text" context="check_div_2"/>+			</context>++			<context name="Overloaded Operators" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">+				<DetectSpaces attribute="Normal Text" context="#stay"/>+				<DetectChar attribute="Normal Text" char="/" context="#pop"/>+			</context>++			<!-- In the following contexts, a slash character ('/') is a division operator -->+			<!-- Everywhere else, it's a regular expression delimiter -->++			<!-- A slash is always a division operator, even if preceeded by whitespace -->+			<context name="check_div_1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop"/>+				<DetectSpaces attribute="Normal Text" context="#stay"/>+				<Detect2Chars attribute="Operator" char="%" char1="}" context="#pop#pop"/>+				<AnyChar attribute="Operator" String="/%" context="#pop"/>+			</context>++			<!-- Same as check_div_1, but with double pop to exit the surrounding context -->+			<context name="check_div_1_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop#pop"/>+				<DetectSpaces attribute="Normal Text" context="#stay"/>+				<Detect2Chars attribute="Operator" char="%" char1="}" context="#pop#pop#pop#pop"/>+				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>+			</context>++			<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->+			<context name="check_div_2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop"/>+				<AnyChar attribute="Operator" String="/%" context="#pop"/>+				<DetectSpaces attribute="Normal Text" context="check_div_2_internal"/>+			</context>++			<!-- Internal context used by check_div_2 -->+			<context name="check_div_2_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">+				<RegExpr attribute="Operator" String="(//|[/%])(?=\s)" context="#pop#pop"/>+			</context>++			<!-- Same as check_div_2, but with double pop to exit the surrounding context -->+			<context name="check_div_2_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop#pop"/>+				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>+				<DetectSpaces attribute="Normal Text" context="check_div_2_pop_internal"/>+			</context>++			<!-- Internal context used by check_div_2_pop -->+			<context name="check_div_2_pop_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop">+				<RegExpr attribute="Operator" String="//(?=\s)" context="#pop#pop#pop"/>+				<DetectChar attribute="Operator" char="%" context="#pop#pop#pop"/>+				<RegExpr attribute="Operator" String="/(?=\s)" context="#pop#pop#pop"/>+			</context>++			<context name="Line Continue" attribute="Normal Text" lineEndContext="#pop">+				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)|(if|unless)\b" context="#stay" firstNonSpace="true"/>+				<IncludeRules context="Normal"/>+			</context>++			<context name="Find closing macro brace" attribute="Normal Text" lineEndContext="#stay">+				<Detect2Chars attribute="Operator" char="%" char1="}" context="check_div_1_pop" endRegion="def block"/>+				<IncludeRules context="Macro"/>+			</context>++			<context name="Find closing block brace" attribute="Normal Text" lineEndContext="#stay">+				<DetectChar attribute="Operator" char="}" context="check_div_1_pop" endRegion="def block"/>+				<IncludeRules context="Normal"/>+			</context>++			<context name="Quoted String" attribute="String" lineEndContext="#stay">+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="&quot;" context="#stay"/>+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+				<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/>+			</context>++			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="'" context="#stay"/>+				<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/>+			</context>++			<context name="Command String" attribute="Command" lineEndContext="#stay">+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/>+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+				<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>+			</context>++			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">+				<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/>+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>+			</context>++			<!-- Substitutions can be nested -->+			<context name="Subst" attribute="Normal Text" lineEndContext="#stay">+				<DetectChar attribute="Substitution" char="}" context="#pop"/>+				<!-- Highlight substitution as code. -->+				<IncludeRules context="Normal"/>+			</context>++			<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">+				<!-- Check for e.g.: "#@var#@@xy" -->+				<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>+				<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>+			</context>++			<!-- This handles access of nested module classes and class methods -->+			<context name="Member Access" attribute="Member" lineEndContext="#pop">+				<!-- marks a message (being sent, not defined) -->+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="check_div_2_pop"/>+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>+				<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="check_div_2_pop"/>+				<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="check_div_2_pop"/>+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>+				<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>+				<DetectChar attribute="Member" char="." context="#stay"/>++				<AnyChar attribute="Operator" String="=+-*/%|&amp;[]{}~" context="#pop"/>+				<DetectChar attribute="Comment" char="#" context="#pop"/>+				<AnyChar attribute="Normal Text" String="()\" context="#pop"/>+				<RegExpr attribute="Member" String="\W" context="#pop"/>+			</context>++			<context name="General Comment" attribute="Comment" lineEndContext="#pop">+				<DetectSpaces />+				<IncludeRules context="##Comments" />+			</context>++			<!-- HEREDOC support+				The contexts below support both normal and indented heredocs+			 -->+			<!-- here we markup the heredoc markers -->+			<context name="find_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />+				<RegExpr attribute="Keyword" context="normal_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />+			</context>+			<context name="find_indented_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />+				<RegExpr attribute="Keyword" context="indented_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />+			</context>+			<!-- these are the real heredoc contexts -->+			<context name="indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>+				<IncludeRules context="heredoc_rules" />+			</context>+			<context name="apostrophed_indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>+			</context>++			<context name="normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>+				<IncludeRules context="heredoc_rules" />+			</context>+			<context name="apostrophed_normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>+			</context>++			<!-- rules for heredoc types -->+			<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+			</context>++			<!-- avoid highlighting heredoc markers, for example, in singleton class definition (see bug: #358273) -->+			<context name="no_heredoc" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">+				<DetectSpaces />+				<Detect2Chars attribute="Operator" char="&lt;" char1="&lt;" context="#pop"/>+				<!-- comments -->+				<RegExpr attribute="Comment" String="^#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>+				<RegExpr attribute="Comment" String="^#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>+				<DetectChar attribute="Comment" char="#" context="General Comment"/>+			</context>++			<!-- General delimited input support+				The contexts below handle the various gdl formats+			 -->+			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">++				<!-- handle token arrays -->+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="&lt;" />+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />++				<!-- handle token arrays -->+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="W" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="W" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="W" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="W" char1="&lt;" />+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="W([^\s\w])" />++				<!-- handle apostrophed strings -->+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="&lt;" />+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />++				<!-- handle shell commands -->+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="&lt;" />+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />++				<!-- handle regular expressions -->+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="&lt;" />+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />++				<!-- handle double-quoted strings -->+				<!--+					  be careful to make this the last GDL ruleset, because the rule for+					  the short form %?foo? will otherwise catch any of the other formats+				-->+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" />+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="&lt;" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" />+				<DetectChar attribute="GDL input" context="gdl_dq_string_4" char="&lt;" />+				<!-- then we handle the 'any char' format -->+				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />++			</context>+			<!-- double-quoted string specific contexts follow -->+			<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="dq_string_rules" />+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />+			</context>+			<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="dq_string_rules" />+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />+				<DetectChar attribute="String" context="#pop" char=")" />+			</context>+			<!-- note that here substitution should win over nesting -->+			<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="dq_string_rules" />+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />+			</context>+			<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />+				<DetectChar attribute="String" context="#pop" char="}" />+				<IncludeRules context="dq_string_rules" />+			</context>++			<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="dq_string_rules" />+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />+			</context>+			<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />+				<DetectChar attribute="String" context="#pop" char="]" />+				<IncludeRules context="dq_string_rules" />+			</context>++			<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="dq_string_rules" />+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />+			</context>+			<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />+				<DetectChar attribute="String" context="#pop" char="&gt;" />+				<IncludeRules context="dq_string_rules" />+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">+				<IncludeRules context="dq_string_rules" />+				<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true" />+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />+			</context>+			<!-- rules to be included in all dq_string contexts -->+			<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+			</context>++			<!-- token array specific contexts -->++			<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />+			</context>+			<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />+				<DetectChar attribute="String" context="#pop" char=")" />+			</context>++			<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />+			</context>+			<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />+				<DetectChar attribute="String" context="#pop" char="}" />+			</context>++			<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />+			</context>+			<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />+				<DetectChar attribute="String" context="#pop" char="]" />+			</context>++			<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />+			</context>+			<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >+				<IncludeRules context="token_array_rules" />+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />+				<DetectChar attribute="String" context="#pop" char="&gt;" />+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">+				<IncludeRules context="token_array_rules" />+				<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true"/>+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />+			</context>++			<!-- rules to be included in all token_array contexts -->+			<context name="token_array_rules" attribute="String" lineEndContext="#stay" >+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>+			</context>++			<!-- apostrophed string specific contexts -->++			<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />+			</context>+			<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />+				<DetectChar attribute="Raw String" context="#pop" char=")" />+			</context>++			<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />+			</context>+			<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />+				<DetectChar attribute="Raw String" context="#pop" char="}" />+			</context>++			<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />+			</context>+			<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />+				<DetectChar attribute="Raw String" context="#pop" char="]" />+			</context>++			<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<Detect2Chars attribute="Raw String" char="\" char1="&gt;" context="#stay"/>+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />+			</context>+			<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >+				<IncludeRules context="apostrophed_rules" />+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />+				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">+				<IncludeRules context="apostrophed_rules" />+				<StringDetect attribute="Raw String" String="\%1" context="#stay" dynamic="true"/>+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />+			</context>++			<!-- rules to be included in all apostrophed contexts -->+			<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >+				<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>+			</context>++			<!-- shell command specific contexts -->++			<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />+			</context>+			<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />+				<DetectChar attribute="Command" context="#pop" char=")" />+			</context>++			<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />+			</context>+			<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />+				<DetectChar attribute="Command" context="#pop" char="}" />+			</context>++			<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />+			</context>+			<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />+				<DetectChar attribute="Command" context="#pop" char="]" />+			</context>++			<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<Detect2Chars attribute="Command" char="\" char1="&gt;" context="#stay"/>+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />+			</context>+			<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >+				<IncludeRules context="shell_command_rules" />+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />+				<DetectChar attribute="Command" context="#pop" char="&gt;" />+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">+				<IncludeRules context="shell_command_rules" />+				<StringDetect attribute="Command" String="\%1" context="#stay" dynamic="true" />+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />+			</context>++			<!-- rules to be included in all shell_command contexts -->+			<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >+				<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+			</context>++			<!-- regular expression specific contexts -->++			<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />+				<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />+			</context>+			<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />+				<DetectChar attribute="Regular Expression" context="#pop" char=")" />+			</context>++			<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>+				<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />+			</context>+			<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />+				<DetectChar attribute="Regular Expression" context="#pop" char="}" />+			</context>++			<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />+				<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />+			</context>+			<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />+				<DetectChar attribute="Regular Expression" context="#pop" char="]" />+			</context>++			<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<Detect2Chars attribute="Regular Expression" char="\" char1="&gt;" context="#stay"/>+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />+				<RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[uiomxn]*" endRegion="GdlInput" />+			</context>+			<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >+				<IncludeRules context="regexpr_rules" />+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />+				<DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />+			</context>++			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the+				delimiter character+			 -->+			<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">+				<IncludeRules context="regexpr_rules" />+				<StringDetect attribute="Regular Expression" String="\%1" context="#stay" dynamic="true" />+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />+			</context>++			<!-- rules to be included in all regexpr contexts -->+			<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >+				<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>+			</context>++			<!-- END of General delimited input support -->++		</contexts>++		<itemDatas>+			<itemData name="Normal Text" defStyleNum="dsNormal"/>++			<itemData name="Keyword" defStyleNum="dsControlFlow"/>+			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>+			<itemData name="Access Control" defStyleNum="dsAttribute" bold="1"/> <!-- #0000FF -->+			<itemData name="Definition" defStyleNum="dsKeyword"/>+			<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>++			<itemData name="Dec" defStyleNum="dsDecVal"/>+			<itemData name="Float" defStyleNum="dsFloat"/>+			<itemData name="Char" defStyleNum="dsChar"/>+			<itemData name="Octal" defStyleNum="dsBaseN"/>+			<itemData name="Hex" defStyleNum="dsBaseN"/>+			<itemData name="Bin" defStyleNum="dsBaseN"/>++			<itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0"/> <!-- #D40000 -->+			<itemData name="String" defStyleNum="dsString"/>+			<itemData name="Raw String" defStyleNum="dsVerbatimString" /> <!-- #DD4A4A -->+			<itemData name="Command" defStyleNum="dsInformation"/> <!-- #AA3000 -->+			<itemData name="Message" defStyleNum="dsAttribute" bold="0"/> <!-- #4000A7 -->+			<itemData name="Regular Expression" defStyleNum="dsSpecialString"/> <!-- #4A5704 -->+			<itemData name="Substitution"	defStyleNum="dsSpecialChar"/>+			<!-- short for 'general delimited input' -->+			<itemData name="GDL input" defStyleNum="dsOthers" />++			<itemData name="Global Constant" defStyleNum="dsConstant" bold="1"/> <!-- #bb1188 -->+			<itemData name="Constant" defStyleNum="dsDataType"/>+			<itemData name="Constant Value" defStyleNum="dsConstant" bold="0"/> <!-- #bb1188 -->+			<itemData name="Kernel methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->+			<itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->+			<itemData name="Member" defStyleNum="dsNormal"/>+			<itemData name="Instance Variable" defStyleNum="dsOthers"/>+			<itemData name="Class Variable" defStyleNum="dsOthers"/>++			<itemData name="Comment" defStyleNum="dsComment"/>++			<itemData name="Here Document" defStyleNum="dsDocumentation"/>++			<itemData name="Delimiter" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->+			<itemData name="Operator" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->+		</itemDatas>+	</highlighting>+	<general>+		<comments>+			<comment name="singleLine" start="#" position="afterwhitespace"/>+		</comments>+		<keywords casesensitive="1" weakDeliminator="!?"/>+	</general>+</language>++<!-- kate: replace-tabs off; -->
+ xml/racket.xml view
@@ -0,0 +1,1309 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language+[+  <!ENTITY xmlattrs "\s+([^&quot;/>]++|&quot;[^&quot;]*+&quot;)*+">+  <!ENTITY tab      "&#009;">+  <!ENTITY regex    "(?:[^\\(\[/]++|\\.|\[\^?\]?([^\\\[\]]++|\\.|\[(:[^:]+:\])?)++\]|\((?R)\))+">++  <!ENTITY initial_ascii_set "a-zA-Z!$&#37;&amp;*/:&lt;=&gt;?~_^">+  <!ENTITY initial_unicode_set "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Mn}\p{Nl}\p{No}\p{Pd}\p{Pc}\p{Po}\p{Sc}\p{Sm}\p{Sk}\p{So}\p{Co}">+  <!ENTITY initial_others "\\x[0-9a-fA-F]++;|(?![\x01-\x7f])[&initial_unicode_set;]">+  <!ENTITY initial "(?:[&initial_ascii_set;]|&initial_others;)">+  <!ENTITY subsequent "(?:[&initial_ascii_set;0-9-@.+\p{Nd}\p{Mc}\p{Me}]|&initial_others;)">+  <!ENTITY symbol "(?:&initial;&subsequent;*+)">+]>+<!--+Since Racket supports multiple scheme-like language, this was an extension to scheme.xml+It also contains keywords for a few popular racket-based langs.+-->+<language version="2" kateversion="5.62" name="Racket" section="Scripts" extensions="*.rkt;*.scrbl" author="slbtty(shenlebantongying@gmail.com)" license="MIT" priority="9">+  <highlighting>+    <list name="operators">+      <item>&lt;=</item>+      <item>&lt;</item>+      <item>=</item>+      <item>=&gt;</item>+      <item>&gt;=</item>+      <item>&gt;</item>+      <item>-</item>+      <item>/</item>+      <item>+</item>+      <item>!</item>+      <item>$</item>+      <item>%</item>+      <item>*</item>+      <item>/</item>+      <item>=</item>+      <item>></item>+      <item>?</item>+      <item>^</item>+      <item>_</item>+      <item>~</item>+    </list>++    <list name="characters">+      <item>alarm</item>+      <item>backspace</item>+      <item>delete</item>+      <item>esc</item>+      <item>linefeed</item>+      <item>newline</item>+      <item>page</item>+      <item>return</item>+      <item>space</item>+      <item>tab</item>+      <item>vtab</item>+      <!-- extension -->+      <item>nul</item>+      <item>soh</item>+      <item>stx</item>+      <item>etx</item>+      <item>eot</item>+      <item>enq</item>+      <item>ack</item>+      <item>bel</item>+      <item>bs</item>+      <item>ht</item>+      <item>nl</item>+      <item>vt</item>+      <item>np</item>+      <item>cr</item>+      <item>so</item>+      <item>si</item>+      <item>dle</item>+      <item>dc1</item>+      <item>dc2</item>+      <item>dc3</item>+      <item>dc4</item>+      <item>nak</item>+      <item>syn</item>+      <item>etb</item>+      <item>can</item>+      <item>em</item>+      <item>sub</item>+      <item>fs</item>+      <item>gs</item>+      <item>rs</item>+      <item>us</item>+      <item>sp</item>+      <item>nl</item>+      <item>ht</item>+      <item>bs</item>+      <item>cr</item>+      <item>np</item>+      <item>null</item>+      <item>nul</item>+    </list>+    <list name="defines">+      <item>define</item>+      <item>define*</item>+      <item>define-accessor</item>+      <item>define-class</item>+      <item>defined?</item>+      <item>define-generic</item>+      <item>define-macro</item>+      <item>define-method</item>+      <item>define-module</item>+      <item>define-private</item>+      <item>define-public</item>+      <item>define*-public</item>+      <item>define-reader-ctor</item>+      <item>define-syntax</item>+      <item>define-simple-macro</item>+      <item>define-syntax-macro</item>+      <item>efine-syntax-rule </item>+      <item>define-syntax-class</item>+      <item>define-syntax-parameter</item>+      <item>defmacro</item>+      <item>defmacro*</item>+      <item>defmacro*-public</item>+    </list>+    <list name="keywords">+      <item>require</item>+      <item>provide</item>+      <item>&amp;assertion</item>+      <item>&amp;condition</item>+      <item>&amp;error</item>+      <item>&amp;i/o-decoding</item>+      <item>&amp;i/o-encoding</item>+      <item>&amp;i/o-file-already-exists</item>+      <item>&amp;i/o-file-does-not-exist</item>+      <item>&amp;i/o-file-is-read-only</item>+      <item>&amp;i/o-file-protection</item>+      <item>&amp;i/o-filename</item>+      <item>&amp;i/o-invalid-position</item>+      <item>&amp;i/o-port</item>+      <item>&amp;i/o-read</item>+      <item>&amp;i/o-write</item>+      <item>&amp;i/o</item>+      <item>&amp;implementation-restriction</item>+      <item>&amp;implementation-violation</item>+      <item>&amp;irritants</item>+      <item>&amp;lexical</item>+      <item>&amp;message</item>+      <item>&amp;mistake</item>+      <item>&amp;no-infinities</item>+      <item>&amp;no-nans</item>+      <item>&amp;non-continuable</item>+      <item>&amp;serious</item>+      <item>&amp;syntax</item>+      <item>&amp;undefined</item>+      <item>&amp;violation</item>+      <item>&amp;warning</item>+      <item>&amp;who</item>+      <item>&amp;xcond</item>+      <item>abs</item>+      <item>acos</item>+      <item>and</item>+      <item>angle</item>+      <item>append</item>+      <item>apply</item>+      <item>applymap</item>+      <item>asin</item>+      <item>assert</item>+      <item>assertion-violation</item>+      <item>assertion-violation?</item>+      <item>assoc</item>+      <item>assp</item>+      <item>assq</item>+      <item>assv</item>+      <item>atan</item>+      <item>begin</item>+      <item>binary-port?</item>+      <item>bitwise-and</item>+      <item>bitwise-arithmetic-shift-left</item>+      <item>bitwise-arithmetic-shift-right</item>+      <item>bitwise-arithmetic-shift</item>+      <item>bitwise-bit-count</item>+      <item>bitwise-bit-field</item>+      <item>bitwise-bit-set?</item>+      <item>bitwise-copy-bit-field</item>+      <item>bitwise-copy-bit</item>+      <item>bitwise-first-bit-set</item>+      <item>bitwise-if</item>+      <item>bitwise-ior</item>+      <item>bitwise-length</item>+      <item>bitwise-not</item>+      <item>bitwise-reverse-bit-field</item>+      <item>bitwise-rotate-bit-field</item>+      <item>bitwise-xor</item>+      <item>boolean=?</item>+      <item>boolean?</item>+      <item>bound-identifier=?</item>+      <item>break</item>+      <item>buffer-mode</item>+      <item>buffer-mode?</item>+      <item>bytevector-&gt;sint-list</item>+      <item>bytevector-&gt;string</item>+      <item>bytevector-&gt;u8-list</item>+      <item>bytevector-&gt;uint-list</item>+      <item>bytevector-copy!</item>+      <item>bytevector-copy</item>+      <item>bytevector-fill!</item>+      <item>bytevector-ieee-double-native-ref</item>+      <item>bytevector-ieee-double-native-set!</item>+      <item>bytevector-ieee-double-ref</item>+      <item>bytevector-ieee-double-set!</item>+      <item>bytevector-ieee-single-native-ref</item>+      <item>bytevector-ieee-single-native-set!</item>+      <item>bytevector-ieee-single-ref</item>+      <item>bytevector-ieee-single-set!</item>+      <item>bytevector-length</item>+      <item>bytevector-s16-native-ref</item>+      <item>bytevector-s16-native-set!</item>+      <item>bytevector-s16-ref</item>+      <item>bytevector-s16-set!</item>+      <item>bytevector-s32-native-ref</item>+      <item>bytevector-s32-native-set!</item>+      <item>bytevector-s32-ref</item>+      <item>bytevector-s32-set!</item>+      <item>bytevector-s64-native-ref</item>+      <item>bytevector-s64-native-set!</item>+      <item>bytevector-s64-ref</item>+      <item>bytevector-s64-set!</item>+      <item>bytevector-s8-ref</item>+      <item>bytevector-s8-set!</item>+      <item>bytevector-sint-ref</item>+      <item>bytevector-sint-set!</item>+      <item>bytevector-u16-native-ref</item>+      <item>bytevector-u16-native-set!</item>+      <item>bytevector-u16-ref</item>+      <item>bytevector-u16-set!</item>+      <item>bytevector-u32-native-ref</item>+      <item>bytevector-u32-native-set!</item>+      <item>bytevector-u32-ref</item>+      <item>bytevector-u32-set!</item>+      <item>bytevector-u64-native-ref</item>+      <item>bytevector-u64-native-set!</item>+      <item>bytevector-u64-ref</item>+      <item>bytevector-u64-set!</item>+      <item>bytevector-u8-ref</item>+      <item>bytevector-u8-set!</item>+      <item>bytevector-uint-ref</item>+      <item>bytevector-uint-set!</item>+      <item>bytevector=?</item>+      <item>bytevector?</item>+      <item>caaaar</item>+      <item>caaadr</item>+      <item>caaar</item>+      <item>caadar</item>+      <item>caaddr</item>+      <item>caadr</item>+      <item>caar</item>+      <item>cadaar</item>+      <item>cadadr</item>+      <item>cadar</item>+      <item>caddar</item>+      <item>cadddr</item>+      <item>caddr</item>+      <item>cadr</item>+      <item>call-with-bytevector-output-port</item>+      <item>call-with-current-continuation</item>+      <item>call-with-input-file</item>+      <item>call-with-output-file</item>+      <item>call-with-port</item>+      <item>call-with-string-output-port</item>+      <item>call-with-values</item>+      <item>call/cc</item>+      <item>let/cc</item>+      <item>car</item>+      <item>case-lambda</item>+      <item>case</item>+      <item>catch</item>+      <item>cdaaar</item>+      <item>cdaadr</item>+      <item>cdaar</item>+      <item>cdadar</item>+      <item>cdaddr</item>+      <item>cdadr</item>+      <item>cdar</item>+      <item>cddaar</item>+      <item>cddadr</item>+      <item>cddar</item>+      <item>cdddar</item>+      <item>cddddr</item>+      <item>cdddr</item>+      <item>cddr</item>+      <item>cdr</item>+      <item>ceiling</item>+      <item>char&gt;=?</item>+      <item>char&gt;?</item>+      <item>char&lt;=?</item>+      <item>char&lt;?</item>+      <item>char&lt;?c</item>+      <item>char-&gt;integer</item>+      <item>char-alphabetic?</item>+      <item>char-ci&gt;=?</item>+      <item>char-ci&gt;?</item>+      <item>char-ci&lt;=?</item>+      <item>char-ci&lt;?</item>+      <item>char-ci=?</item>+      <item>char-downcase</item>+      <item>char-foldcase</item>+      <item>char-general-category</item>+      <item>char-lower-case?</item>+      <item>char-numeric?</item>+      <item>char-ready?</item>+      <item>char-title-case?</item>+      <item>char-titlecase</item>+      <item>char-upcase</item>+      <item>char-upper-case?</item>+      <item>char-whitespace?</item>+      <item>char=?</item>+      <item>char?</item>+      <item>close-input-port</item>+      <item>close-output-port</item>+      <item>close-port</item>+      <item>complex?</item>+      <item>cond</item>+      <item>condition-accessor</item>+      <item>condition-irritants</item>+      <item>condition-message</item>+      <item>condition-predicate</item>+      <item>condition-who</item>+      <item>condition</item>+      <item>condition?</item>+      <item>cons*</item>+      <item>cons</item>+      <item>continue</item>+      <item>cos</item>+      <item>current-error-port</item>+      <item>current-input-port</item>+      <item>current-output-port</item>+      <item>datum-&gt;syntax</item>+      <item>define-condition-type</item>+      <item>define-enumeration</item>+      <item>define-record-type</item>+      <item>delete-file</item>+      <item>denominator</item>+      <item>display</item>+      <item>div-and-mod</item>+      <item>div0-and-mod0</item>+      <item>div0</item>+      <item>div</item>+      <item>do</item>+      <item>dynamic-wind</item>+      <item>else</item>+      <item>endianness</item>+      <item>enum-set-&gt;list</item>+      <item>enum-set-complement</item>+      <item>enum-set-constructor</item>+      <item>enum-set-difference</item>+      <item>enum-set-indexer</item>+      <item>enum-set-intersection</item>+      <item>enum-set-member?</item>+      <item>enum-set-projection</item>+      <item>enum-set-subset?</item>+      <item>enum-set-union</item>+      <item>enum-set-universe</item>+      <item>enum-set=?</item>+      <item>eof-object</item>+      <item>eof-object?</item>+      <item>eol-style</item>+      <item>eq?</item>+      <item>equal-hash</item>+      <item>equal?</item>+      <item>eqv?</item>+      <item>error-handling-mode</item>+      <item>error</item>+      <item>error?</item>+      <item>eval</item>+      <item>even?</item>+      <item>exact-&gt;inexact</item>+      <item>exact->inexact</item>+      <item>exact-integer-sqrt</item>+      <item>exact</item>+      <item>exact?</item>+      <item>exp</item>+      <item>expt</item>+      <item>file-exists?</item>+      <item>file-options</item>+      <item>filter</item>+      <item>find</item>+      <item>finite?</item>+      <item>fixnum-&gt;flonum</item>+      <item>fixnum-width</item>+      <item>fixnum?</item>+      <item>fl&gt;=?</item>+      <item>fl&gt;?</item>+      <item>fl&lt;=?</item>+      <item>fl&lt;?</item>+      <item>fl*</item>+      <item>fl+</item>+      <item>fl-</item>+      <item>fl/</item>+      <item>fl=?</item>+      <item>flabs</item>+      <item>flacos</item>+      <item>flasin</item>+      <item>flatan</item>+      <item>flceiling</item>+      <item>flcos</item>+      <item>fldenominator</item>+      <item>fldiv-and-mod</item>+      <item>fldiv0-and-mod0</item>+      <item>fldiv0</item>+      <item>fldiv</item>+      <item>fleven?</item>+      <item>flexp</item>+      <item>flexpt</item>+      <item>flfinite?</item>+      <item>flfloor</item>+      <item>flinfinite?</item>+      <item>flinteger?</item>+      <item>fllog</item>+      <item>flmax</item>+      <item>flmin</item>+      <item>flmod0</item>+      <item>flmod</item>+      <item>flnan?</item>+      <item>flnegative?</item>+      <item>flnumerator</item>+      <item>flodd?</item>+      <item>flonum?</item>+      <item>floor</item>+      <item>flpositive?</item>+      <item>flround</item>+      <item>flsin</item>+      <item>flsqrt</item>+      <item>fltan</item>+      <item>fltruncate</item>+      <item>flush-output-port</item>+      <item>flzero?</item>+      <item>for-each</item>+      <item>force</item>+      <item>free-identifier=?</item>+      <item>fx&gt;=?</item>+      <item>fx&gt;?</item>+      <item>fx&lt;=?</item>+      <item>fx&lt;?</item>+      <item>fx*/carry</item>+      <item>fx*</item>+      <item>fx+/carry</item>+      <item>fx+</item>+      <item>fx-/carry</item>+      <item>fx-</item>+      <item>fx=?</item>+      <item>fxand</item>+      <item>fxarithmetic-shift-left</item>+      <item>fxarithmetic-shift-right</item>+      <item>fxarithmetic-shift</item>+      <item>fxbit-count</item>+      <item>fxbit-field</item>+      <item>fxbit-set?</item>+      <item>fxcopy-bit-field</item>+      <item>fxcopy-bit</item>+      <item>fxdiv-and-mod</item>+      <item>fxdiv0-and-mod0</item>+      <item>fxdiv0</item>+      <item>fxdiv</item>+      <item>fxeven?</item>+      <item>fxfirst-bit-set</item>+      <item>fxif</item>+      <item>fxior</item>+      <item>fxlength</item>+      <item>fxmax</item>+      <item>fxmin</item>+      <item>fxmod0</item>+      <item>fxmod</item>+      <item>fxnegative?</item>+      <item>fxnot</item>+      <item>fxodd?</item>+      <item>fxpositive?</item>+      <item>fxreverse-bit-field</item>+      <item>fxrotate-bit-field</item>+      <item>fxxor</item>+      <item>fxzero?</item>+      <item>gcd</item>+      <item>generate-temporaries</item>+      <item>get-bytevector-all</item>+      <item>get-bytevector-n!</item>+      <item>get-bytevector-n</item>+      <item>get-bytevector-some</item>+      <item>get-char</item>+      <item>get-datum</item>+      <item>get-line</item>+      <item>get-string-all</item>+      <item>get-string-n!</item>+      <item>get-string-n</item>+      <item>get-u8</item>+      <item>greatest-fixnum</item>+      <item>guard</item>+      <item>har-ci&lt;?</item>+      <item>hashtable-clear!</item>+      <item>hashtable-contains?</item>+      <item>hashtable-copy</item>+      <item>hashtable-delete!</item>+      <item>hashtable-entries</item>+      <item>hashtable-equivalence-function</item>+      <item>hashtable-hash-function</item>+      <item>hashtable-keys</item>+      <item>hashtable-mutable?</item>+      <item>hashtable-ref</item>+      <item>hashtable-set!</item>+      <item>hashtable-size</item>+      <item>hashtable-update!</item>+      <item>hashtable?</item>+      <item>i/o-decoding-error?</item>+      <item>i/o-encoding-error-char</item>+      <item>i/o-encoding-error?</item>+      <item>i/o-error-filename</item>+      <item>i/o-error-port</item>+      <item>i/o-error-position</item>+      <item>i/o-error?</item>+      <item>i/o-file-already-exists-error?</item>+      <item>i/o-file-does-not-exist-error?</item>+      <item>i/o-file-is-read-only-error?</item>+      <item>i/o-file-protection-error?</item>+      <item>i/o-filename-error?</item>+      <item>i/o-invalid-position-error?</item>+      <item>i/o-port-error?</item>+      <item>i/o-read-error?</item>+      <item>i/o-write-error?</item>+      <item>identifier-syntax</item>+      <item>identifier?</item>+      <item>if</item>+      <item>imag-part</item>+      <item>implementation-restriction-violation?</item>+      <item>inexact-&gt;exact</item>+      <item>inexact</item>+      <item>inexact?</item>+      <item>infinite?</item>+      <item>input-port?</item>+      <item>integer-&gt;char</item>+      <item>integer-valued?</item>+      <item>integer?</item>+      <item>interaction-environment</item>+      <item>irritants-condition?</item>+      <item>lambda</item>+      <item>latin-1-codec</item>+      <item>lcm</item>+      <item>least-fixnum</item>+      <item>length</item>+      <item>let*-values</item>+      <item>let*</item>+      <item>let-syntax</item>+      <item>let-values</item>+      <item>let</item>+      <item>letrec*</item>+      <item>letrec-syntax</item>+      <item>letrec</item>+      <item>lexical-violation?</item>+      <item>list-&gt;string</item>+      <item>list-&gt;vector</item>+      <item>list-ref</item>+      <item>list-sort</item>+      <item>list-tail</item>+      <item>list</item>+      <item>list?</item>+      <item>load</item>+      <item>log</item>+      <item>lookahead-char</item>+      <item>lookahead-u8</item>+      <item>map</item>+      <item>magnitude</item>+      <item>make-assertion-violation</item>+      <item>make-bytevector</item>+      <item>make-custom-binary-input-port</item>+      <item>make-custom-binary-input/output-port</item>+      <item>make-custom-binary-output-port</item>+      <item>make-custom-textual-input-port</item>+      <item>make-custom-textual-input/output-port</item>+      <item>make-custom-textual-output-port</item>+      <item>make-enumeration</item>+      <item>make-eq-hashtable</item>+      <item>make-eqv-hashtable</item>+      <item>make-error</item>+      <item>make-hashtable</item>+      <item>make-i/o-decoding-error</item>+      <item>make-i/o-encoding-error</item>+      <item>make-i/o-error</item>+      <item>make-i/o-file-already-exists-error</item>+      <item>make-i/o-file-does-not-exist-error</item>+      <item>make-i/o-file-is-read-only-error</item>+      <item>make-i/o-file-protection-error</item>+      <item>make-i/o-filename-error</item>+      <item>make-i/o-invalid-position-error</item>+      <item>make-i/o-port-error</item>+      <item>make-i/o-read-error</item>+      <item>make-i/o-write-error</item>+      <item>make-implementation-restriction-violation</item>+      <item>make-irritants-condition</item>+      <item>make-lexical-violation</item>+      <item>make-message-condition</item>+      <item>make-no-infinities-violation</item>+      <item>make-no-nans-violation</item>+      <item>make-non-continuable-violation</item>+      <item>make-polar</item>+      <item>make-record-constructor-descriptor</item>+      <item>make-record-type-descriptor</item>+      <item>make-rectangular</item>+      <item>make-serious-condition</item>+      <item>make-string</item>+      <item>make-syntax-violation</item>+      <item>make-transcoder</item>+      <item>make-undefined-violation</item>+      <item>make-variable-transformer</item>+      <item>make-vector</item>+      <item>make-violation</item>+      <item>make-warning</item>+      <item>make-who-condition</item>+      <item>max</item>+      <item>member</item>+      <item>memp</item>+      <item>memq</item>+      <item>memv</item>+      <item>message-condition?</item>+      <item>min</item>+      <item>mod0</item>+      <item>mod</item>+      <item>modulo</item>+      <item>nan?</item>+      <item>native-endianness</item>+      <item>native-eol-style</item>+      <item>native-transcoder</item>+      <item>negative?</item>+      <item>newline</item>+      <item>no-infinities-violation?</item>+      <item>no-nans-violation?</item>+      <item>non-continuable-violation?</item>+      <item>not</item>+      <item>null-environment</item>+      <item>null?</item>+      <item>number-&gt;string</item>+      <item>number->string</item>+      <item>number?</item>+      <item>numerator</item>+      <item>odd?</item>+      <item>open-bytevector-input-port</item>+      <item>open-bytevector-output-port</item>+      <item>open-file-input-port</item>+      <item>open-file-input/output-port</item>+      <item>open-file-output-port</item>+      <item>open-input-file</item>+      <item>open-output-file</item>+      <item>open-string-input-port</item>+      <item>open-string-output-port</item>+      <item>or</item>+      <item>output-port-buffer-mode</item>+      <item>output-port?</item>+      <item>pair?</item>+      <item>partition</item>+      <item>peek-char</item>+      <item>port-eof?</item>+      <item>port-has-port-position?</item>+      <item>port-has-set-port-position!?</item>+      <item>port-position</item>+      <item>port-transcoder</item>+      <item>port?</item>+      <item>positive?</item>+      <item>procedure?</item>+      <item>put-bytevector</item>+      <item>put-char</item>+      <item>put-datum</item>+      <item>put-string</item>+      <item>put-u8</item>+      <item>quasiquote</item>+      <item>quasisyntax</item>+      <item>quote</item>+      <item>quotient</item>+      <item>raise-continuable</item>+      <item>raise</item>+      <item>rational-valued?</item>+      <item>rational?</item>+      <item>rationalize</item>+      <item>read-char</item>+      <item>read</item>+      <item>real-&gt;flonum</item>+      <item>real-part</item>+      <item>real-valued?</item>+      <item>real?</item>+      <item>record-accessor</item>+      <item>record-constructor-descriptor</item>+      <item>record-constructor</item>+      <item>record-field-mutable?</item>+      <item>record-mutator</item>+      <item>record-predicate</item>+      <item>record-rtd</item>+      <item>record-type-descriptor</item>+      <item>record-type-descriptor?</item>+      <item>record-type-field-names</item>+      <item>record-type-generative?</item>+      <item>record-type-name</item>+      <item>record-type-opaque?</item>+      <item>record-type-parent</item>+      <item>record-type-sealed?</item>+      <item>record-type-uid</item>+      <item>record?</item>+      <item>remainder</item>+      <item>remove</item>+      <item>remp</item>+      <item>remq</item>+      <item>remv</item>+      <item>reverse</item>+      <item>round</item>+      <item>scheme-report-environment</item>+      <item>serious-condition?</item>+      <item>set!</item>+      <item>set-car!</item>+      <item>set-cdr!</item>+      <item>set-port-position!</item>+      <item>simple-conditions</item>+      <item>sin</item>+      <item>sint-list-&gt;bytevector</item>+      <item>sqrt</item>+      <item>standard-error-port</item>+      <item>standard-input-port</item>+      <item>standard-output-port</item>+      <item>string&gt;=?</item>+      <item>string&gt;?</item>+      <item>string&lt;=?</item>+      <item>string&lt;?</item>+      <item>string-&gt;bytevector</item>+      <item>string-&gt;list</item>+      <item>string-&gt;number</item>+      <item>string-&gt;symbol</item>+      <item>string-&gt;utf16</item>+      <item>string-&gt;utf32</item>+      <item>string-&gt;utf8</item>+      <item>string-append</item>+      <item>string-ci&gt;=?</item>+      <item>string-ci&gt;?</item>+      <item>string-ci&lt;=?</item>+      <item>string-ci&lt;?</item>+      <item>string-ci-hash</item>+      <item>string-ci=?</item>+      <item>string-copy</item>+      <item>string-downcase</item>+      <item>string-fill!</item>+      <item>string-foldcase</item>+      <item>string-hash</item>+      <item>string-length</item>+      <item>string-normalize-nfc</item>+      <item>string-normalize-nfd</item>+      <item>string-normalize-nfkc</item>+      <item>string-normalize-nfkd</item>+      <item>string-ref</item>+      <item>string-set!</item>+      <item>string-titlecase</item>+      <item>string-upcase</item>+      <item>string</item>+      <item>string=?</item>+      <item>string?</item>+      <item>struct</item>+      <item>substring</item>+      <item>symbol-&gt;string</item>+      <item>symbol-hash</item>+      <item>symbol=?</item>+      <item>symbol?</item>+      <item>syntax-&gt;datum</item>+      <item>syntax-case</item>+      <item>syntax-rules</item>+      <item>syntax-violation-form</item>+      <item>syntax-violation-subform</item>+      <item>syntax-violation</item>+      <item>syntax-violation?</item>+      <item>syntax</item>+      <item>tan</item>+      <item>textual-port?</item>+      <item>transcoded-port</item>+      <item>transcoder-codec</item>+      <item>transcoder-eol-style</item>+      <item>transcoder-error-handling-mode</item>+      <item>transcript-off</item>+      <item>transcript-on</item>+      <item>truncate</item>+      <item>u8-list-&gt;bytevector</item>+      <item>uint-list-&gt;bytevector</item>+      <item>undefined-violation?</item>+      <item>unquote-splicing</item>+      <item>unquote</item>+      <item>unsyntax-splicing</item>+      <item>unsyntax</item>+      <item>utf-16-codec</item>+      <item>utf-8-codec</item>+      <item>utf16-&gt;string</item>+      <item>utf32-&gt;string</item>+      <item>utf8-&gt;string</item>+      <item>values</item>+      <item>vector-&gt;list</item>+      <item>vector-&gt;listlist->vector</item>+      <item>vector-fill!</item>+      <item>vector-length</item>+      <item>vector-ref</item>+      <item>vector-set!</item>+      <item>vector-sort!</item>+      <item>vector-sort</item>+      <item>vector</item>+      <item>vector?</item>+      <item>violation?</item>+      <item>warning?</item>+      <item>while</item>+      <item>who-condition?</item>+      <item>with-exception-handler</item>+      <item>with-input-from-file</item>+      <item>with-output-to-file</item>+      <item>with-syntax</item>+      <item>write-char</item>+      <item>write</item>+      <item>zero?</item>+    </list>+    <contexts>+++      <context name="Default" attribute="Normal" lineEndContext="#stay">+        <DetectSpaces/>++        <!-- "#lang x" line -->+        <RegExpr attribute="Comment" String="^#lang.*" context="#stay" column="0"/>+        <DetectChar attribute="Comment" context="hash" char="#" lookAhead="1"/>+        <DetectChar attribute="Comment" context="semicolon" char=";" lookAhead="1"/>+        <DetectChar attribute="String" context="String" char="&quot;"/>+        <Detect2Chars attribute="String" context="Template" char="&amp;" char1="{"/>+        <AnyChar attribute="Brackets" context="#stay" String="(){}[]"/>+        <keyword attribute="Keyword" context="#stay" String="keywords"/>+        <keyword attribute="Definition" context="function_decl" String="defines"/>+        <keyword attribute="Operator" context="#stay" String="operators"/>+        <RegExpr attribute="Normal" context="#stay" String="&symbol;"/>+        <!-- s, f, d, l are extensions of Kawa -->+        <RegExpr attribute="Float" context="#stay" String="[0-9]*+\.[0-9]++([esfdl][+-]?[0-9]++)?|[0-9]++[esfdl][+-]?[0-9]++"/>+        <RegExpr attribute="Decimal" context="#stay" String="[0-9]++"/>+      </context>+++      <context name="Template" attribute="String" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="String" context="#pop" char="}"/>+        <DetectChar attribute="String" context="Template" char="{"/>+        <DetectChar attribute="Char" context="TemplateTemplate" char="&amp;" lookAhead="1"/>+      </context>+      <context name="TemplateTemplate" attribute="String" lineEndContext="#pop">+        <Detect2Chars attribute="Operator" context="#stay" char="&amp;" char1="|" firstNonSpace="1"/>+        <Detect2Chars attribute="Operator" context="#pop!NotNewlineTemplate" char="&amp;" char1="-"/>+        <Detect2Chars attribute="Extension" context="#pop!FormatTemplate" char="&amp;" char1="~"/>+        <StringDetect attribute="Comment" context="#pop!MultiLineComment" String="&amp;#|" beginRegion="comment"/>+        <RegExpr attribute="Char" context="#pop!EndCharTemplate" String="(&amp;(?:#(?:[0-9]+|x[0-9a-fA-F]+)|[_a-zA-Z][-:_a-zA-Z0-9]*))" lookAhead="1"/>+        <DetectChar attribute="String" context="#pop" char="&amp;"/>+      </context>+      <context name="FormatTemplate" attribute="Extension" lineEndContext="#pop" fallthroughContext="#pop">+        <AnyChar attribute="Extension" context="#pop" String="({["/>+        <AnyChar attribute="Extension" context="FormatTemplate" String=")}]"/>+        <RegExpr attribute="Extension" context="#pop" String="[^(){}\[\]]+"/>+      </context>+      <context name="NotNewlineTemplate" attribute="String" lineEndContext="#pop" fallthroughContext="#pop">+        <DetectSpaces/>+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|" beginRegion="comment"/>+      </context>+      <context name="EndCharTemplate" attribute="Comment" lineEndContext="#stay">+        <StringDetect attribute="Char" context="#pop" String="%1;" dynamic="1"/>+        <StringDetect attribute="Error" context="#pop" String="%1" dynamic="1"/>+      </context>+++      <context name="semicolon" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop!comment">+        <RegExpr attribute="Region Marker" context="#pop" String=";+\s*BEGIN\b.*" beginRegion="region"/>+        <RegExpr attribute="Region Marker" context="#pop" String=";+\s*END\b.*" endRegion="region"/>+      </context>+      <context name="comment" attribute="Comment" lineEndContext="#pop">+        <DetectSpaces/>+        <IncludeRules context="##Comments"/>+        <DetectIdentifier/>+      </context>++      <context name="hash" attribute="Normal" lineEndContext="#stay">+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="t"/>+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="T"/>+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="f"/>+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="F"/>+        <Detect2Chars attribute="Base Prefix" context="#pop!Num16" char="#" char1="x"/>+        <Detect2Chars attribute="Base Prefix" context="#pop!Num8" char="#" char1="o"/>+        <Detect2Chars attribute="Base Prefix" context="#pop!Num2" char="#" char1="b"/>+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="e"/>+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="i"/>+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="d"/>+        <Detect2Chars attribute="Char" context="#pop!Char" char="#" char1="\"/>+        <Detect2Chars attribute="Comment" context="#pop!DatumComment" char="#" char1=";"/>+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|" beginRegion="comment"/>+        <Detect2Chars attribute="Comment" context="#pop!MultiLineGuileCommentOrExtension" char="#" char1="!" lookAhead="1"/>++        <!-- Kawa extension -->+        <Detect2Chars attribute="Operator" context="#pop!Regex" char="#" char1="/"/>+        <Detect2Chars attribute="XML Tag" context="#pop!XML" char="#" char1="&lt;" lookAhead="1"/>++        <DetectChar attribute="Normal" context="#pop" char="#"/>+      </context>+++      <context name="XML" attribute="XML Tag" lineEndContext="#pop">+        <StringDetect attribute="XML Tag" context="#pop!XMLProc" String="#&lt;?"/>+        <StringDetect attribute="XML Comment" context="#pop!XMLComment" String="#&lt;!--"/>+        <StringDetect attribute="XML Tag" context="#pop!XMLCDATA" String="#&lt;![CDATA["/>+        <StringDetect attribute="XML Tag" context="#pop!XMLTagExpr1" String="#&lt;("/>+        <StringDetect attribute="XML Tag" context="#pop!XMLTagExpr2" String="#&lt;{"/>+        <RegExpr attribute="XML Tag" context="#pop!XMLTag" String="#&lt;[^\s>]++"/>+        <Detect2Chars attribute="Error" context="#pop" char="#" char1="&lt;"/>+      </context>++      <context name="XMLTagExpr1" attribute="Normal" lineEndContext="#stay">+        <DetectChar attribute="XML Tag" context="#pop!XMLTag" char=")"/>+        <IncludeRules context="Default"/>+      </context>+      <context name="XMLTagExpr2" attribute="Normal" lineEndContext="#stay">+        <DetectChar attribute="XML Tag" context="#pop!XMLTag" char="}"/>+        <IncludeRules context="Default"/>+      </context>++      <context name="XMLTag" attribute="XML Attribute" lineEndContext="#stay">+        <DetectSpaces/>+        <Detect2Chars attribute="XML Tag" context="#pop" char="/" char1=">"/>+        <DetectChar attribute="XML Tag" context="#pop!XMLInnerTag" char=">"/>+        <RegExpr attribute="XML Attribute" context="XMLAttribute" String="[^\s=/>]++\s*"/>+      </context>+      <context name="XMLInnerTag" attribute="XML Tag" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="XML String" context="XMLEscape" char="&amp;" lookAhead="1"/>+        <DetectChar attribute="XML Tag" context="XMLFindXML" char="&lt;" lookAhead="1"/>+      </context>+      <context name="XMLFindXML" attribute="String" lineEndContext="#stay">+        <Detect2Chars attribute="XML Tag" context="#pop!XMLProc" char="&lt;" char1="?"/>+        <Detect2Chars attribute="XML Tag" context="#pop!XMLTagExpr1" char="&lt;" char1="("/>+        <Detect2Chars attribute="XML Tag" context="#pop!XMLTagExpr2" char="&lt;" char1="{"/>+        <StringDetect attribute="XML Comment" context="#pop!XMLComment" String="&lt;!--"/>+        <StringDetect attribute="XML Tag" context="#pop!XMLCDATA" String="&lt;![CDATA["/>+        <Detect2Chars attribute="XML Tag" context="#pop!XMLCloseTag" char="&lt;" char1="/" lookAhead="1"/>+        <RegExpr attribute="XML Tag" context="#pop!XMLTag" String="&lt;[^\s>]++"/>+        <DetectChar attribute="XML Error" context="#pop" char="&lt;"/>+      </context>+      <context name="XMLCloseTag" attribute="String" lineEndContext="#pop#pop">+        <RegExpr attribute="XML Tag" context="#pop#pop" String="&lt;/[^\s>]*>"/>+        <Detect2Chars attribute="XML Error" context="#pop#pop" char="&lt;" char1="/"/>+      </context>++      <context name="XMLAttribute" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="#pop">+        <DetectSpaces/>+        <DetectChar attribute="XML Attribute" context="XMLAttributeValue" char="="/>+      </context>+      <context name="XMLAttributeValue" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="#pop#pop">+        <DetectSpaces/>+        <DetectChar attribute="XML String" context="XMLDQ" char="&quot;"/>+        <DetectChar attribute="XML String" context="XMLSQ" char="'"/>+      </context>+      <context name="XMLDQ" attribute="XML String" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="XML String" context="#pop#pop#pop" char="&quot;"/>+        <IncludeRules context="XMLStringEscape"/>+      </context>+      <context name="XMLSQ" attribute="XML String" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="XML String" context="#pop#pop#pop" char="'"/>+        <IncludeRules context="XMLStringEscape"/>+      </context>+      <context name="XMLStringEscape" attribute="XML String" lineEndContext="#stay">+        <DetectChar attribute="XML String" context="XMLEscape" char="&amp;" lookAhead="1"/>+        <DetectChar attribute="XML Error" context="#stay" char="&lt;"/>+      </context>+      <context name="XMLEscape" attribute="XML String" lineEndContext="#stay">+        <RegExpr attribute="XML Entity" context="#pop" String="&amp;(?:lt|gt|amp|quot|apos|#[0-9]+|x[0-9a-fA-F]+);"/>+        <DetectChar attribute="XML Error" context="#pop" char="&amp;"/>+      </context>+      <context name="XMLProc" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="XMLProcAttrs">+        <RegExpr attribute="XML Tag" context="XMLProcAttrs" String="[^\s?]+"/>+      </context>+      <context name="XMLProcAttrs" attribute="XML Attribute" lineEndContext="#stay">+        <Detect2Chars attribute="XML Tag" context="#pop#pop" char="?" char1=">"/>+      </context>++      <context name="XMLComment" attribute="XML Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <Detect2Chars attribute="XML Comment" context="XMLCommentCheck" char="-" char1="-" lookAhead="1"/>+      </context>+      <context name="XMLCommentCheck" attribute="Comment" lineEndContext="#stay">+        <StringDetect attribute="XML Tag" context="#pop#pop" String="-->"/>+        <Detect2Chars attribute="XML Error" context="#pop" char="-" char1="-"/>+      </context>++      <context name="XMLCDATA" attribute="XML CDATA" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <StringDetect attribute="XML Tag" context="#pop" String="]]>"/>+      </context>+++      <context name="Regex" attribute="Extension" lineEndContext="#pop" fallthroughContext="#pop">+        <RegExpr attribute="Extension" context="RegexEnd" String="&regex;"/>+      </context>+      <context name="RegexEnd" attribute="Extension" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">+        <DetectChar attribute="Operator" context="RegexModifier" char="/"/>+      </context>+      <context name="RegexModifier" attribute="Extension" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">+        <AnyChar attribute="Extension" context="#stay" String="ism"/>+      </context>+++      <context name="Num2" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit2">+        <IncludeRules context="NumPrefix"/>+        <AnyChar attribute="Function" context="#pop!Digit2" String="+-"/>+      </context>+      <context name="Digit2" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">+        <AnyChar attribute="Decimal" context="#stay" String="01"/>+      </context>++      <context name="Num8" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit8">+        <IncludeRules context="NumPrefix"/>+        <AnyChar attribute="Function" context="#pop!Digit8" String="+-"/>+      </context>+      <context name="Digit8" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">+        <AnyChar attribute="Decimal" context="#stay" String="01234567"/>+      </context>++      <context name="Num10" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit10">+        <IncludeRules context="NumPrefix"/>+        <AnyChar attribute="Function" context="#pop!Digit10" String="+-"/>+      </context>+      <context name="Digit10" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">+        <!-- s, f, d, l are extensions of Kawa -->+        <RegExpr attribute="Float" context="#pop" String="[0-9]*+\.[0-9]++([esfdl][+-]?[0-9]++)?|[0-9]++[esfdl][+-]?[0-9]++"/>+        <RegExpr attribute="Decimal" context="#pop" String="[0-9]++"/>+      </context>++      <context name="Num16" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit16">+        <IncludeRules context="NumPrefix"/>+        <AnyChar attribute="Function" context="#pop!Digit16" String="+-"/>+      </context>+      <context name="Digit16" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">+        <RegExpr attribute="Decimal" context="#pop" String="[0-9a-fA-F]+"/>+      </context>++      <context name="NumPrefix" attribute="Decimal" lineEndContext="#pop">+        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="e"/>+        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="i"/>+      </context>+++      <context name="Char" attribute="Char" lineEndContext="#pop">+        <DetectChar attribute="Char" context="HexChar" char="x"/>+        <keyword attribute="Char" context="#pop" String="characters" insensitive="1"/>+        <RegExpr attribute="Char" context="#pop" String=".(?!\w)"/>+        <RegExpr attribute="Error" context="#pop" String="\w+|."/>+      </context>+      <context name="HexChar" attribute="Char" lineEndContext="#pop#pop">+        <RegExpr attribute="Char" context="#pop#pop" String="[0-9a-fA-F]+"/>+      </context>+++      <context name="MultiLineGuileCommentOrExtension" attribute="Comment" lineEndContext="#stay">+        <RegExpr attribute="Extension" context="#pop" String="#!\w+"/>+        <Detect2Chars attribute="Comment" context="#pop!MultiLineGuileComment" char="#" char1="!" beginRegion="comment"/>+      </context>++      <context name="MultiLineGuileComment" attribute="Comment" lineEndContext="#stay" fallthroughContext="comment">+        <RegExpr attribute="Comment" context="#pop" String="^!#\s*$" endRegion="comment" column="0"/>+      </context>++      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <Detect2Chars attribute="Comment" context="#pop" char="|" char1="#" endRegion="comment"/>+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="#" char1="|" beginRegion="comment"/>+        <IncludeRules context="##Comments"/>+        <DetectIdentifier/>+      </context>+++      <context name="DatumComment" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <DetectChar attribute="Comment" context="#pop!DatumCommentParent" char="(" beginRegion="comment"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentBracket" char="[" beginRegion="comment"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentBrace" char="{" beginRegion="comment"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentString" char="&quot;"/>++        <DetectChar attribute="Comment" context="#pop!DatumCommentHash" char="#"/>++        <RegExpr attribute="Comment" context="#pop!DatumCommentExpr" String="[^{}\[\]()\s]+"/>+      </context>+      <context name="DatumCommentHash" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <DetectChar attribute="Comment" context="#pop!DatumCommentRegex" char="/"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentXML" char="&lt;"/>+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentTemplate" char="&amp;" char1="{"/>+        <DetectIdentifier/>+      </context>++      <context name="DatumCommentTemplate" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="Comment" context="#pop" char="}"/>+        <DetectChar attribute="Comment" context="DatumCommentTemplate" char="{"/>+        <DetectChar attribute="Comment" context="DatumCommentTemplateTemplate" char="&amp;"/>+      </context>+      <context name="DatumCommentTemplateTemplate" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <DetectChar attribute="Comment" context="#pop!DatumCommentParent2" char="("/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentBracket2" char="["/>+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentFormatTemplate" char="~"/>+        <RegExpr attribute="Comment" context="#pop" String="&amp;(?:#(?:[0-9]+|x[0-9a-fA-F]+)|[_a-zA-Z][-:_a-zA-Z0-9]*);?"/>+      </context>+      <context name="DatumCommentFormatTemplate" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <AnyChar attribute="Comment" context="#pop" String="({["/>+        <AnyChar attribute="Comment" context="DatumCommentFormatTemplate" String=")}]"/>+        <RegExpr attribute="Comment" context="#pop" String="[^(){}\[\]]+"/>+      </context>++      <context name="DatumCommentRegex" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <RegExpr attribute="Comment" context="DatumCommentRegexEnd" String="&regex;"/>+      </context>+      <context name="DatumCommentRegexEnd" attribute="Comment" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">+        <DetectChar attribute="Comment" context="DatumCommentRegexModifier" char="/"/>+      </context>+      <context name="DatumCommentRegexModifier" attribute="Comment" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">+        <AnyChar attribute="Comment" context="#stay" String="ism"/>+      </context>++      <context name="DatumCommentXML" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLProc" char="?"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTagExpr1" char="("/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTagExpr2" char="{"/>+        <Detect2Chars attribute="Comment" context="#pop" char="/" char1=">"/>+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLComment" String="!--"/>+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLCDATA" String="![CDATA["/>+        <RegExpr attribute="Comment" context="#pop!DatumCommentXMLTag" String="[^\s>]++\s*"/>+      </context>++      <context name="DatumCommentXMLProc" attribute="Comment" lineEndContext="#stay">+        <Detect2Chars attribute="Comment" context="#pop" char="?" char1=">"/>+      </context>+      <context name="DatumCommentXMLCDATA" attribute="Comment" lineEndContext="#stay">+        <StringDetect attribute="Comment" context="#pop" String="]]>"/>+      </context>+      <context name="DatumCommentXMLComment" attribute="Comment" lineEndContext="#stay">+        <StringDetect attribute="Comment" context="#pop" String="-->"/>+      </context>+      <context name="DatumCommentXMLTagExpr1" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTag" char=")"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>+      <context name="DatumCommentXMLTagExpr2" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTag" char="}"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>++      <context name="DatumCommentXMLTag" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <Detect2Chars attribute="Comment" context="#pop" char="/" char1=">"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLInnerTag" char=">"/>+        <RegExpr attribute="Comment" context="DatumCommentXMLAttribute" String="[^\s=/>]++\s*"/>+      </context>+      <context name="DatumCommentXMLInnerTag" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="Comment" context="DatumCommentXMLEscape" char="&amp;" lookAhead="1"/>+        <DetectChar attribute="Comment" context="DatumCommentXMLFindXML" char="&lt;" lookAhead="1"/>+      </context>+      <context name="DatumCommentXMLFindXML" attribute="Comment" lineEndContext="#stay">+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLProc" char="&lt;" char1="?"/>+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLTagExpr1" char="&lt;" char1="("/>+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLTagExpr2" char="&lt;" char1="{"/>+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLComment" String="&lt;!--"/>+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLCDATA" String="&lt;![CDATA["/>+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLCloseTag" char="&lt;" char1="/" lookAhead="1"/>+        <RegExpr attribute="Comment" context="#pop!DatumCommentXMLTag" String="&lt;[^\s>]++"/>+        <DetectChar attribute="Comment" context="#pop" char="&lt;"/>+      </context>+      <context name="DatumCommentXMLCloseTag" attribute="Comment" lineEndContext="#pop#pop">+        <RegExpr attribute="Comment" context="#pop#pop" String="&lt;/[^\s>]*>"/>+        <Detect2Chars attribute="XML Error" context="#pop#pop" char="&lt;" char1="/"/>+      </context>++      <context name="DatumCommentXMLAttribute" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop">+        <DetectSpaces/>+        <DetectChar attribute="Comment" context="DatumCommentXMLAttributeValue" char="="/>+      </context>+      <context name="DatumCommentXMLAttributeValue" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop#pop">+        <DetectSpaces/>+        <DetectChar attribute="Comment" context="DatumCommentXMLDQ" char="&quot;"/>+        <DetectChar attribute="Comment" context="DatumCommentXMLSQ" char="'"/>+      </context>+      <context name="DatumCommentXMLDQ" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="Comment" context="#pop#pop#pop" char="&quot;"/>+        <IncludeRules context="DatumCommentXMLStringEscape"/>+      </context>+      <context name="DatumCommentXMLSQ" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="Comment" context="#pop#pop#pop" char="'"/>+        <IncludeRules context="DatumCommentXMLStringEscape"/>+      </context>+      <context name="DatumCommentXMLStringEscape" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="DatumCommentXMLEscape" char="&amp;" lookAhead="1"/>+        <DetectChar attribute="XML Error" context="#stay" char="&lt;"/>+      </context>++      <context name="DatumCommentXMLEscape" attribute="Comment" lineEndContext="#stay">+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentParent2" char="&amp;" char1="("/>+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentBrace2" char="&amp;" char1="{"/>+        <RegExpr attribute="Comment" context="#pop" String="&amp;(?:lt|gt|amp|quot|apos|#[0-9]+|x[0-9a-fA-F]+);"/>+        <DetectChar attribute="XML Error" context="#pop" char="&amp;"/>+      </context>++      <context name="DatumCommentExpr" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">+        <DetectChar attribute="Comment" context="#pop!DatumCommentParent2" char="("/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentBrace2" char="{"/>+        <DetectChar attribute="Comment" context="#pop!DatumCommentBracket2" char="["/>+      </context>++      <context name="DatumCommentString" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char="&quot;"/>+        <RegExpr attribute="Comment" context="#stay" String="(?:[^\\&quot;]++|\\.)++"/>+      </context>++      <context name="DatumCommentParent" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char=")" endRegion="comment"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>+      <context name="DatumCommentParent2" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char=")"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>+      <context name="DatumCommentBracket" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char="]" endRegion="comment"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>+      <context name="DatumCommentBracket2" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char="]"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>+      <context name="DatumCommentBrace" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char="}" endRegion="comment"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>+      <context name="DatumCommentBrace2" attribute="Comment" lineEndContext="#stay">+        <DetectChar attribute="Comment" context="#pop" char="}"/>+        <IncludeRules context="DatumCommentInExpr"/>+      </context>++      <context name="DatumCommentInExpr" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces/>+        <DetectIdentifier/>+        <DetectChar attribute="Comment" context="DatumCommentParent2" char="("/>+        <DetectChar attribute="Comment" context="DatumCommentBrace2" char="{"/>+        <DetectChar attribute="Comment" context="DatumCommentBracket2" char="["/>+        <DetectChar attribute="Comment" context="DatumCommentString" char="&quot;"/>+        <DetectChar attribute="Comment" context="DatumCommentHash" char="#"/>+      </context>+++      <context name="String" attribute="String" lineEndContext="#stay">+        <DetectChar attribute="String" context="#pop" char="&quot;"/>+        <DetectChar attribute="Char" context="EscapeString" char="\"/>+      </context>+      <context name="EscapeString" attribute="Char" lineEndContext="#pop" fallthroughContext="#pop">+        <AnyChar attribute="Char" context="#pop" String="abfnrtv&quot;\"/>+        <AnyChar attribute="Char" context="MultiLineString" String="&tab; "/>+        <RegExpr attribute="Char" context="#pop" String="[xXu][0-9a-fA-F]+;|\\[0-7]{3}|(?:[MC]-|\^)?."/>+      </context>+      <context name="MultiLineString" attribute="String" lineEndContext="#stay" fallthroughContext="#pop#pop">+        <DetectSpaces/>+      </context>++      <context name="function_decl" attribute="Function" lineEndContext="#stay">+        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-!$%&quot;*/:&lt;=>?~_^+.@]*\s*"/>+      </context>+    </contexts>+    <itemDatas>+      <itemData name="Normal"      defStyleNum="dsNormal"/>+      <itemData name="Keyword"     defStyleNum="dsKeyword" spellChecking="0"/>+      <itemData name="Definition"  defStyleNum="dsExtension" spellChecking="0"/>+      <itemData name="Operator"    defStyleNum="dsOperator" spellChecking="0"/>+      <itemData name="Function"    defStyleNum="dsFunction" spellChecking="0"/>+      <itemData name="Base Prefix" defStyleNum="dsSpecialChar" spellChecking="0"/>+      <itemData name="Decimal"     defStyleNum="dsDecVal" spellChecking="0"/>+      <itemData name="Float"       defStyleNum="dsFloat" spellChecking="0"/>+      <itemData name="Char"        defStyleNum="dsChar" spellChecking="0"/>+      <itemData name="String"      defStyleNum="dsString"/>+      <itemData name="Comment"     defStyleNum="dsComment"/>+      <itemData name="Error"       defStyleNum="dsError" spellChecking="0"/>+      <itemData name="Extension"   defStyleNum="dsExtension" spellChecking="0"/>+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>+      <itemData name="XML Tag"     defStyleNum="dsString" spellChecking="0"/>+      <itemData name="XML Comment" defStyleNum="dsComment"/>+      <itemData name="XML CDATA"   defStyleNum="dsString"/>+      <itemData name="XML Attribute" defStyleNum="dsOthers" spellChecking="0"/>+      <itemData name="XML String"  defStyleNum="dsString"/>+      <itemData name="XML Error"   defStyleNum="dsError" spellChecking="0"/>+      <itemData name="XML Entity"  defStyleNum="dsDecVal" spellChecking="0"/>+      <itemData name="Brackets" defStyleNum="dsOperator" spellChecking="0"/>+    </itemDatas>+  </highlighting>+  <general>+    <keywords casesensitive="1" weakDeliminator="-+*?!&lt;&gt;=/:.,\&amp;" additionalDeliminator="&quot;;#"/>+    <comments>+      <comment name="singleLine" start=";;"/>+      <comment name="multiLine" start="#|" end="|#" region="comment"/>+    </comments>+  </general>+</language>+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
+ xml/zig.xml view
@@ -0,0 +1,311 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language [+    <!ENTITY bin_int "(?:[01]+(?:_[01]+)*)">+    <!ENTITY oct_int "(?:[0-7]+(?:_[0-7]+)*)">+    <!ENTITY dec_int "(?:[0-9]+(?:_[0-9]+)*)">+    <!ENTITY hex_int "(?:[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)">+    <!ENTITY exp_float "(?:[eE][+-]?&dec_int;)">+    <!ENTITY exp_hexfloat "(?:[pP][-+]?&dec_int;)">+]>+<language name="Zig" section="Sources" version="2" kateversion="5.62" indenter="cstyle" extensions="*.zig" mimetype="text/x-zig" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">+    <highlighting>+        <list name="keywords">+            <item>addrspace</item>+            <item>align</item>+            <item>and</item>+            <item>anyframe</item>+            <item>anytype</item>+            <item>asm</item>+            <item>callconv</item>+            <item>enum</item>+            <item>error</item>+            <item>export</item>+            <item>fn</item>+            <item>inline</item>+            <item>noalias</item>+            <item>nosuspend</item>+            <item>noinline</item>+            <item>opaque</item>+            <item>or</item>+            <item>orelse</item>+            <item>packed</item>+            <item>pub</item>+            <item>resume</item>+            <item>linksection</item>+            <item>struct</item>+            <item>suspend</item>+            <item>test</item>+            <item>union</item>+            <item>unreachable</item>+            <item>usingnamespace</item>+        </list>+        <list name="controlflow">+            <item>while</item>+            <item>try</item>+            <item>switch</item>+            <item>return</item>+            <item>for</item>+            <item>if</item>+            <item>continue</item>+            <item>else</item>+            <item>break</item>+            <item>catch</item>+            <item>defer</item>+            <item>errdefer</item>+        </list>+        <list name="types">+            <item>i8</item>+            <item>u8</item>+            <item>i16</item>+            <item>u16</item>+            <item>i32</item>+            <item>u32</item>+            <item>i64</item>+            <item>u64</item>+            <item>i128</item>+            <item>u128</item>+            <item>isize</item>+            <item>usize</item>+            <item>c_short</item>+            <item>c_ushort</item>+            <item>c_int</item>+            <item>c_uint</item>+            <item>c_long</item>+            <item>c_ulong</item>+            <item>c_longlong</item>+            <item>c_ulonglong</item>+            <item>c_longdouble</item>+            <item>f16</item>+            <item>f32</item>+            <item>f64</item>+            <item>f80</item>+            <item>f128</item>+            <item>bool</item>+            <item>anyopaque</item>+            <item>void</item>+            <item>noreturn</item>+            <item>type</item>+            <item>anyerror</item>+            <item>comptime_int</item>+            <item>comptime_float</item>+        </list>+        <list name="modifiers">+            <item>async</item>+            <item>await</item>+            <item>const</item>+            <item>threadlocal</item>+            <item>extern</item>+            <item>allowzero</item>+            <item>comptime</item>+            <item>var</item>+            <item>volatile</item>+        </list>+        <list name="literals">+            <item>false</item>+            <item>null</item>+            <item>true</item>+            <item>undefined</item>+        </list>+        <list name="builtin_functions">+            <item>@addrSpaceCast</item>+            <item>@addWithOverflow</item>+            <item>@alignCast</item>+            <item>@alignOf</item>+            <item>@as</item>+            <item>@atomicLoad</item>+            <item>@atomicRmw</item>+            <item>@atomicStore</item>+            <item>@bitCast</item>+            <item>@bitOffsetOf</item>+            <item>@boolToInt</item>+            <item>@bitSizeOf</item>+            <item>@breakpoint</item>+            <item>@mulAdd</item>+            <item>@byteSwap</item>+            <item>@bitReverse</item>+            <item>@offsetOf</item>+            <item>@call</item>+            <item>@cDefine</item>+            <item>@cImport</item>+            <item>@cInclude</item>+            <item>@clz</item>+            <item>@cmpxchgStrong</item>+            <item>@cmpxchgWeak</item>+            <item>@compileError</item>+            <item>@compileLog</item>+            <item>@ctz</item>+            <item>@cUndef</item>+            <item>@cVaArg</item>+            <item>@cVaCopy</item>+            <item>@cVaEnd</item>+            <item>@cVaStart</item>+            <item>@divExact</item>+            <item>@divFloor</item>+            <item>@divTrunc</item>+            <item>@embedFile</item>+            <item>@enumToInt</item>+            <item>@errorName</item>+            <item>@errorReturnTrace</item>+            <item>@errorToInt</item>+            <item>@errSetCast</item>+            <item>@export</item>+            <item>@extern</item>+            <item>@fence</item>+            <item>@field</item>+            <item>@fieldParentPtr</item>+            <item>@floatCast</item>+            <item>@floatToInt</item>+            <item>@frameAddress</item>+            <item>@hasDecl</item>+            <item>@hasField</item>+            <item>@import</item>+            <item>@intCast</item>+            <item>@intToEnum</item>+            <item>@intToError</item>+            <item>@intToFloat</item>+            <item>@intToPtr</item>+            <item>@max</item>+            <item>@memcpy</item>+            <item>@memset</item>+            <item>@min</item>+            <item>@wasmMemorySize</item>+            <item>@wasmMemoryGrow</item>+            <item>@mod</item>+            <item>@mulWithOverflow</item>+            <item>@panic</item>+            <item>@popCount</item>+            <item>@prefetch</item>+            <item>@ptrCast</item>+            <item>@ptrToInt</item>+            <item>@rem</item>+            <item>@returnAddress</item>+            <item>@select</item>+            <item>@setAlignStack</item>+            <item>@setCold</item>+            <item>@setEvalBranchQuota</item>+            <item>@setFloatMode</item>+            <item>@setRuntimeSafety</item>+            <item>@shlExact</item>+            <item>@shlWithOverflow</item>+            <item>@shrExact</item>+            <item>@shuffle</item>+            <item>@sizeOf</item>+            <item>@splat</item>+            <item>@reduce</item>+            <item>@src</item>+            <item>@sqrt</item>+            <item>@sin</item>+            <item>@cos</item>+            <item>@tan</item>+            <item>@exp</item>+            <item>@exp2</item>+            <item>@log</item>+            <item>@log2</item>+            <item>@log10</item>+            <item>@fabs</item>+            <item>@floor</item>+            <item>@ceil</item>+            <item>@trunc</item>+            <item>@round</item>+            <item>@subWithOverflow</item>+            <item>@tagName</item>+            <item>@This</item>+            <item>@truncate</item>+            <item>@Type</item>+            <item>@typeInfo</item>+            <item>@typeName</item>+            <item>@TypeOf</item>+            <item>@unionInit</item>+            <item>@Vector</item>+        </list>+        <contexts>+            <context attribute="Normal Text" lineEndContext="#stay" name="Normal">+                <DetectSpaces/>+                <Detect2Chars char="/" char1="/" attribute="Comment" context="Comment"/>+                <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?|~^"/>+                <AnyChar context="Number" String="0123456789" lookAhead="1"/>+                <DetectChar attribute="String" context="DoubleQuoteString" char="&quot;"/>+                <DetectChar attribute="Character" context="SingleQuoteString" char="'"/>+                <Detect2Chars char="\" char1="\" attribute="String" context="Multiline String"/>+                <keyword String="keywords" attribute="Keyword" context="#stay"/>+                <keyword String="types" attribute="Type" context="#stay"/>+                <keyword attribute="Constant" context="#stay" String="literals"/>+                <keyword attribute="Builtin Functions" context="#stay" String="builtin_functions"/>+                <keyword attribute="Control Flow" context="#stay" String="controlflow"/>+                <keyword attribute="Modifiers" context="#stay" String="modifiers"/>+                <WordDetect attribute="Self Variable" String="self"/>+                <!-- <AnyChar context="SpecialType" String="iu" lookAhead="1"/> -->+                <DetectIdentifier/>+            </context>+            <!-- Strings -->+            <context attribute="String" lineEndContext="#pop" name="DoubleQuoteString">+                <DetectChar context="EscapeChar" char="\" lookAhead="1"/>+                <DetectChar attribute="String" context="#pop" char="&quot;"/>+            </context>+            <context attribute="Character" lineEndContext="#pop" name="SingleQuoteString">+                <DetectChar context="EscapeChar" char="\" lookAhead="1"/>+                <DetectChar attribute="Character" context="#pop" char="'"/>+            </context>+            <context attribute="String" lineEndContext="#pop" name="Multiline String"/>+            <context attribute="String Char" lineEndContext="#pop" name="EscapeChar">+                <RegExpr attribute="String Char" context="#pop" String="\\([nrt'&quot;\\]|x[0-9a-fA-F]{2}|u\{[0-9a-fA-F]+\})"/>+                <RegExpr attribute="Error" context="#pop" String="\\(x[0-9a-fA-F]?|u\{[0-9a-fA-F]{0,8}\}?)?"/>+            </context>+            <!-- Comment -->+            <context attribute="Comment" lineEndContext="#pop" name="Comment">+                <DetectSpaces attribute="Comment"/>+                <IncludeRules context="##Comments"/>+                <DetectIdentifier attribute="Comment"/>+            </context>+            <!-- Integer / Float -->+            <context name="Number" attribute="Normal Text" lineEndContext="#pop">+                <RegExpr attribute="Float" context="#pop!SuffixNumber" String="&dec_int;(\.&dec_int;&exp_float;?|&exp_float;)"/>+                <RegExpr attribute="Decimal" context="#pop!SuffixNumber" String="0(?=[^xob]|$)|(?=0[xob])|&dec_int;"/>+                <RegExpr attribute="Hex Float" context="#pop!SuffixNumber" String="0x&hex_int;(\.&hex_int;&exp_hexfloat;?|&exp_hexfloat;)"/>+                <RegExpr attribute="Hex" context="#pop!SuffixNumber" String="0x&hex_int;"/>+                <RegExpr attribute="Octal" context="#pop!SuffixNumber" String="0o&oct_int;"/>+                <RegExpr attribute="Binary" context="#pop!SuffixNumber" String="0b&bin_int;"/>+                <DetectChar attribute="Decimal" context="#pop!SuffixNumber" char="0"/>+            </context>+            <context name="SuffixNumber" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">+                <AnyChar attribute="Error" String=".0123456789" context="#pop"/>+                <DetectIdentifier attribute="Error" context="#pop"/>+            </context>+            <!-- Integer type -->+            <!-- i or u followed by digits. The maximum allowed bit-width of an integer type is 65535 -->+            <!--<context name="SpecialType" attribute="Normal Text" lineEndContext="#pop">+                <RegExpr attribute="Type" context="#pop" String="\b[ui]([0-9]{1,4}|[1-5][0-9]{4}|6([0-4][0-9]{3}|5([0-4][0-9]{2}|5([0-2][0-9]|3[0-5]))))\b"/>+                <DetectIdentifier attribute="Normal Text" context="#pop"/>+            </context>-->+        </contexts>+        <itemDatas>+            <itemData name="Normal Text" defStyleNum="dsNormal"/>+            <itemData name="Self Variable" defStyleNum="dsVariable" spellChecking="false"/>+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+            <itemData name="Type" defStyleNum="dsDataType" spellChecking="false"/>+            <itemData name="Builtin Functions" defStyleNum="dsBuiltIn" spellChecking="false"/>+            <itemData name="Constant" defStyleNum="dsConstant" spellChecking="false"/>+            <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>+            <itemData name="Modifiers" defStyleNum="dsAttribute" spellChecking="false"/>+            <itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>+            <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>+            <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>+            <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>+            <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>+            <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>+            <itemData name="Hex Float" defStyleNum="dsFloat" spellChecking="false"/>+            <itemData name="String" defStyleNum="dsString"/>+            <itemData name="String Char" defStyleNum="dsSpecialChar"/>+            <itemData name="Character" defStyleNum="dsChar" spellChecking="false"/>+            <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>+        </itemDatas>+    </highlighting>+    <general>+        <comments>+            <comment name="singleLine" start="//"/>+        </comments>+        <keywords casesensitive="true"/>+    </general>+</language>+<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->