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> |