<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="Ruby" alternativeNames="RB;JRuby" section="Scripts" version="21" kateversion="5.79" extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile" mimetype="application/x-ruby" style="ruby" indenter="ruby" author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabaté (mikisabate@gmail.com), Jonathan Poelen (jonathan.poelen@gmail.com)" license="LGPLv2+"><highlighting><list name="keyword"><item>class</item><item>def</item><item>end</item><item>ensure</item><include>keyword-begin-end-cond</include><include>keyword-block</include><include>keyword-block-cond</include><include>keyword-block-then-value</include><include>keyword-loop</include><include>keyword-then-stmt</include><include>keyword-then-value</include><item>when</item></list><list name="keyword-then-value"><item>break</item><item>defined?</item><item>in</item><item>next</item><item>redo</item><item>retry</item><item>return</item><item>yield</item></list><list name="keyword-then-stmt"><item>BEGIN</item><item>END</item><item>and</item><item>not</item><item>or</item><item>then</item></list><list name="keyword-block"><item>begin</item><item>do</item></list><list name="keyword-block-then-value"><item>case</item><item>module</item></list><list name="keyword-block-cond"><item>if</item><item>unless</item></list><list name="keyword-begin-end-cond"><item>else</item><item>elsif</item><item>rescue</item></list><list name="keyword-loop"><item>for</item><item>until</item><item>while</item></list><list name="keyword-modifiers"><item>if</item><item>rescue</item><item>unless</item><item>until</item><item>while</item></list><list name="access-control"><item>private</item><item>private_class_method</item><item>protected</item><item>public</item><item>public_class_method</item></list><list name="attribute-definitions"><item>attr_accessor</item><item>attr_reader</item><item>attr_writer</item></list><list name="definitions"><item>alias</item><item>class</item><item>def</item><item>module</item><item>undef</item></list><list name="pseudo-variables"><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="default-globals"><item>$stderr</item><item>$stdin</item><item>$stdout</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><item>prepend</item><item>refine</item><item>using</item></list><contexts><context name="Normal" attribute="Normal Text" fallthroughContext="Ruby"><StringDetect String="#!/" attribute="Keyword" context="Shebang" column="0"/></context><context name="Op1" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="=" attribute="Operator" context="#pop#pop"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop"/><LineContinue attribute="Normal Text"/></context><context name="MsgParamOrOp2" attribute="Normal Text" fallthroughContext="#pop!Expr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|[?:](?=\s|$)|([/%]|&lt;&lt;)(?=[\s=]|$)|%(?![QqxwWiIsr]?[^\s[:alnum:]])|&lt;&lt;(?=\s|$|[^-~\w'&#34;`]|[-~][^\w'&#34;`])|(?&lt;![\[\s])([/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop!Expr"/><DetectChar char="." attribute="Member" context="MemberAccessCall"/><StringDetect String="::" attribute="Operator" context="MemberAccessCall"/><LineContinue attribute="Normal Text"/></context><context name="DQuoteSpecial" attribute="String"><DetectChar char="\" context="DQuoteEscape" lookAhead="1"/><DetectChar char="#" context="DQuoteSubstitution" lookAhead="1"/></context><context name="Expr" attribute="Normal Text" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><StringDetect String=".." attribute="Operator" context="Dot2Op"/><DetectChar char="." attribute="Member" context="MemberAccess"/><DetectChar char="=" attribute="Operator" context="#pop"/><AnyChar String="{}" context="#pop" lookAhead="1"/><AnyChar String=";(" attribute="Normal Text" context="#pop"/><DetectChar char="," attribute="Normal Text"/><DetectChar char=")" attribute="Normal Text" context="Op1"/><DetectChar char="#" attribute="Comment" context="#pop!General Comment"/><DetectChar char="@" context="AtVar" lookAhead="1"/><DetectChar char="$" context="Var" lookAhead="1"/><DetectChar char="]" attribute="Delimiter" context="Op1"/><HlCChar attribute="Char" context="Op1"/><DetectChar char='"' attribute="String" context="DQuote"/><DetectChar char="'" attribute="Raw String" context="SQuote"/><DetectChar char="`" attribute="Command" context="Command String"/><DetectChar char="/" attribute="Regular Expression" context="RegEx"/><DetectChar char="?" context="MaybeCharLiteral" lookAhead="1"/><AnyChar String="0123456789" context="Number" lookAhead="1"/><RegExpr String="\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))|(?&lt;=[!?])(?=[[:lower:]]))[_[:alpha:]]\w*+(?!:)[?!]?" attribute="Normal Text" context="Op2"/><RegExpr String="[_[:alpha:]]\w*+[=?!]?:(?!:)|\[\]=?:" attribute="Symbol" context="#pop!MsgParamOrOp2"/><DetectChar char="[" attribute="Delimiter" context="#pop!MsgParamOrOp2"/><StringDetect String="::" attribute="Operator" context="MemberAccess"/><LineContinue attribute="Normal Text"/><keyword String="attribute-definitions" attribute="Attribute Definition" context="Op2"/><keyword String="access-control" attribute="Access Control" context="Op2"/><keyword String="pseudo-variables" attribute="Pseudo variable" context="Op1"/><keyword String="kernel-methods" attribute="Kernel methods" context="Op2"/><keyword String="mixin-methods" attribute="Module mixin methods" context="Op2"/><keyword String="keyword-modifiers" attribute="Keyword"/><keyword String="keyword-block" attribute="Keyword" context="#pop" beginRegion="def block"/><keyword String="keyword-loop" attribute="Keyword" context="#pop!Loop" beginRegion="def block"/><keyword String="keyword-block-then-value" attribute="Keyword" context="#pop!MsgParamOrOp2" beginRegion="def block"/><keyword String="keyword-begin-end-cond" attribute="Keyword" context="#pop!Cond" beginRegion="def block" endRegion="def block"/><keyword String="keyword-then-stmt" attribute="Keyword" context="#pop"/><keyword String="keyword-then-value" attribute="Keyword" context="#pop!MsgParamOrOp2"/><WordDetect String="end" attribute="Keyword" context="#pop!MsgParamOrOp2" endRegion="def block"/><WordDetect String="class" attribute="Keyword" context="Op1" beginRegion="def block"/><WordDetect String="def" attribute="Keyword" context="#pop!DefFn" beginRegion="def block"/><WordDetect String="when" attribute="Keyword" context="#pop!Cond"/><WordDetect String="ensure" attribute="Keyword" context="#pop" beginRegion="def block" endRegion="def block"/><WordDetect String="alias" attribute="Definition" context="Alias"/><WordDetect String="undef" attribute="Definition" context="Alias"/><keyword String="definitions" attribute="Definition"/><RegExpr String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" attribute="Constant" context="ExprSubClass"/><RegExpr String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" attribute="Global Constant" context="ExprSubClass"/><RegExpr String=":((@@?|\$)[_[:alpha:]]\w*+|[_[:alpha:]]\w*+([?]|!(?!=)|=(?![=>~]))?|\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=>?)?|>=?|=~|===?|\*\*?|(?=['&#34;])|\$([!@~&amp;`'+/\\&lt;>._*$?:&#34;=,;]|[0-9]+|-\w|[[:alpha:]]\w*))" attribute="Symbol" context="Op1"/><RegExpr String="%(?=[QqxwWiIsr]?[^\s[:alnum:]])" attribute="GDL input" context="find_gdl_input" beginRegion="GdlInput"/><RegExpr String="&lt;&lt;(?=[-~]?(\w+|'\w+'|&#34;\w+&#34;|`\w+`))" attribute="Operator" context="Heredoc" beginRegion="HereDocument"/><RegExpr String="([/%?:]|&lt;&lt;?)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*|(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)+" attribute="Operator"/><DetectIdentifier attribute="Normal Text" context="SuffixFunction"/></context><context name="FnParent" attribute="Normal Text" fallthroughContext="#pop#pop#pop"><DetectChar char="(" attribute="Normal Text" context="DefFnParams"/><DetectSpaces attribute="Normal Text"/><LineContinue attribute="Normal Text"/><DetectChar char="#" attribute="Comment" context="General Comment"/></context><context name="Op2" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="=" attribute="Operator" context="#pop#pop"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|[?:](?=\s|$)|([/%]|&lt;&lt;)(?=[\s=]|$)|%(?![QqxwWiIsr]?[^\s[:alnum:]])|&lt;&lt;(?=\s|$|[^-~\w'&#34;`]|[-~][^\w'&#34;`])|(?&lt;![\[\s])([/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop"/><LineContinue attribute="Normal Text"/></context><context name="General Comment" attribute="Comment" lineEndContext="#pop"><DetectSpaces/><IncludeRules context="##Comments"/><DetectIdentifier/></context><context name="Op1ThenExpr" attribute="Normal Text" fallthroughContext="#pop!Expr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="=" attribute="Operator" context="#pop"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop!Expr"/><LineContinue attribute="Normal Text"/></context><context name="RegExMode" attribute="String" fallthroughContext="#pop#pop!Op1" lineEndContext="#pop#pop"><AnyChar String="imxonues" attribute="Regular Expression"/></context><context name="RegExSpecial" attribute="String Char"><DetectChar char="#" context="DQuoteSubstitution" lookAhead="1"/><DetectChar char="\" context="RegExEscape" lookAhead="1"/></context><context name="Cond" attribute="Normal Text" fallthroughContext="CondExpr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="{" attribute="Operator" context="CondFindBrace" beginRegion="brace"/><DetectChar char="}" attribute="Operator" context="#pop" lookAhead="1"/><WordDetect String="then" attribute="Keyword" context="#pop"/><LineContinue attribute="Normal Text"/></context><context name="MemberAccess" attribute="Member" fallthroughContext="#pop!Op1"><DetectSpaces attribute="Normal Text"/><RegExpr String="\b(?!((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))[_[:alpha:]]\w*+[?!]?" attribute="Message" context="SubClass"/><RegExpr String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" attribute="Constant" context="SubClass"/><RegExpr String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" attribute="Constant Value" context="SubClass"/><RegExpr String="\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=>?)?|>=?|=~|===?|\*\*?" attribute="Operator" context="#pop"/></context><context name="NumberError" attribute="Error" fallthroughContext="#pop#pop!Op1" lineEndContext="#pop#pop#pop"><DetectIdentifier/><AnyChar String="0123456789"/></context><context name="NumberSuffix" attribute="Number Suffix" fallthroughContext="#pop!NumberError" lineEndContext="#pop#pop"><StringDetect String="ri" attribute="Number Suffix" context="#pop!NumberError"/><AnyChar String="ri" attribute="Number Suffix" context="#pop!NumberError"/></context><context name="%Q(" attribute="String"><DetectChar char=")" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%Q(_rule"/></context><context name="%Q&lt;" attribute="String"><DetectChar char=">" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%Q&lt;_rule"/></context><context name="%Q[" attribute="String"><DetectChar char="]" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%Q[_rule"/></context><context name="%Q{" attribute="String"><DetectChar char="}" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%Q{_rule"/></context><context name="Alias" attribute="Normal Text" fallthroughContext="#pop" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><AnyChar String="-+*~^|&amp;=&lt;>!%/" attribute="Operator"/><DetectChar char="$" context="Var" lookAhead="1"/><DetectChar char='"' attribute="String" context="AliasDQuote"/><DetectChar char="'" attribute="Raw String" context="AliasSQuote"/><DetectChar char="," attribute="Normal Text"/><LineContinue attribute="Normal Text"/><RegExpr String=":([_[:alpha:]]\w*+[=?!]?|\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=>?)?|>=?|=~|===?|\*\*?)" attribute="Symbol"/><RegExpr String="\b(?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|__FILE__|for|fork|format|getc|gets|global_variables|if|in|include|lambda|__LINE__|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield|autoload|chomp|chop|exit|gsub|sub)([^?!\w]|$))[_[:alpha:]]\w*+" attribute="Normal Text"/></context><context name="CondExpr" attribute="Normal Text" lineEndContext="#pop"><WordDetect String="then" attribute="Keyword" context="#pop" lookAhead="1"/><IncludeRules context="Expr"/></context><context name="LoopExpr" attribute="Normal Text" lineEndContext="#pop"><WordDetect String="do" attribute="Keyword" context="#pop" lookAhead="1"/><IncludeRules context="Expr"/></context><context name="Op2ThenExpr" attribute="Normal Text" fallthroughContext="#pop!Expr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="=" attribute="Operator" context="#pop"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|[?:](?=\s|$)|([/%]|&lt;&lt;)(?=[\s=]|$)|%(?![QqxwWiIsr]?[^\s[:alnum:]])|&lt;&lt;(?=\s|$|[^-~\w'&#34;`]|[-~][^\w'&#34;`])|(?&lt;![\[\s])([/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop!Expr"/><LineContinue attribute="Normal Text"/></context><context name="DQuoteSubstitution" attribute="String"><StringDetect String="#{" attribute="Substitution" context="#pop!Subst"/><RegExpr String="#@@?\w+|#\$([!@~&amp;`'+/\\&lt;>._*$?:&#34;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)" attribute="Substitution" context="#pop"/><DetectChar char="#" context="#pop"/></context><context name="MsgFnName" attribute="Normal Text" fallthroughContext="#pop!FnParent" lineEndContext="#pop#pop#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="." attribute="Member" context="MemberAccess"/><StringDetect String="::" attribute="Operator" context="MemberAccess"/><LineContinue attribute="Normal Text"/></context><context name="Ruby" attribute="Normal Text" fallthroughContext="Expr"><DetectSpaces attribute="Normal Text"/><AnyChar String=";(" attribute="Normal Text"/><DetectChar char=")" attribute="Normal Text" context="Op1ThenExpr"/><DetectChar char="]" attribute="Delimiter" context="Op1ThenExpr"/><DetectChar char="{" attribute="Operator" beginRegion="brace"/><DetectChar char="}" attribute="Operator" context="Op1ThenExpr" endRegion="brace"/><DetectChar char="#" attribute="Comment" context="General Comment"/><DetectChar char="@" context="AtVarMsgParamOrOp2" lookAhead="1"/><DetectChar char="$" context="VarMsgParamOrOp2" lookAhead="1"/><HlCChar attribute="Char"/><DetectChar char='"' attribute="String" context="DQuote"/><DetectChar char="'" attribute="Raw String" context="SQuote"/><DetectChar char="`" attribute="Command" context="Command String"/><DetectChar char="." context="MsgParamOrOp2" lookAhead="1"/><RegExpr String="\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))|(?&lt;=[!?])(?=[[:lower:]]))[_[:alpha:]]\w*+(?!:)[?!]?" attribute="Normal Text" context="MsgParamOrOp2"/><RegExpr String="[_[:alpha:]]\w*+[=?!]?:(?!:)|\[\]=?:" attribute="Symbol" context="MsgParamOrOp2"/><DetectChar char="[" attribute="Delimiter" context="MsgParamOrOp2"/><keyword String="keyword-block" attribute="Keyword" beginRegion="def block"/><keyword String="keyword-loop" attribute="Keyword" context="Loop" beginRegion="def block"/><keyword String="keyword-block-then-value" attribute="Keyword" context="MsgParamOrOp2" beginRegion="def block"/><keyword String="keyword-begin-end-cond" attribute="Keyword" context="Cond" beginRegion="def block" endRegion="def block"/><keyword String="keyword-then-stmt" attribute="Keyword"/><keyword String="keyword-then-value" attribute="Keyword" context="MsgParamOrOp2"/><keyword String="keyword-block-cond" attribute="Keyword" context="Cond" beginRegion="def block"/><WordDetect String="end" attribute="Keyword" context="MsgParamOrOp2" endRegion="def block"/><WordDetect String="class" attribute="Keyword" context="Op1ThenExpr" beginRegion="def block"/><WordDetect String="def" attribute="Keyword" context="DefFn" beginRegion="def block"/><WordDetect String="when" attribute="Keyword" context="Cond"/><WordDetect String="ensure" attribute="Keyword" beginRegion="def block" endRegion="def block"/><WordDetect String="alias" attribute="Definition" context="Alias"/><WordDetect String="undef" attribute="Definition" context="Alias"/><keyword String="attribute-definitions" attribute="Attribute Definition" context="Op2ThenExpr"/><keyword String="access-control" attribute="Access Control" context="Op2ThenExpr"/><keyword String="definitions" attribute="Definition" context="Expr"/><keyword String="pseudo-variables" attribute="Pseudo variable" context="Op1ThenExpr"/><keyword String="kernel-methods" attribute="Kernel methods" context="Op2ThenExpr"/><keyword String="mixin-methods" attribute="Module mixin methods" context="Op2ThenExpr"/><RegExpr String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" attribute="Constant" context="MsgParamOrOp2"/><RegExpr String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" attribute="Global Constant" context="MsgParamOrOp2"/><RegExpr String="^__END__$" attribute="Keyword" context="DATA" column="0"/><DetectIdentifier attribute="Normal Text" context="SuffixFunctionMsgParamOrOp2"/><WordDetect String="=begin" attribute="Blockcomment" context="Embedded documentation" beginRegion="comment block" column="0"/><LineContinue attribute="Normal Text"/></context><context name="SubClass" attribute="Normal Text" fallthroughContext="#pop#pop!Op1" lineEndContext="#pop#pop"><StringDetect String="::" attribute="Operator" context="#pop"/></context><context name="SubClassCall" attribute="Normal Text" fallthroughContext="#pop#pop" lineEndContext="#pop#pop"><StringDetect String="::" attribute="Operator" context="#pop"/></context><context name="%Q(_rule" attribute="String"><DetectChar char="(" attribute="String" context="%Q(_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%Q&lt;_rule" attribute="String"><DetectChar char="&lt;" attribute="String" context="%Q&lt;_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%Q[_rule" attribute="String"><DetectChar char="[" attribute="String" context="%Q[_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%Q_" attribute="String"><DetectChar char="1" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput" dynamic="1"/><IncludeRules context="DQuoteSpecial"/></context><context name="%Q{_rule" attribute="String"><DetectChar char="{" attribute="String" context="%Q{_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%q(_rule" attribute="Raw String"><DetectChar char="(" attribute="Raw String" context="%q(_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\)" attribute="String Char"/><StringDetect String="\(" attribute="String Char"/></context><context name="%q&lt;_rule" attribute="Raw String"><DetectChar char="&lt;" attribute="Raw String" context="%q&lt;_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\>" attribute="String Char"/><StringDetect String="\&lt;" attribute="String Char"/></context><context name="%q[_rule" attribute="Raw String"><DetectChar char="[" attribute="Raw String" context="%q[_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\]" attribute="String Char"/><StringDetect String="\[" attribute="String Char"/></context><context name="%q_" attribute="Raw String"><StringDetect String="\\" attribute="Raw String"/><DetectChar char="1" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput" dynamic="1"/><StringDetect String="\%1" attribute="String Char" dynamic="1"/></context><context name="%q{_rule" attribute="Raw String"><DetectChar char="{" attribute="Raw String" context="%q{_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\}" attribute="String Char"/><StringDetect String="\{" attribute="String Char"/></context><context name="%r(_rule" attribute="String"><DetectChar char="(" attribute="String" context="%r(_nested"/><IncludeRules context="RegExSpecial"/></context><context name="%r&lt;_rule" attribute="String"><DetectChar char="&lt;" attribute="String" context="%r&lt;_nested"/><IncludeRules context="RegExSpecial"/></context><context name="%r[_rule" attribute="String"><DetectChar char="[" attribute="String" context="%r[_nested"/><IncludeRules context="RegExSpecial"/></context><context name="%r{_rule" attribute="String"><DetectChar char="{" attribute="String" context="%r{_nested"/><IncludeRules context="RegExSpecial"/></context><context name="%s(_rule" attribute="Symbol"><DetectChar char="(" attribute="Symbol" context="%s(_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\)" attribute="String Char"/><StringDetect String="\(" attribute="String Char"/></context><context name="%s&lt;_rule" attribute="Symbol"><DetectChar char="&lt;" attribute="Symbol" context="%s&lt;_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\>" attribute="String Char"/><StringDetect String="\&lt;" attribute="String Char"/></context><context name="%s[_rule" attribute="Symbol"><DetectChar char="[" attribute="Symbol" context="%s[_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\]" attribute="String Char"/><StringDetect String="\[" attribute="String Char"/></context><context name="%s{_rule" attribute="Symbol"><DetectChar char="{" attribute="Symbol" context="%s{_nested"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\}" attribute="String Char"/><StringDetect String="\{" attribute="String Char"/></context><context name="%w(" attribute="Raw String"><DetectChar char=")" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%w(_rule"/></context><context name="%w(_rule" attribute="Raw String"><DetectChar char="(" attribute="Raw String" context="%w(_nested"/><StringDetect String="\ " attribute="String Char"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\)" attribute="String Char"/><StringDetect String="\(" attribute="String Char"/></context><context name="%w&lt;" attribute="Raw String"><DetectChar char=">" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%w&lt;_rule"/></context><context name="%w&lt;_rule" attribute="Raw String"><DetectChar char="&lt;" attribute="Raw String" context="%w&lt;_nested"/><StringDetect String="\ " attribute="String Char"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\>" attribute="String Char"/><StringDetect String="\&lt;" attribute="String Char"/></context><context name="%w[" attribute="Raw String"><DetectChar char="]" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%w[_rule"/></context><context name="%w[_rule" attribute="Raw String"><DetectChar char="[" attribute="Raw String" context="%w[_nested"/><StringDetect String="\ " attribute="String Char"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\]" attribute="String Char"/><StringDetect String="\[" attribute="String Char"/></context><context name="%w{" attribute="Raw String"><DetectChar char="}" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%w{_rule"/></context><context name="%w{_rule" attribute="Raw String"><DetectChar char="{" attribute="Raw String" context="%w{_nested"/><StringDetect String="\ " attribute="String Char"/><StringDetect String="\\" attribute="String Char"/><StringDetect String="\}" attribute="String Char"/><StringDetect String="\{" attribute="String Char"/></context><context name="%x(_rule" attribute="Command"><DetectChar char="(" attribute="Command" context="%x(_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%x&lt;_rule" attribute="Command"><DetectChar char="&lt;" attribute="Command" context="%x&lt;_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%x[_rule" attribute="Command"><DetectChar char="[" attribute="Command" context="%x[_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="%x{_rule" attribute="Command"><DetectChar char="{" attribute="Command" context="%x{_nested"/><IncludeRules context="DQuoteSpecial"/></context><context name="AliasCheckSym" attribute="Raw String" fallthroughContext="#pop#pop" lineEndContext="#pop#pop#pop"><DetectChar char=":" attribute="Symbol" context="#pop#pop"/></context><context name="CheckSym" attribute="Raw String" fallthroughContext="#pop#pop!Op1" lineEndContext="#pop#pop!Op1"><DetectChar char=":" attribute="Symbol" context="#pop#pop#pop"/></context><context name="Command String" attribute="Command"><DetectChar char="`" attribute="Command" context="#pop!Op1"/><StringDetect String="\\" attribute="String"/><StringDetect String="\`" attribute="String"/><DetectChar char="#" context="DQuoteSubstitution" lookAhead="1"/></context><context name="CondFindBrace" attribute="Normal Text" fallthroughContext="CondExpr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="{" attribute="Operator" context="CondFindBrace" beginRegion="brace"/><DetectChar char="}" attribute="Operator" context="#pop!Op1ThenCondExpr" endRegion="brace"/><WordDetect String="then" attribute="Keyword" context="#pop" lookAhead="1"/><LineContinue attribute="Normal Text"/></context><context name="DQuote" attribute="String"><DetectChar char='"' attribute="String" context="CheckSym"/><IncludeRules context="DQuoteSpecial"/></context><context name="DefFn" attribute="Normal Text" fallthroughContext="FnName"><DetectSpaces attribute="Normal Text"/><LineContinue attribute="Normal Text"/><DetectChar char="#" attribute="Comment" context="General Comment"/></context><context name="ExprSubClass" attribute="Normal Text" fallthroughContext="#pop!Op1" lineEndContext="#pop"><StringDetect String="::" attribute="Operator" context="#pop!MemberAccess"/></context><context name="Loop" attribute="Normal Text" fallthroughContext="LoopExpr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="{" attribute="Operator" context="LoopFindBrace" beginRegion="brace"/><DetectChar char="}" attribute="Operator" context="#pop" lookAhead="1"/><WordDetect String="do" attribute="Keyword" context="#pop"/><LineContinue attribute="Normal Text"/></context><context name="LoopFindBrace" attribute="Normal Text" fallthroughContext="LoopExpr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="{" attribute="Operator" context="LoopFindBrace" beginRegion="brace"/><DetectChar char="}" attribute="Operator" context="#pop!Op1ThenLoopExpr" endRegion="brace"/><WordDetect String="do" attribute="Keyword" context="#pop" lookAhead="1"/><LineContinue attribute="Normal Text"/></context><context name="MemberAccessCall" attribute="Member" fallthroughContext="#pop"><DetectSpaces attribute="Normal Text"/><RegExpr String="\b(?!((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))[_[:alpha:]]\w*+[?!]?" attribute="Message" context="SubClassCall"/><RegExpr String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" attribute="Constant" context="SubClassCall"/><RegExpr String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" attribute="Constant Value" context="SubClassCall"/><RegExpr String="\[\]=?|[-+~]@?|![=~@]?|[/%|^&amp;]|&lt;(=>?)?|>=?|=~|===?|\*\*?" attribute="Operator" context="#pop"/></context><context name="SQuote" attribute="Raw String"><StringDetect String="\\" attribute="String"/><StringDetect String="\'" attribute="String"/><DetectChar char="'" attribute="Raw String" context="CheckSym"/></context><context name="Var" attribute="Normal Text" lineEndContext="#pop#pop"><RegExpr String="\$((?!(stdin|stdout|stderr|_|LOAD_PATH|LOADED_FEATURES|FILENAME|DEBUG|VERBOSE)\b)[[:alpha:]]\w*|[0-9]+|-(?![ailpFIvWwdx])\w)" attribute="Global Variable" context="#pop!Op1"/><RegExpr String="\$([!@~&amp;`'+/\\&lt;>._*$?:&#34;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)" attribute="Default globals" context="#pop!Op1"/><DetectChar char="$" attribute="Error" context="#pop!Op1"/></context><context name="%Q(_nested" attribute="String"><DetectChar char=")" attribute="String" context="#pop"/><IncludeRules context="%Q(_rule"/></context><context name="%Q&lt;_nested" attribute="String"><DetectChar char=">" attribute="String" context="#pop"/><IncludeRules context="%Q&lt;_rule"/></context><context name="%Q[_nested" attribute="String"><DetectChar char="]" attribute="String" context="#pop"/><IncludeRules context="%Q[_rule"/></context><context name="%Q{_nested" attribute="String"><DetectChar char="}" attribute="String" context="#pop"/><IncludeRules context="%Q{_rule"/></context><context name="%q(" attribute="Raw String"><DetectChar char=")" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%q(_rule"/></context><context name="%q(_nested" attribute="Raw String"><DetectChar char=")" attribute="Raw String" context="#pop"/><IncludeRules context="%q(_rule"/></context><context name="%q&lt;" attribute="Raw String"><DetectChar char=">" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%q&lt;_rule"/></context><context name="%q&lt;_nested" attribute="Raw String"><DetectChar char=">" attribute="Raw String" context="#pop"/><IncludeRules context="%q&lt;_rule"/></context><context name="%q[" attribute="Raw String"><DetectChar char="]" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%q[_rule"/></context><context name="%q[_nested" attribute="Raw String"><DetectChar char="]" attribute="Raw String" context="#pop"/><IncludeRules context="%q[_rule"/></context><context name="%q{" attribute="Raw String"><DetectChar char="}" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%q{_rule"/></context><context name="%q{_nested" attribute="Raw String"><DetectChar char="}" attribute="Raw String" context="#pop"/><IncludeRules context="%q{_rule"/></context><context name="%r(" attribute="String"><DetectChar char=")" attribute="GDL input" context="#pop!RegExMode" endRegion="GdlInput"/><IncludeRules context="%r(_rule"/></context><context name="%r(_nested" attribute="String"><DetectChar char=")" attribute="String" context="#pop"/><IncludeRules context="%r(_rule"/></context><context name="%r&lt;" attribute="String"><DetectChar char=">" attribute="GDL input" context="#pop!RegExMode" endRegion="GdlInput"/><IncludeRules context="%r&lt;_rule"/></context><context name="%r&lt;_nested" attribute="String"><DetectChar char=">" attribute="String" context="#pop"/><IncludeRules context="%r&lt;_rule"/></context><context name="%r[" attribute="String"><DetectChar char="]" attribute="GDL input" context="#pop!RegExMode" endRegion="GdlInput"/><IncludeRules context="%r[_rule"/></context><context name="%r[_nested" attribute="String"><DetectChar char="]" attribute="String" context="#pop"/><IncludeRules context="%r[_rule"/></context><context name="%r_" attribute="Regular Expression"><DetectChar char="1" attribute="GDL input" context="#pop!RegExMode" endRegion="GdlInput" dynamic="1"/><StringDetect String="\%1" attribute="String Char" dynamic="1"/><IncludeRules context="RegExSpecial"/></context><context name="%r{" attribute="String"><DetectChar char="}" attribute="GDL input" context="#pop!RegExMode" endRegion="GdlInput"/><IncludeRules context="%r{_rule"/></context><context name="%r{_nested" attribute="String"><DetectChar char="}" attribute="String" context="#pop"/><IncludeRules context="%r{_rule"/></context><context name="%s(" attribute="Symbol"><DetectChar char=")" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%s(_rule"/></context><context name="%s(_nested" attribute="Symbol"><DetectChar char=")" attribute="Symbol" context="#pop"/><IncludeRules context="%s(_rule"/></context><context name="%s&lt;" attribute="Symbol"><DetectChar char=">" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%s&lt;_rule"/></context><context name="%s&lt;_nested" attribute="Symbol"><DetectChar char=">" attribute="Symbol" context="#pop"/><IncludeRules context="%s&lt;_rule"/></context><context name="%s[" attribute="Symbol"><DetectChar char="]" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%s[_rule"/></context><context name="%s[_nested" attribute="Symbol"><DetectChar char="]" attribute="Symbol" context="#pop"/><IncludeRules context="%s[_rule"/></context><context name="%s_" attribute="Symbol"><StringDetect String="\\" attribute="Symbol"/><DetectChar char="1" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput" dynamic="1"/><StringDetect String="\%1" attribute="String Char" dynamic="1"/></context><context name="%s{" attribute="Symbol"><DetectChar char="}" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%s{_rule"/></context><context name="%s{_nested" attribute="Symbol"><DetectChar char="}" attribute="Symbol" context="#pop"/><IncludeRules context="%s{_rule"/></context><context name="%w(_nested" attribute="Raw String"><DetectChar char=")" attribute="Raw String" context="#pop"/><IncludeRules context="%w(_rule"/></context><context name="%w&lt;_nested" attribute="Raw String"><DetectChar char=">" attribute="Raw String" context="#pop"/><IncludeRules context="%w&lt;_rule"/></context><context name="%w[_nested" attribute="Raw String"><DetectChar char="]" attribute="Raw String" context="#pop"/><IncludeRules context="%w[_rule"/></context><context name="%w_" attribute="Raw String"><StringDetect String="\ " attribute="String Char"/><IncludeRules context="%q_"/></context><context name="%w{_nested" attribute="Raw String"><DetectChar char="}" attribute="Raw String" context="#pop"/><IncludeRules context="%w{_rule"/></context><context name="%x(" attribute="Command"><DetectChar char=")" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%x(_rule"/></context><context name="%x(_nested" attribute="Command"><DetectChar char=")" attribute="Command" context="#pop"/><IncludeRules context="%x(_rule"/></context><context name="%x&lt;" attribute="Command"><DetectChar char=">" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%x&lt;_rule"/></context><context name="%x&lt;_nested" attribute="Command"><DetectChar char=">" attribute="Command" context="#pop"/><IncludeRules context="%x&lt;_rule"/></context><context name="%x[" attribute="Command"><DetectChar char="]" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%x[_rule"/></context><context name="%x[_nested" attribute="Command"><DetectChar char="]" attribute="Command" context="#pop"/><IncludeRules context="%x[_rule"/></context><context name="%x_" attribute="Command"><IncludeRules context="%Q_"/></context><context name="%x{" attribute="Command"><DetectChar char="}" attribute="GDL input" context="#pop#pop!Op1" endRegion="GdlInput"/><IncludeRules context="%x{_rule"/></context><context name="%x{_nested" attribute="Command"><DetectChar char="}" attribute="Command" context="#pop"/><IncludeRules context="%x{_rule"/></context><context name="AliasDQuote" attribute="String"><DetectChar char='"' attribute="String" context="AliasCheckSym"/><IncludeRules context="DQuoteSpecial"/></context><context name="AliasSQuote" attribute="Raw String"><StringDetect String="\\" attribute="String"/><StringDetect String="\'" attribute="String"/><DetectChar char="'" attribute="Raw String" context="AliasCheckSym"/></context><context name="AtVar" attribute="Normal Text" lineEndContext="#pop#pop"><RegExpr String="@[_[:alpha:]]\w*+" attribute="Instance Variable" context="#pop!Op1"/><RegExpr String="@@[_[:alpha:]]\w*+" attribute="Class Variable" context="#pop!Op1"/><DetectChar char="@" attribute="Error" context="#pop!Op1"/></context><context name="AtVarMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop"><RegExpr String="@[_[:alpha:]]\w*+" attribute="Instance Variable" context="#pop!MsgParamOrOp2"/><RegExpr String="@@[_[:alpha:]]\w*+" attribute="Class Variable" context="#pop!MsgParamOrOp2"/><DetectChar char="@" attribute="Error" context="#pop!MsgParamOrOp2"/></context><context name="CharLiteral" attribute="String"><RegExpr String="[^\\\s]" attribute="Char" context="#pop#pop!Op1"/><RegExpr String="\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])|$)" attribute="String Char" context="#pop#pop!Op1"/><RegExpr String="\\([ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?|)" attribute="Error" context="#pop#pop!Op1"/></context><context name="DATA" attribute="Data"/><context name="DQuoteEscape" attribute="String"><RegExpr String="\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])|$)" attribute="String Char" context="#pop"/><RegExpr String="\\([ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?|)" attribute="Error" context="#pop"/></context><context name="DefFnParams" attribute="Normal Text" fallthroughContext="#pop#pop#pop#pop"><DetectChar char=")" attribute="Normal Text" context="#pop#pop#pop#pop"/><DetectChar char="#" attribute="Comment" context="General Comment"/><RegExpr String="([\s,]+|\b(?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|__FILE__|for|fork|format|getc|gets|global_variables|if|in|include|lambda|__LINE__|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield|autoload|chomp|chop|exit|gsub|sub)\b|[[:upper:]])[_[:alpha:]]\w*+(?=$|[^?!]))++" attribute="Normal Text"/><RegExpr String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" attribute="Constant"/><RegExpr String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" attribute="Global Constant"/><keyword String="attribute-definitions" attribute="Attribute Definition"/><keyword String="access-control" attribute="Access Control"/><keyword String="kernel-methods" attribute="Kernel methods"/><keyword String="mixin-methods" attribute="Module mixin methods"/></context><context name="Dot2Op" attribute="Operator" fallthroughContext="#pop" lineEndContext="#pop#pop"><DetectChar char="." attribute="Operator" context="#pop"/></context><context name="Embedded documentation" attribute="Blockcomment"><DetectSpaces/><IncludeRules context="##Comments"/><DetectIdentifier/><WordDetect String="=end" attribute="Comment" context="Embedded documentation End" endRegion="comment block" column="0"/></context><context name="Embedded documentation End" attribute="Comment" lineEndContext="#pop#pop"/><context name="Find closing brace" attribute="Normal Text" fallthroughContext="Expr"><DetectChar char="}" attribute="Operator" context="#pop!Op1ThenExpr" endRegion="brace"/><IncludeRules context="Ruby"/></context><context name="FnName" attribute="Normal Text" fallthroughContext="FnParent"><RegExpr String="\b((?!(abort|alias|and|at_exit|attr_accessor|attr_reader|attr_writer|begin|binding|break|callcc|caller|case|catch|class|def|do|else|elsif|end|ensure|eval|exec|extend|fail|false|for|fork|format|getc|gets|global_variables|if|in|include|lambda|load|local_variables|loop|method_missing|module|next|nil|not|open|or|p|prepend|print|printf|private|private_class_method|proc|protected|public|public_class_method|putc|puts|raise|rand|readline|readlines|redo|refine|require|require_relative|rescue|retry|return|scan|select|self|set_trace_func|sleep|split|sprintf|srand|super|syscall|system|test|then|throw|trace_var|trap|true|undef|unless|until|untrace_var|using|warn|when|while|yield)([^?!\w]|$)|\bautoload([^!\w]|$)|(block_given\?|defined\?|iterator\?)|(chomp|chop|exit|gsub|sub)([^?\w]|$)|((_[_\d]*)?[[:upper:]]\w*+|_+\d[_\d]*+\b)([^?!]|$))|(?&lt;=[!?])(?=[[:lower:]]))[_[:alpha:]]\w*+(?!:)[?!]?" attribute="Normal Text" context="MsgFnName"/><keyword String="attribute-definitions" attribute="Attribute Definition" context="FnParent" weakDeliminator=":"/><keyword String="access-control" attribute="Access Control" context="FnParent" weakDeliminator=":"/><keyword String="definitions" attribute="Definition" context="FnParent" weakDeliminator=":"/><keyword String="pseudo-variables" attribute="Pseudo variable" context="FnParent" weakDeliminator=":"/><keyword String="kernel-methods" attribute="Kernel methods" context="FnParent" weakDeliminator=":"/><keyword String="mixin-methods" attribute="Module mixin methods" context="FnParent" weakDeliminator=":"/><keyword String="keyword" attribute="Keyword" context="FnParent" weakDeliminator=":"/><RegExpr String="[-+~]@?|![~@]?|[/%^]|\*\*?|\|\||&amp;&amp;|&lt;(=>?)?|>=?|===?|\*\*?" attribute="Operator" context="FnParent"/><RegExpr String="\b[[:upper:]][_\d[:upper:]]*[[:lower:]]\w*" attribute="Constant" context="MsgFnName"/><RegExpr String="(?!^__END__$)(\b_+\d[_\d]*\b|\b(_[_\d]*)?[[:upper:]][_\d[:upper:]]*\b)" attribute="Global Constant" context="MsgFnName"/><StringDetect String="[]=" attribute="Symbol" context="FnParent"/><StringDetect String="[]" attribute="Symbol" context="FnParent"/><DetectChar char="#" attribute="Comment" context="General Comment"/></context><context name="Heredoc" attribute="Normal Text"><AnyChar String="-~" attribute="Operator" context="#pop!IndentedHeredoc"/><RegExpr String="'(\w+)'" attribute="Keyword" context="apostrophed_normal_heredoc"/><RegExpr String='(?|(\w+)|"(\w+)"|`(\w+)`)' attribute="Keyword" context="normal_heredoc"/></context><context name="IndentedHeredoc" attribute="Normal Text"><RegExpr String="'(\w+)'" attribute="Keyword" context="apostrophed_indented_heredoc"/><RegExpr String='(?|(\w+)|"(\w+)"|`(\w+)`)' attribute="Keyword" context="indented_heredoc"/></context><context name="MaybeCharLiteral" attribute="String" fallthroughContext="#pop!Op1" lineEndContext="#pop"><RegExpr String="\?(?=\s|$)" attribute="Operator" context="#pop"/><DetectChar char="?" attribute="Char Literal" context="CharLiteral"/></context><context name="Number" attribute="Normal Text" fallthroughContext="NumberError" lineEndContext="#pop#pop"><RegExpr String="\b(0[dD][0-9](_?[0-9]++)*+|(0(\b|(?=[ri]))|[1-9](_?[0-9]++)*+)(?![eE]|[.][0-9]))" attribute="Dec" context="NumberSuffix"/><RegExpr String="\b([1-9](_?[0-9]++)*+|0)(\.[0-9](_?[0-9]++)*+([eE][-+]?[0-9](_?[0-9]++)*+)?|[eE][-+]?[0-9](_?[0-9]++)*+)" attribute="Float" context="NumberSuffix"/><RegExpr String="\b0[xX][0-9a-fA-F](_?[0-9a-fA-F]++)*+" attribute="Hex" context="NumberSuffix"/><RegExpr String="\b0[bB][01](_?[01]++)*+" attribute="Bin" context="NumberSuffix"/><RegExpr String="\b0[oO]?[0-7](_?[0-7]++)*+" attribute="Octal" context="NumberSuffix"/><DetectChar char="0" attribute="Dec" context="NumberError"/></context><context name="Op1ThenCondExpr" attribute="Normal Text" fallthroughContext="#pop!CondExpr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="=" attribute="Operator" context="#pop"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop!CondExpr"/><LineContinue attribute="Normal Text"/></context><context name="Op1ThenLoopExpr" attribute="Normal Text" fallthroughContext="#pop!LoopExpr" lineEndContext="#pop"><DetectSpaces attribute="Normal Text"/><DetectChar char="=" attribute="Operator" context="#pop"/><RegExpr String="(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)++|([?:/%]|&lt;&lt;)(?:[-+*~^|&amp;]+|===?|&lt;(=>?|(?!&lt;))|[!>]=?|\.\.\.?)*+" attribute="Operator" context="#pop!LoopExpr"/><LineContinue attribute="Normal Text"/></context><context name="RegEx" attribute="Regular Expression"><DetectChar char="/" attribute="Regular Expression" context="RegExMode"/><IncludeRules context="RegExSpecial"/></context><context name="RegExEscape" attribute="String"><RegExpr String="\\([^0-7xucCMp]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u\{[0-9a-fA-F]{0,6}\}|u[0-9a-fA-F]{4}|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\([^0-7xucCM]|[0-7]{1,3}|x[0-9a-fA-F]{1,2}|$)|[ -BD-LN-\[\]-bd-tv-~])|p\{[-[:alpha:]]*\}|$)" attribute="String Char" context="#pop"/><RegExpr String="\\([ux][0-9a-fA-F]*|u(\{[0-9a-fA-F]{0,6})?|(c(\\M-)?|C-|M-(\\c|\\C-)?)(\\[xucCM]?)?|c(\\M?)?|C|M(-(\\c?|\\(C-?)?)?)?|p\{?|)" attribute="Error" context="#pop"/></context><context name="Shebang" attribute="Keyword" lineEndContext="#pop"/><context name="Subst" attribute="Normal Text" fallthroughContext="Expr"><DetectChar char="{" attribute="Operator" context="Find closing brace" beginRegion="brace"/><DetectChar char="}" attribute="Substitution" context="#pop"/><IncludeRules context="Ruby"/></context><context name="SuffixFunction" attribute="Normal Text" fallthroughContext="#pop!Op2" lineEndContext="#pop"><AnyChar String="!?" attribute="Normal Text" context="#pop!Op2"/></context><context name="SuffixFunctionMsgParamOrOp2" attribute="Normal Text" fallthroughContext="#pop!MsgParamOrOp2" lineEndContext="#pop"><AnyChar String="!?" attribute="Normal Text" context="#pop!MsgParamOrOp2"/></context><context name="VarMsgParamOrOp2" attribute="Normal Text" lineEndContext="#pop"><RegExpr String="\$((?!(stdin|stdout|stderr|_|LOAD_PATH|LOADED_FEATURES|FILENAME|DEBUG|VERBOSE)\b)[[:alpha:]]\w*|[0-9]+|-(?![ailpFIvWwdx])\w)" attribute="Global Variable" context="#pop!MsgParamOrOp2"/><RegExpr String="\$([!@~&amp;`'+/\\&lt;>._*$?:&#34;=,;]|[0-9]+|-\w|[[:alpha:]]\w*)" attribute="Default globals" context="#pop!MsgParamOrOp2"/><DetectChar char="$" attribute="Error" context="#pop!MsgParamOrOp2"/></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="find_gdl_input" attribute="Normal Text" lineEndContext="#pop"><DetectChar char="(" attribute="GDL input" context="%Q("/><DetectChar char="{" attribute="GDL input" context="%Q{"/><DetectChar char="[" attribute="GDL input" context="%Q["/><DetectChar char="&lt;" attribute="GDL input" context="%Q&lt;"/><StringDetect String="Q(" attribute="GDL input" context="%Q("/><StringDetect String="Q{" attribute="GDL input" context="%Q{"/><StringDetect String="Q[" attribute="GDL input" context="%Q["/><StringDetect String="Q&lt;" attribute="GDL input" context="%Q&lt;"/><StringDetect String="W(" attribute="GDL input" context="%Q("/><StringDetect String="W{" attribute="GDL input" context="%Q{"/><StringDetect String="W[" attribute="GDL input" context="%Q["/><StringDetect String="W&lt;" attribute="GDL input" context="%Q&lt;"/><StringDetect String="I(" attribute="GDL input" context="%Q("/><StringDetect String="I{" attribute="GDL input" context="%Q{"/><StringDetect String="I[" attribute="GDL input" context="%Q["/><StringDetect String="I&lt;" attribute="GDL input" context="%Q&lt;"/><RegExpr String="[QWI]?([^[:alnum:]])" attribute="GDL input" context="%Q_"/><StringDetect String="w(" attribute="GDL input" context="%w("/><StringDetect String="w{" attribute="GDL input" context="%w{"/><StringDetect String="w[" attribute="GDL input" context="%w["/><StringDetect String="w&lt;" attribute="GDL input" context="%w&lt;"/><StringDetect String="i(" attribute="GDL input" context="%w("/><StringDetect String="i{" attribute="GDL input" context="%w{"/><StringDetect String="i[" attribute="GDL input" context="%w["/><StringDetect String="i&lt;" attribute="GDL input" context="%w&lt;"/><RegExpr String="[wi]([^[:alnum:]])" attribute="GDL input" context="%w_"/><StringDetect String="q(" attribute="GDL input" context="%q("/><StringDetect String="q{" attribute="GDL input" context="%q{"/><StringDetect String="q[" attribute="GDL input" context="%q["/><StringDetect String="q&lt;" attribute="GDL input" context="%q&lt;"/><RegExpr String="q([^[:alnum:]])" attribute="GDL input" context="%q_"/><StringDetect String="s(" attribute="GDL input" context="%s("/><StringDetect String="s{" attribute="GDL input" context="%s{"/><StringDetect String="s[" attribute="GDL input" context="%s["/><StringDetect String="s&lt;" attribute="GDL input" context="%s&lt;"/><RegExpr String="s([^[:alnum:]])" attribute="GDL input" context="%s_"/><StringDetect String="r(" attribute="GDL input" context="%r("/><StringDetect String="r{" attribute="GDL input" context="%r{"/><StringDetect String="r[" attribute="GDL input" context="%r["/><StringDetect String="r&lt;" attribute="GDL input" context="%r&lt;"/><RegExpr String="r([^[:alnum:]])" attribute="GDL input" context="%r_"/><StringDetect String="x(" attribute="GDL input" context="%x("/><StringDetect String="x{" attribute="GDL input" context="%x{"/><StringDetect String="x[" attribute="GDL input" context="%x["/><StringDetect String="x&lt;" attribute="GDL input" context="%x&lt;"/><RegExpr String="x([^[:alnum:]])" attribute="GDL input" context="%x_"/></context><context name="indented_heredoc" attribute="Here Document"><RegExpr String="%1$" attribute="Keyword" context="#pop#pop" endRegion="HereDocument" dynamic="1" firstNonSpace="1"/><IncludeRules context="DQuoteSpecial"/></context><context name="normal_heredoc" attribute="Here Document"><RegExpr String="^%1$" attribute="Keyword" context="#pop#pop" endRegion="HereDocument" column="0" dynamic="1"/><IncludeRules context="DQuoteSpecial"/></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="Octal" defStyleNum="dsBaseN"/><itemData name="Hex" defStyleNum="dsBaseN"/><itemData name="Bin" defStyleNum="dsBaseN"/><itemData name="Number Suffix" defStyleNum="dsBuiltIn"/><itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0"/><itemData name="String" defStyleNum="dsString"/><itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="0"/><itemData name="Raw String" defStyleNum="dsVerbatimString"/><itemData name="Char Literal" defStyleNum="dsSpecialChar" spellChecking="0"/><itemData name="Char" defStyleNum="dsChar"/><itemData name="Command" defStyleNum="dsInformation"/><itemData name="Message" defStyleNum="dsAttribute" bold="0"/><itemData name="Regular Expression" defStyleNum="dsSpecialString" spellChecking="0"/><itemData name="Substitution" defStyleNum="dsSpecialChar"/><itemData name="Data" defStyleNum="dsNormal"/><itemData name="GDL input" defStyleNum="dsOthers"/><itemData name="Default globals" defStyleNum="dsVariable" bold="1"/><itemData name="Global Variable" defStyleNum="dsVariable"/><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="dsAttribute"/><itemData name="Instance Variable" defStyleNum="dsOthers"/><itemData name="Class Variable" defStyleNum="dsOthers"/><itemData name="Comment" defStyleNum="dsComment"/><itemData name="Blockcomment" defStyleNum="dsComment"/><itemData name="Here Document" defStyleNum="dsDocumentation"/><itemData name="Delimiter" defStyleNum="dsKeyword"/><itemData name="Operator" defStyleNum="dsOperator" bold="1"/><itemData name="Error" defStyleNum="dsError"/></itemDatas></highlighting><general><comments><comment name="singleLine" start="#" position="afterwhitespace"/></comments><keywords casesensitive="1" weakDeliminator="!?"/></general></language>