<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="Crystal" section="Sources" version="1" kateversion="5.62" extensions="*.cr" mimetype="application/x-crystal" style="crystal" indenter="ruby" author="Gaurav Shah (gauravshah.89@gmail.com)" license="LGPLv2+"><highlighting><list name="keywords"><item>alias</item><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>enum</item><item>for</item><item>fun</item><item>if</item><item>in</item><item>lib</item><item>next</item><item>rescue</item><item>return</item><item>then</item><item>type</item><item>union</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>property</item><item>setter</item></list><list name="definitions"><item>alias</item><item>class</item><item>def</item><item>macro</item><item>module</item><item>struct</item></list><list name="pseudo-variables"><item>__DIR__</item><item>__END_LINE__</item><item>__FILE__</item><item>__LINE__</item><item>caller</item><item>false</item><item>nil</item><item>self</item><item>super</item><item>true</item></list><list name="kernel-methods"><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"><LineContinue attribute="Normal Text" context="Line Continue"/><StringDetect String="{%" attribute="Operator" context="Find closing macro brace" beginRegion="def block"/><DetectChar char="{" attribute="Operator" context="Find closing block brace" beginRegion="def block"/><DetectChar char="}" attribute="Delimiter" context="check_div_1" endRegion="def block"/><RegExpr String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" attribute="Keyword" beginRegion="def block"/><RegExpr String="(if|unless)\b" attribute="Keyword" beginRegion="def block" firstNonSpace="1"/><WordDetect String="class" attribute="Keyword" context="no_heredoc" beginRegion="def block"/><WordDetect String="struct" attribute="Keyword" context="no_heredoc" beginRegion="def block"/><WordDetect String="module" attribute="Keyword" beginRegion="def block"/><WordDetect String="begin" attribute="Keyword" beginRegion="def block"/><WordDetect String="case" attribute="Keyword" beginRegion="def block"/><WordDetect String="do" attribute="Keyword" beginRegion="def block"/><WordDetect String="macro" attribute="Keyword" beginRegion="def block"/><WordDetect String="def" attribute="Keyword" context="Overloaded Operators" beginRegion="def block"/><WordDetect String="end" attribute="Keyword" endRegion="def block"/><RegExpr String="\b(else|elsif|rescue|ensure)\b" attribute="Keyword" beginRegion="def block" endRegion="def block"/><StringDetect String="..." attribute="Operator"/><StringDetect String=".." attribute="Operator"/><RegExpr String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" attribute="Message" context="check_div_2"/><keyword String="keywords" attribute="Keyword"/><keyword String="attribute-definitions" attribute="Attribute Definition" context="check_div_2"/><keyword String="access-control" attribute="Access Control" context="check_div_2"/><keyword String="definitions" attribute="Definition"/><keyword String="pseudo-variables" attribute="Pseudo variable" context="check_div_1"/><keyword String="kernel-methods" attribute="Kernel methods" context="check_div_2"/><keyword String="mixin-methods" attribute="Module mixin methods" context="check_div_2"/><RegExpr String="\b[_A-Z]+[A-Z_0-9]+\b" attribute="Global Constant" context="check_div_2"/><RegExpr String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" attribute="Constant" context="check_div_2"/><RegExpr String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" attribute="Hex" context="check_div_1"/><RegExpr String="\b\-?0[bB]([01]|_[01])+" attribute="Bin" context="check_div_1"/><RegExpr String="\b\-?0[1-7]([0-7]|_[0-7])*" attribute="Octal" context="check_div_1"/><RegExpr String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" attribute="Float" context="check_div_1"/><RegExpr String="\b\-?[1-9]([0-9]|_[0-9])*\b" attribute="Dec" context="check_div_1"/><Int attribute="Dec" context="check_div_1"/><HlCChar attribute="Char" context="check_div_1"/><RegExpr String="\s*&lt;&lt;[-~](?=\w+|[&#34;'`])" attribute="Operator" context="find_indented_heredoc" beginRegion="HereDocument"/><RegExpr String="\s*&lt;&lt;(?=\w+|[&#34;'`])" attribute="Operator" context="find_heredoc" beginRegion="HereDocument"/><DetectChar char="." attribute="Operator"/><StringDetect String="&amp;&amp;" attribute="Operator"/><StringDetect String="||" attribute="Operator"/><RegExpr String="\s[\?\:\%]\s|[|&amp;&lt;>\^\+*~\-=]+|\s!|/=\s" attribute="Operator"/><StringDetect String="%=" attribute="Operator"/><StringDetect String="::" attribute="Operator" context="Member Access"/><RegExpr String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" attribute="Symbol" context="check_div_1"/><RegExpr String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " attribute="Symbol"/><DetectChar char='"' attribute="String" context="Quoted String"/><DetectChar char="'" attribute="Raw String" context="Apostrophed String"/><DetectChar char="`" attribute="Command" context="Command String"/><StringDetect String="?#" attribute="Normal Text"/><DetectChar char="#" attribute="Comment" context="General Comment"/><DetectChar char="[" attribute="Delimiter"/><DetectChar char="]" attribute="Delimiter" context="check_div_1"/><RegExpr String="@[a-zA-Z_0-9]+" attribute="Instance Variable" context="check_div_1"/><RegExpr String="@@[a-zA-Z_0-9]+" attribute="Class Variable" context="check_div_1"/><DetectChar char="/" attribute="Regular Expression" context="RegEx 1"/><RegExpr String="\s*[%](?=[QqxwW]?[^\s}])" attribute="GDL input" context="find_gdl_input" beginRegion="GdlInput"/><DetectChar char=")" attribute="Normal Text" context="check_div_1"/><DetectIdentifier attribute="Normal Text" context="check_div_2"/></context><context name="check_div_1" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><StringDetect String="//" attribute="Operator" context="#pop"/><DetectSpaces attribute="Normal Text"/><StringDetect String="%}" attribute="Operator" context="#pop#pop"/><AnyChar String="/%" attribute="Operator" context="#pop"/></context><context name="check_div_2" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><StringDetect String="//" attribute="Operator" context="#pop"/><AnyChar String="/%" attribute="Operator" context="#pop"/><DetectSpaces attribute="Normal Text" context="check_div_2_internal"/></context><context name="apostrophed_rules" attribute="Raw String"><StringDetect String="\\" attribute="Raw String"/></context><context name="dq_string_rules" attribute="String"><StringDetect String="\\" attribute="String"/><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/></context><context name="regexpr_rules" attribute="Regular Expression"><StringDetect String="\\" attribute="Regular Expression"/><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/></context><context name="shell_command_rules" attribute="Command"><StringDetect String="\\" attribute="Command"/><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/></context><context name="token_array_rules" attribute="String"><StringDetect String="\\" attribute="String"/></context><context name="Short Subst" attribute="Substitution" lineEndContext="#pop"><RegExpr String="#@{1,2}" attribute="Substitution"/><RegExpr String="\w(?!\w)" attribute="Substitution" context="#pop"/></context><context name="Subst" attribute="Normal Text"><DetectChar char="}" attribute="Substitution" context="#pop"/><IncludeRules context="Normal"/></context><context name="check_div_1_pop" attribute="Normal Text" fallthroughContext="#pop#pop" lineEndContext="#pop#pop"><StringDetect String="//" attribute="Operator" context="#pop#pop"/><DetectSpaces attribute="Normal Text"/><StringDetect String="%}" attribute="Operator" context="#pop#pop#pop#pop"/><AnyChar String="/%" attribute="Operator" context="#pop#pop"/></context><context name="General Comment" attribute="Comment" lineEndContext="#pop"><DetectSpaces/><IncludeRules context="##Comments"/></context><context name="check_div_2_pop" attribute="Normal Text" fallthroughContext="#pop#pop" lineEndContext="#pop#pop"><StringDetect String="//" attribute="Operator" context="#pop#pop"/><AnyChar String="/%" attribute="Operator" context="#pop#pop"/><DetectSpaces attribute="Normal Text" context="check_div_2_pop_internal"/></context><context name="Apostrophed String" attribute="Raw String"><StringDetect String="\\" attribute="String"/><StringDetect String="\'" attribute="String"/><DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/></context><context name="Command String" attribute="Command"><StringDetect String="\\" attribute="String"/><StringDetect String="\`" attribute="String"/><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/><DetectChar char="`" attribute="Command" context="check_div_1_pop"/></context><context name="Find closing block brace" attribute="Normal Text"><DetectChar char="}" attribute="Operator" context="check_div_1_pop" endRegion="def block"/><IncludeRules context="Normal"/></context><context name="Line Continue" attribute="Normal Text" lineEndContext="#pop"><RegExpr String="(while|until)\b(?!.*\bdo\b)|(if|unless)\b" attribute="Keyword" firstNonSpace="1"/><IncludeRules context="Normal"/></context><context name="Member Access" attribute="Member" lineEndContext="#pop"><RegExpr String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" attribute="Message" context="check_div_2_pop"/><RegExpr String="\.?[_a-z]\w*(\?|\!)?" attribute="Message"/><RegExpr String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" attribute="Constant" context="check_div_2_pop"/><RegExpr String="[A-Z]+_*([0-9]|[a-z])\w*" attribute="Constant"/><RegExpr String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" attribute="Constant Value" context="check_div_2_pop"/><RegExpr String="[_A-Z][_A-Z0-9]*" attribute="Constant Value"/><StringDetect String="::" attribute="Operator"/><DetectChar char="." attribute="Member"/><AnyChar String="=+-*/%|&amp;[]{}~" attribute="Operator" context="#pop"/><DetectChar char="#" attribute="Comment" context="#pop"/><AnyChar String="()\" attribute="Normal Text" context="#pop"/><RegExpr String="\W" attribute="Member" context="#pop"/></context><context name="Overloaded Operators" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="/" attribute="Normal Text" context="#pop"/></context><context name="Quoted String" attribute="String"><StringDetect String="\\" attribute="String"/><StringDetect String='\"' attribute="String"/><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/><DetectChar char='"' attribute="String" context="check_div_1_pop"/></context><context name="RegEx 1" attribute="Regular Expression"><StringDetect String="\/" attribute="Regular Expression"/><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/><RegExpr String="/[uiomxn]*" attribute="Regular Expression" context="check_div_1_pop"/></context><context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop"><StringDetect String="w(" attribute="GDL input" context="gdl_token_array_1"/><StringDetect String="w{" attribute="GDL input" context="gdl_token_array_2"/><StringDetect String="w[" attribute="GDL input" context="gdl_token_array_3"/><StringDetect String="w&lt;" attribute="GDL input" context="gdl_token_array_4"/><RegExpr String="w([^\s\w])" attribute="GDL input" context="gdl_token_array_5"/><StringDetect String="W(" attribute="GDL input" context="gdl_token_array_1"/><StringDetect String="W{" attribute="GDL input" context="gdl_token_array_2"/><StringDetect String="W[" attribute="GDL input" context="gdl_token_array_3"/><StringDetect String="W&lt;" attribute="GDL input" context="gdl_token_array_4"/><RegExpr String="W([^\s\w])" attribute="GDL input" context="gdl_token_array_5"/><StringDetect String="q(" attribute="GDL input" context="gdl_apostrophed_1"/><StringDetect String="q{" attribute="GDL input" context="gdl_apostrophed_2"/><StringDetect String="q[" attribute="GDL input" context="gdl_apostrophed_3"/><StringDetect String="q&lt;" attribute="GDL input" context="gdl_apostrophed_4"/><RegExpr String="q([^\s\w])" attribute="GDL input" context="gdl_apostrophed_5"/><StringDetect String="x(" attribute="GDL input" context="gdl_shell_command_1"/><StringDetect String="x{" attribute="GDL input" context="gdl_shell_command_2"/><StringDetect String="x[" attribute="GDL input" context="gdl_shell_command_3"/><StringDetect String="x&lt;" attribute="GDL input" context="gdl_shell_command_4"/><RegExpr String="x([^\s\w])" attribute="GDL input" context="gdl_shell_command_5"/><StringDetect String="r(" attribute="GDL input" context="gdl_regexpr_1"/><StringDetect String="r{" attribute="GDL input" context="gdl_regexpr_2"/><StringDetect String="r[" attribute="GDL input" context="gdl_regexpr_3"/><StringDetect String="r&lt;" attribute="GDL input" context="gdl_regexpr_4"/><RegExpr String="r([^\s\w])" attribute="GDL input" context="gdl_regexpr_5"/><StringDetect String="Q(" attribute="GDL input" context="gdl_dq_string_1"/><StringDetect String="Q{" attribute="GDL input" context="gdl_dq_string_2"/><StringDetect String="Q[" attribute="GDL input" context="gdl_dq_string_3"/><StringDetect String="Q&lt;" attribute="GDL input" context="gdl_dq_string_4"/><DetectChar char="(" attribute="GDL input" context="gdl_dq_string_1"/><DetectChar char="{" attribute="GDL input" context="gdl_dq_string_2"/><DetectChar char="[" attribute="GDL input" context="gdl_dq_string_3"/><DetectChar char="&lt;" attribute="GDL input" context="gdl_dq_string_4"/><RegExpr String="Q?([^\s\w])" attribute="GDL input" context="gdl_dq_string_5"/></context><context name="find_heredoc" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><RegExpr String="'(\w+)'" attribute="Keyword" context="apostrophed_normal_heredoc"/><RegExpr String='(?|(\w+)|"(\w+)"|`(\w+)`)' attribute="Keyword" context="normal_heredoc"/></context><context name="find_indented_heredoc" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><RegExpr String="'(\w+)'" attribute="Keyword" context="apostrophed_indented_heredoc"/><RegExpr String='(?|(\w+)|"(\w+)"|`(\w+)`)' attribute="Keyword" context="indented_heredoc"/></context><context name="gdl_apostrophed_1_nested" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><DetectChar char="(" attribute="Raw String" context="gdl_apostrophed_1_nested"/><DetectChar char=")" attribute="Raw String" context="#pop"/></context><context name="gdl_apostrophed_2_nested" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><DetectChar char="{" attribute="Raw String" context="gdl_apostrophed_2_nested"/><DetectChar char="}" attribute="Raw String" context="#pop"/></context><context name="gdl_apostrophed_3_nested" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><DetectChar char="[" attribute="Raw String" context="gdl_apostrophed_3_nested"/><DetectChar char="]" attribute="Raw String" context="#pop"/></context><context name="gdl_apostrophed_4_nested" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><DetectChar char="&lt;" attribute="Raw String" context="gdl_apostrophed_4_nested"/><DetectChar char=">" attribute="Raw String" context="#pop"/></context><context name="gdl_dq_string_1" attribute="String"><IncludeRules context="dq_string_rules"/><StringDetect String="\)" attribute="String"/><DetectChar char="(" attribute="String" context="gdl_dq_string_1_nested"/><DetectChar char=")" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_dq_string_1_nested" attribute="String"><IncludeRules context="dq_string_rules"/><DetectChar char="(" attribute="String" context="gdl_dq_string_1_nested"/><DetectChar char=")" attribute="String" context="#pop"/></context><context name="gdl_dq_string_2" attribute="String"><IncludeRules context="dq_string_rules"/><StringDetect String="\}" attribute="String"/><DetectChar char="}" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/><DetectChar char="{" attribute="String" context="gdl_dq_string_2_nested"/></context><context name="gdl_dq_string_2_nested" attribute="String"><DetectChar char="{" attribute="String" context="gdl_dq_string_2_nested"/><DetectChar char="}" attribute="String" context="#pop"/><IncludeRules context="dq_string_rules"/></context><context name="gdl_dq_string_3" attribute="String"><IncludeRules context="dq_string_rules"/><StringDetect String="\]" attribute="String"/><DetectChar char="[" attribute="String" context="gdl_dq_string_3_nested"/><DetectChar char="]" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_dq_string_3_nested" attribute="String"><DetectChar char="[" attribute="String" context="gdl_dq_string_3_nested"/><DetectChar char="]" attribute="String" context="#pop"/><IncludeRules context="dq_string_rules"/></context><context name="gdl_dq_string_4" attribute="String"><IncludeRules context="dq_string_rules"/><StringDetect String="\>" attribute="String"/><DetectChar char="&lt;" attribute="String" context="gdl_dq_string_4_nested"/><DetectChar char=">" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_dq_string_4_nested" attribute="String"><DetectChar char="&lt;" attribute="String" context="gdl_dq_string_4_nested"/><DetectChar char=">" attribute="String" context="#pop"/><IncludeRules context="dq_string_rules"/></context><context name="gdl_regexpr_1_nested" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><DetectChar char="(" attribute="Regular Expression" context="gdl_regexpr_1_nested"/><DetectChar char=")" attribute="Regular Expression" context="#pop"/></context><context name="gdl_regexpr_2_nested" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><DetectChar char="{" attribute="Regular Expression" context="gdl_regexpr_2_nested"/><DetectChar char="}" attribute="Regular Expression" context="#pop"/></context><context name="gdl_regexpr_3_nested" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><DetectChar char="[" attribute="Regular Expression" context="gdl_regexpr_3_nested"/><DetectChar char="]" attribute="Regular Expression" context="#pop"/></context><context name="gdl_regexpr_4_nested" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><DetectChar char="&lt;" attribute="Regular Expression" context="gdl_regexpr_4_nested"/><DetectChar char=">" attribute="Regular Expression" context="#pop"/></context><context name="gdl_shell_command_1_nested" attribute="Command"><IncludeRules context="shell_command_rules"/><DetectChar char="(" attribute="Command" context="gdl_shell_command_1_nested"/><DetectChar char=")" attribute="Command" context="#pop"/></context><context name="gdl_shell_command_2_nested" attribute="Command"><IncludeRules context="shell_command_rules"/><DetectChar char="{" attribute="Command" context="gdl_shell_command_2_nested"/><DetectChar char="}" attribute="Command" context="#pop"/></context><context name="gdl_shell_command_3_nested" attribute="Command"><IncludeRules context="shell_command_rules"/><DetectChar char="[" attribute="Command" context="gdl_shell_command_3_nested"/><DetectChar char="]" attribute="Command" context="#pop"/></context><context name="gdl_shell_command_4_nested" attribute="Command"><IncludeRules context="shell_command_rules"/><DetectChar char="&lt;" attribute="Command" context="gdl_shell_command_4_nested"/><DetectChar char=">" attribute="Command" context="#pop"/></context><context name="gdl_token_array_1" attribute="String"><IncludeRules context="token_array_rules"/><StringDetect String="\)" attribute="String"/><DetectChar char="(" attribute="String" context="gdl_token_array_1_nested"/><DetectChar char=")" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_token_array_1_nested" attribute="String"><IncludeRules context="token_array_rules"/><DetectChar char="(" attribute="String" context="gdl_token_array_1_nested"/><DetectChar char=")" attribute="String" context="#pop"/></context><context name="gdl_token_array_2" attribute="String"><IncludeRules context="token_array_rules"/><StringDetect String="\}" attribute="String"/><DetectChar char="}" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/><DetectChar char="{" attribute="String" context="gdl_token_array_2_nested"/></context><context name="gdl_token_array_2_nested" attribute="String"><IncludeRules context="token_array_rules"/><DetectChar char="{" attribute="String" context="gdl_token_array_2_nested"/><DetectChar char="}" attribute="String" context="#pop"/></context><context name="gdl_token_array_3" attribute="String"><IncludeRules context="token_array_rules"/><StringDetect String="\]" attribute="String"/><DetectChar char="[" attribute="String" context="gdl_token_array_3_nested"/><DetectChar char="]" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_token_array_3_nested" attribute="String"><IncludeRules context="token_array_rules"/><DetectChar char="[" attribute="String" context="gdl_token_array_3_nested"/><DetectChar char="]" attribute="String" context="#pop"/></context><context name="gdl_token_array_4" attribute="String"><IncludeRules context="token_array_rules"/><StringDetect String="\>" attribute="String"/><DetectChar char="&lt;" attribute="String" context="gdl_token_array_4_nested"/><DetectChar char=">" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_token_array_4_nested" attribute="String"><IncludeRules context="token_array_rules"/><DetectChar char="&lt;" attribute="String" context="gdl_token_array_4_nested"/><DetectChar char=">" attribute="String" context="#pop"/></context><context name="gdl_token_array_5" attribute="String"><IncludeRules context="token_array_rules"/><StringDetect String="\%1" attribute="String" dynamic="1"/><RegExpr String="\s*%1" attribute="GDL input" context="#pop#pop" endRegion="GdlInput" dynamic="1"/></context><context name="heredoc_rules" attribute="Normal Text"><RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/><StringDetect String="#{" attribute="Substitution" context="Subst"/></context><context name="no_heredoc" attribute="Normal Text" fallthroughContext="#pop"><DetectSpaces/><StringDetect String="&lt;&lt;" attribute="Operator" context="#pop"/><RegExpr String="^#\s*BEGIN.*$" attribute="Comment" beginRegion="marker" column="0"/><RegExpr String="^#\s*END.*$" attribute="Comment" endRegion="marker" column="0"/><DetectChar char="#" attribute="Comment" context="General Comment"/></context><context name="Find closing macro brace" attribute="Normal Text"><StringDetect String="%}" attribute="Operator" context="check_div_1_pop" endRegion="def block"/><IncludeRules context="Macro"/></context><context name="Macro" attribute="Normal Text"><LineContinue attribute="Normal Text" context="Line Continue"/><DetectChar char="{" attribute="Operator" context="Find closing block brace" beginRegion="def block"/><DetectChar char="}" attribute="Delimiter" context="check_div_1" endRegion="def block"/><RegExpr String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" attribute="Keyword" beginRegion="def block"/><RegExpr String="(if|unless)\b" attribute="Keyword" beginRegion="def block" firstNonSpace="1"/><WordDetect String="begin" attribute="Keyword" beginRegion="def block"/><RegExpr String="\bfor\b(?!.*\bdo\b)" attribute="Keyword" beginRegion="def block"/><WordDetect String="do" attribute="Keyword" beginRegion="def block"/><WordDetect String="def" attribute="Keyword" context="Overloaded Operators" beginRegion="def block"/><WordDetect String="end" attribute="Keyword" endRegion="def block"/><RegExpr String="\b(else|elsif|rescue|ensure)\b" attribute="Keyword" beginRegion="def block" endRegion="def block"/><StringDetect String="..." attribute="Operator"/><StringDetect String=".." attribute="Operator"/><RegExpr String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" attribute="Message" context="check_div_2"/><keyword String="keywords" attribute="Keyword"/><keyword String="attribute-definitions" attribute="Attribute Definition" context="check_div_2"/><keyword String="definitions" attribute="Definition"/><keyword String="pseudo-variables" attribute="Pseudo variable" context="check_div_1"/><RegExpr String="\b[_A-Z]+[A-Z_0-9]+\b" attribute="Global Constant" context="check_div_2"/><RegExpr String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" attribute="Constant" context="check_div_2"/><RegExpr String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" attribute="Hex" context="check_div_1"/><RegExpr String="\b\-?0[bB]([01]|_[01])+" attribute="Bin" context="check_div_1"/><RegExpr String="\b\-?0[1-7]([0-7]|_[0-7])*" attribute="Octal" context="check_div_1"/><RegExpr String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" attribute="Float" context="check_div_1"/><RegExpr String="\b\-?[1-9]([0-9]|_[0-9])*\b" attribute="Dec" context="check_div_1"/><Int attribute="Dec" context="check_div_1"/><HlCChar attribute="Char" context="check_div_1"/><RegExpr String="\s*&lt;&lt;[-~](?=\w+|[&#34;'`])" attribute="Operator" context="find_indented_heredoc" beginRegion="HereDocument"/><RegExpr String="\s*&lt;&lt;(?=\w+|[&#34;'`])" attribute="Operator" context="find_heredoc" beginRegion="HereDocument"/><DetectChar char="." attribute="Operator"/><StringDetect String="&amp;&amp;" attribute="Operator"/><StringDetect String="||" attribute="Operator"/><RegExpr String="\s[\?\:\%]\s|[|&amp;&lt;>\^\+*~\-=]+|\s!|/=\s" attribute="Operator"/><StringDetect String="%=" attribute="Operator"/><StringDetect String="::" attribute="Operator" context="Member Access"/><RegExpr String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" attribute="Symbol" context="check_div_1"/><RegExpr String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " attribute="Symbol"/><DetectChar char='"' attribute="String" context="Quoted String"/><DetectChar char="'" attribute="Raw String" context="Apostrophed String"/><DetectChar char="`" attribute="Command" context="Command String"/><StringDetect String="?#" attribute="Normal Text"/><DetectChar char="#" attribute="Comment" context="General Comment"/><DetectChar char="[" attribute="Delimiter"/><DetectChar char="]" attribute="Delimiter" context="check_div_1"/><DetectChar char="/" attribute="Regular Expression" context="RegEx 1"/><RegExpr String="\s*[%](?=[QqxwW]?[^\s}])" attribute="GDL input" context="find_gdl_input" beginRegion="GdlInput"/><DetectChar char=")" attribute="Normal Text" context="check_div_1"/><DetectIdentifier attribute="Normal Text" context="check_div_2"/></context><context name="apostrophed_indented_heredoc" attribute="Here Document"><RegExpr String="%1$" attribute="Keyword" context="#pop#pop" endRegion="HereDocument" dynamic="1" firstNonSpace="1"/></context><context name="apostrophed_normal_heredoc" attribute="Here Document"><RegExpr String="^%1$" attribute="Keyword" context="#pop#pop" endRegion="HereDocument" column="0" dynamic="1"/></context><context name="check_div_2_internal" attribute="Normal Text" fallthroughContext="#pop#pop" lineEndContext="#pop#pop"><RegExpr String="(//|[/%])(?=\s)" attribute="Operator" context="#pop#pop"/></context><context name="check_div_2_pop_internal" attribute="Normal Text" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop"><RegExpr String="//(?=\s)" attribute="Operator" context="#pop#pop#pop"/><DetectChar char="%" attribute="Operator" context="#pop#pop#pop"/><RegExpr String="/(?=\s)" attribute="Operator" context="#pop#pop#pop"/></context><context name="gdl_apostrophed_1" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><StringDetect String="\)" attribute="Raw String"/><DetectChar char="(" attribute="Raw String" context="gdl_apostrophed_1_nested"/><DetectChar char=")" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_apostrophed_2" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><StringDetect String="\}" attribute="Raw String"/><DetectChar char="}" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/><DetectChar char="{" attribute="Raw String" context="gdl_apostrophed_2_nested"/></context><context name="gdl_apostrophed_3" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><StringDetect String="\]" attribute="Raw String"/><DetectChar char="[" attribute="Raw String" context="gdl_apostrophed_3_nested"/><DetectChar char="]" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_apostrophed_4" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><StringDetect String="\>" attribute="Raw String"/><DetectChar char="&lt;" attribute="Raw String" context="gdl_apostrophed_4_nested"/><DetectChar char=">" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_apostrophed_5" attribute="Raw String"><IncludeRules context="apostrophed_rules"/><StringDetect String="\%1" attribute="Raw String" dynamic="1"/><RegExpr String="\s*%1" attribute="GDL input" context="#pop#pop" endRegion="GdlInput" dynamic="1"/></context><context name="gdl_dq_string_5" attribute="String"><IncludeRules context="dq_string_rules"/><StringDetect String="\%1" attribute="String" dynamic="1"/><RegExpr String="\s*%1" attribute="GDL input" context="#pop#pop" endRegion="GdlInput" dynamic="1"/></context><context name="gdl_regexpr_1" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><StringDetect String="\)" attribute="Regular Expression"/><DetectChar char="(" attribute="Regular Expression" context="gdl_regexpr_1_nested"/><RegExpr String="\)[uiomxn]*" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_regexpr_2" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><StringDetect String="\}" attribute="Regular Expression"/><RegExpr String="\}[uiomxn]*" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/><DetectChar char="{" attribute="Regular Expression" context="gdl_regexpr_2_nested"/></context><context name="gdl_regexpr_3" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><StringDetect String="\]" attribute="Regular Expression"/><DetectChar char="[" attribute="Regular Expression" context="gdl_regexpr_3_nested"/><RegExpr String="\][uiomxn]*" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_regexpr_4" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><StringDetect String="\>" attribute="Regular Expression"/><DetectChar char="&lt;" attribute="Regular Expression" context="gdl_regexpr_4_nested"/><RegExpr String=">[uiomxn]*" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_regexpr_5" attribute="Regular Expression"><IncludeRules context="regexpr_rules"/><StringDetect String="\%1" attribute="Regular Expression" dynamic="1"/><RegExpr String="\s*%1[uiomxn]*" attribute="GDL input" context="#pop#pop" endRegion="GdlInput" dynamic="1"/></context><context name="gdl_shell_command_1" attribute="Command"><IncludeRules context="shell_command_rules"/><StringDetect String="\)" attribute="Command"/><DetectChar char="(" attribute="Command" context="gdl_shell_command_1_nested"/><DetectChar char=")" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_shell_command_2" attribute="Command"><IncludeRules context="shell_command_rules"/><StringDetect String="\}" attribute="Command"/><DetectChar char="}" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/><DetectChar char="{" attribute="Command" context="gdl_shell_command_2_nested"/></context><context name="gdl_shell_command_3" attribute="Command"><IncludeRules context="shell_command_rules"/><StringDetect String="\]" attribute="Command"/><DetectChar char="[" attribute="Command" context="gdl_shell_command_3_nested"/><DetectChar char="]" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_shell_command_4" attribute="Command"><IncludeRules context="shell_command_rules"/><StringDetect String="\>" attribute="Command"/><DetectChar char="&lt;" attribute="Command" context="gdl_shell_command_4_nested"/><DetectChar char=">" attribute="GDL input" context="#pop#pop" endRegion="GdlInput"/></context><context name="gdl_shell_command_5" attribute="Command"><IncludeRules context="shell_command_rules"/><StringDetect String="\%1" attribute="Command" dynamic="1"/><RegExpr String="\s*%1" attribute="GDL input" context="#pop#pop" endRegion="GdlInput" dynamic="1"/></context><context name="indented_heredoc" attribute="Here Document"><RegExpr String="%1$" attribute="Keyword" context="#pop#pop" endRegion="HereDocument" dynamic="1" firstNonSpace="1"/><IncludeRules context="heredoc_rules"/></context><context name="normal_heredoc" attribute="Here Document"><RegExpr String="^%1$" attribute="Keyword" context="#pop#pop" endRegion="HereDocument" column="0" dynamic="1"/><IncludeRules context="heredoc_rules"/></context></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"/><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"/><itemData name="String" defStyleNum="dsString"/><itemData name="Raw String" defStyleNum="dsVerbatimString"/><itemData name="Command" defStyleNum="dsInformation"/><itemData name="Message" defStyleNum="dsAttribute" bold="0"/><itemData name="Regular Expression" defStyleNum="dsSpecialString"/><itemData name="Substitution" defStyleNum="dsSpecialChar"/><itemData name="GDL input" defStyleNum="dsOthers"/><itemData name="Global Constant" defStyleNum="dsConstant" bold="1"/><itemData name="Constant" defStyleNum="dsDataType"/><itemData name="Constant Value" defStyleNum="dsConstant" bold="0"/><itemData name="Kernel methods" defStyleNum="dsFunction" bold="1"/><itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1"/><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"/><itemData name="Operator" defStyleNum="dsKeyword"/></itemDatas></highlighting><general><comments><comment name="singleLine" start="#" position="afterwhitespace"/></comments><keywords casesensitive="1" weakDeliminator="!?"/></general></language>