463 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			XML
		
	
	
		
		
			
		
	
	
			463 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			XML
		
	
	
| 
								 | 
							
								<?xml version="1.0"?>
							 | 
						||
| 
								 | 
							
								<!DOCTYPE MODE SYSTEM "xmode.dtd">
							 | 
						||
| 
								 | 
							
								<!-- Ruby mode by Ian Maclean (Ruby edit mode v0.6.2) -->
							 | 
						||
| 
								 | 
							
								<!-- tweakage by Chris Morris - clabs.org -->
							 | 
						||
| 
								 | 
							
								<!-- further tweakage by Christophe Grandsire -->
							 | 
						||
| 
								 | 
							
								<!-- further tweakage by Robert McKinnon 2004 -->
							 | 
						||
| 
								 | 
							
								<!-- Major overhaul by Karl von Laudermann -->
							 | 
						||
| 
								 | 
							
								<!-- recommended mode catalog entry:
							 | 
						||
| 
								 | 
							
								    <MODE NAME="ruby" FILE="ruby.xml" FILE_NAME_GLOB="*.{rb,rbw}" FIRST_LINE_GLOB="#!*/*ruby*" /> -->
							 | 
						||
| 
								 | 
							
								<MODE>
							 | 
						||
| 
								 | 
							
								    <PROPS>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="indentOpenBrackets" VALUE=""/>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="indentCloseBrackets" VALUE="}"/>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="lineUpClosingBracket" VALUE="true"/>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="commentStart" VALUE="=begin"/>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="commentEnd" VALUE="=end"/>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="lineComment" VALUE="#"/>
							 | 
						||
| 
								 | 
							
								        <PROPERTY NAME="indentNextLines" VALUE="\s*((if\s+.*|elsif\s+.*|else\s*|do(\s*|\s+.*)|case\s+.*|when\s+.*|while\s+.*|for\s+.*|until\s+.*|loop\s+.*|def\s+.*|class\s+.*|module\s+.*|begin.*|unless\s+.*)*)"/>
							 | 
						||
| 
								 | 
							
								    </PROPS>
							 | 
						||
| 
								 | 
							
								    <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="(0b[01]([01_]*[01])?)|(0x[\p{XDigit}]([\p{XDigit}_]*[\p{XDigit}])?)|(0([0-7_]*[0-7])?)|(0d[0-9]([0-9_]*[0-9])?)|([1-9]([0-9_]*[0-9])?)|([0-9]([0-9_]*[0-9])?[Ee]([0-9]([0-9_]*[0-9])?)?)">
							 | 
						||
| 
								 | 
							
								        <!--       ^ Binary literal    | ^ Hex literal                               | ^ Octal literal  | ^ "0d" Style Dec lit   | ^ Normal Dec literal | ^ Float literal w/out dec point, with exp. -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Ruby comment (Inline Documentation ) -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="COMMENT2">
							 | 
						||
| 
								 | 
							
								            <BEGIN>=begin</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>=end</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Class and instance vars -->
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										<!-- Perl-style regexps - from perl.xml -->
							 | 
						||
| 
								 | 
							
										<SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="/" AT_WORD_START="TRUE"
							 | 
						||
| 
								 | 
							
										>/[^\p{Blank}]*?/</SEQ_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- String literals -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>"</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>"</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>'</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>'</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %Q(Hello world) %(Hello world)-->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%Q?\(</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>)</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %q(Hello world) -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%q(</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>)</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %Q{Hello world} %{Hello world} -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%Q?\{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %q{Hello world} -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%q{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %Q[Hello world] %[Hello world] -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%Q?\[</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>]</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %q[Hello world] -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%q[</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>]</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %Q<Hello world> %<Hello world> -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%Q?<</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>></END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %q<Hello world> -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%q<</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>></END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- I made the next three forms as three instead of two, because the
							 | 
						||
| 
								 | 
							
								         first two actually support whitespace as a delimiter, and the third
							 | 
						||
| 
								 | 
							
								         one doesn't. -->
							 | 
						||
| 
								 | 
							
								        <!-- %Q$Hello world$ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%Q" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%Q([^\p{Alnum}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %q$Hello world$ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%q" TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%q([^\p{Alnum}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %$Hello world$ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%([^\p{Alnum}\p{Space}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %W(Array of strings) -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%W(</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>)</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %w(Array of strings) -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%w(</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>)</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %W{Array of strings} -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%W{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %w{Array of strings} -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%w{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %W[Array of strings] -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%W[</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>]</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %w[Array of strings] -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%w[</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>]</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %W<Array of strings>  -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%W<</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>></END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %w<Array of strings> -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%w<</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>></END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %W$Array of strings$ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%W" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%W([^\p{Alnum}\p{Space}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %w@Array of strings@ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%w" TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%w([^\p{Alnum}\p{Space}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Here documents <<"FOO" <<-"FOO" -->
							 | 
						||
| 
								 | 
							
								        <!-- Unfortunately, in a SPAN_REGEXP element only the <BEGIN> tag takes
							 | 
						||
| 
								 | 
							
								         a regex, not the <END> tag. So an instance of FOO anywhere in the here
							 | 
						||
| 
								 | 
							
								         document will terminate highlighting; I couldn't make it smarter. -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="<<" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN><<-?"([\p{Graph}]+)"</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Here documents <<'FOO' <<-'FOO' -->
							 | 
						||
| 
								 | 
							
								        <!-- Unfortunately, in a SPAN_REGEXP element only the <BEGIN> tag takes
							 | 
						||
| 
								 | 
							
								         a regex, not the <END> tag. So an instance of FOO anywhere in the here
							 | 
						||
| 
								 | 
							
								         document will terminate highlighting; I couldn't make it smarter. -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="<<" TYPE="LITERAL1">
							 | 
						||
| 
								 | 
							
								            <BEGIN><<-?'([\p{Graph}]+)'</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Here documents <<FOO <<-FOO -->
							 | 
						||
| 
								 | 
							
								        <!-- Unfortunately, in a SPAN_REGEXP element only the <BEGIN> tag takes
							 | 
						||
| 
								 | 
							
								         a regex, not the <END> tag. So an instance of FOO anywhere in the here
							 | 
						||
| 
								 | 
							
								         document will terminate highlighting; I couldn't make it smarter. -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="<<" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN><<-?([A-Za-z_]+)</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Shell command strings -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- `echo foo` -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>`</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>`</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %x(echo foo) -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%x(</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>)</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %x{echo foo} -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%x{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %x[echo foo] -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%x[</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>]</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %x<echo foo> -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%x<</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>></END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %x$echo foo$ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%x" TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%x([^\p{Alnum}\p{Space}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Regular expressions   -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- /regexp?/i -->
							 | 
						||
| 
								 | 
							
								        <!-- This doesn't really work well, because it can't distinguish a regexp
							 | 
						||
| 
								 | 
							
								         from multiple instances of the "/" division operator on the same line. -->
							 | 
						||
| 
								 | 
							
								        <!-- <SEQ_REGEXP HASH_CHAR="/" AT_WORD_START="TRUE"
							 | 
						||
| 
								 | 
							
								            TYPE="LITERAL3">/[^/]+/[iomx]*</SEQ_REGEXP> -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %r(regexp?) -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL3" DELEGATE="RegexpLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%r(</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>)</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %r{regexp?} -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL3" DELEGATE="RegexpLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%r{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %r[regexp?] -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL3" DELEGATE="RegexpLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%r[</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>]</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %r<regexp?> -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="LITERAL3" DELEGATE="RegexpLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%r<</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>></END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- %r$regexp?$ -->
							 | 
						||
| 
								 | 
							
								        <SPAN_REGEXP HASH_CHAR="%r" TYPE="LITERAL3" DELEGATE="RegexpLiteral">
							 | 
						||
| 
								 | 
							
								            <BEGIN>%r([^\p{Alnum}\p{Space}])</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>$1</END>
							 | 
						||
| 
								 | 
							
								        </SPAN_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- (/regexp/) -->
							 | 
						||
| 
								 | 
							
								        <SPAN DELEGATE="RegexpLiteral" MATCH_TYPE="OPERATOR" TYPE="LITERAL3">
							 | 
						||
| 
								 | 
							
								            <BEGIN>(/</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>/</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Nested code block -->
							 | 
						||
| 
								 | 
							
								        <!-- I included this just because it can appear in a "/" delimited
							 | 
						||
| 
								 | 
							
								        regular expression, handling of which is commented out above. So this
							 | 
						||
| 
								 | 
							
								        would otherwise be colored as a comment. -->
							 | 
						||
| 
								 | 
							
								        <SPAN TYPE="OPERATOR" DELEGATE="MAIN">
							 | 
						||
| 
								 | 
							
								            <BEGIN>#{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Std Comment -->
							 | 
						||
| 
								 | 
							
								        <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Predefined global variables -->
							 | 
						||
| 
								 | 
							
								        <SEQ_REGEXP HASH_CHAR="$-" TYPE="KEYWORD3" AT_WORD_START="TRUE">\$-[0adFiIKlpvw](?![\p{Alnum}_])</SEQ_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SEQ_REGEXP HASH_CHAR="$" TYPE="KEYWORD3" AT_WORD_START="TRUE">\$[0-9!@&\+`'=~/\\,\.;<>_\*"\$\?\:F](?![\p{Alnum}_])</SEQ_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Because of the ? char, this can't be done as a KEYWORD element -->
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="KEYWORD1" AT_WORD_START="TRUE">defined?</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Highlight "include" but not "include?" -->
							 | 
						||
| 
								 | 
							
								        <SEQ_REGEXP HASH_CHAR="include" TYPE="KEYWORD2" AT_WORD_START="TRUE">include(?![\p{Alnum}_\?])</SEQ_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Not Operators but like the syntax highlight to match operators -->
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">{</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">}</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">(</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">)</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Arithmetic operators -->
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">::</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">===</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">=</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">>></SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR"><<</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR"><=</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">+</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">-</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">/</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">**</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">*</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">%</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Logical Operators -->
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">&</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">|</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">!</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">></SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR"><</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">^</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">~</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Range operators -->
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">...</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">..</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">]</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">[</SEQ>
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">?</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- Symbols -->
							 | 
						||
| 
								 | 
							
								        <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR=":" TYPE="LABEL">:[\p{Alpha}_][\p{Alnum}_]*</SEQ_REGEXP>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <SEQ TYPE="OPERATOR">:</SEQ>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <KEYWORDS>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>BEGIN</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>END</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>alias</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>begin</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>break</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>case</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>class</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>def</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>do</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>else</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>elsif</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>end</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>ensure</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>for</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>if</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>in</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>module</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>next</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>redo</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>rescue</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>retry</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>return</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>then</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>undef</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>unless</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>until</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>when</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>while</KEYWORD1>
							 | 
						||
| 
								 | 
							
								            <KEYWORD1>yield</KEYWORD1>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            <KEYWORD2>load</KEYWORD2>
							 | 
						||
| 
								 | 
							
								            <KEYWORD2>require</KEYWORD2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            <OPERATOR>and</OPERATOR>
							 | 
						||
| 
								 | 
							
								            <OPERATOR>not</OPERATOR>
							 | 
						||
| 
								 | 
							
								            <OPERATOR>or</OPERATOR>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>false</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>nil</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>self</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>super</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>true</KEYWORD3>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$defout</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$deferr</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$stderr</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$stdin</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$stdout</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$DEBUG</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$FILENAME</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$LOAD_PATH</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$SAFE</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>$VERBOSE</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>__FILE__</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>__LINE__</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>ARGF</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>ARGV</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>ENV</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>DATA</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>FALSE</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>NIL</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>RUBY_PLATFORM</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>RUBY_RELEASE_DATE</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>RUBY_VERSION</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>STDERR</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>STDIN</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>STDOUT</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>SCRIPT_LINES__</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>TOPLEVEL_BINDING</KEYWORD3>
							 | 
						||
| 
								 | 
							
								            <KEYWORD3>TRUE</KEYWORD3>
							 | 
						||
| 
								 | 
							
								        </KEYWORDS>
							 | 
						||
| 
								 | 
							
								    </RULES>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <!-- Delegate contents of #{} expression in double quotes to MAIN so that
							 | 
						||
| 
								 | 
							
								     it will be syntax highlighted as well -->
							 | 
						||
| 
								 | 
							
								    <RULES DEFAULT="LITERAL1" SET="doubleQuoteLiteral">
							 | 
						||
| 
								 | 
							
								        <SPAN DELEGATE="MAIN" TYPE="OPERATOR">
							 | 
						||
| 
								 | 
							
								            <BEGIN>#{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">#@@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">#@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="NULL">#$</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								    </RULES>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <!-- Delegate contents of #{} expression in backquotes to MAIN so that
							 | 
						||
| 
								 | 
							
								     it will be syntax highlighted as well -->
							 | 
						||
| 
								 | 
							
								    <RULES DEFAULT="LITERAL2" SET="BackquoteLiteral">
							 | 
						||
| 
								 | 
							
								        <SPAN DELEGATE="MAIN" TYPE="OPERATOR">
							 | 
						||
| 
								 | 
							
								            <BEGIN>#{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">#@@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">#@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="NULL">#$</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								    </RULES>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <!-- Delegate contents of #{} expression in a regexp to MAIN so that
							 | 
						||
| 
								 | 
							
								     it will be syntax highlighted as well -->
							 | 
						||
| 
								 | 
							
								    <RULES DEFAULT="LITERAL3" SET="RegexpLiteral">
							 | 
						||
| 
								 | 
							
								        <SPAN DELEGATE="MAIN" TYPE="OPERATOR">
							 | 
						||
| 
								 | 
							
								            <BEGIN>#{</BEGIN>
							 | 
						||
| 
								 | 
							
								            <END>}</END>
							 | 
						||
| 
								 | 
							
								        </SPAN>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">#@@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="KEYWORD4">#@</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								        <MARK_FOLLOWING TYPE="NULL">#$</MARK_FOLLOWING>
							 | 
						||
| 
								 | 
							
								    </RULES>
							 | 
						||
| 
								 | 
							
								</MODE>
							 |