PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/www/tags/NOV_07_2009/htdocs/ruby/ruby.xml

#
XML | 466 lines | 424 code | 22 blank | 20 comment | 0 complexity | 44d330d2125509f8a942061330e913d1 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <!-- Ruby mode by Ian Maclean -->
  4. <!-- tweakage by Chris Morris - clabs.org -->
  5. <!-- further tweakage by Christophe Grandsire -->
  6. <!-- further tweakage by Robert McKinnon 2004 -->
  7. <!-- Major overhaul by Karl von Laudermann -->
  8. <!-- recommended mode catalog entry:
  9. <MODE NAME="ruby" FILE="ruby.xml" FILE_NAME_GLOB="*.{rb,rbw}" FIRST_LINE_GLOB="#!*/*ruby*" /> -->
  10. <MODE>
  11. <PROPS>
  12. <PROPERTY NAME="indentOpenBrackets" VALUE="" />
  13. <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
  14. <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
  15. <PROPERTY NAME="commentStart" VALUE="=begin" />
  16. <PROPERTY NAME="commentEnd" VALUE="=end" />
  17. <PROPERTY NAME="lineComment" VALUE="#" />
  18. <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+.*)*)" />
  19. </PROPS>
  20. <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE"
  21. DIGIT_RE="(0b[01]([01_]*[01])?)|(0x[[:xdigit:]]([[:xdigit:]_]*[[: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])?)?)">
  22. <!-- ^ Binary literal | ^ Hex literal | ^ Octal literal | ^ "0d" Style Dec lit | ^ Normal Dec literal | ^ Float literal w/out dec point, with exp. -->
  23. <!-- Ruby comment (Inline Documentation ) -->
  24. <SPAN TYPE="COMMENT2">
  25. <BEGIN>=begin</BEGIN>
  26. <END>=end</END>
  27. </SPAN>
  28. <!-- Class and instance vars -->
  29. <MARK_FOLLOWING TYPE="KEYWORD4">@</MARK_FOLLOWING>
  30. <!-- String literals -->
  31. <SPAN TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  32. <BEGIN>"</BEGIN>
  33. <END>"</END>
  34. </SPAN>
  35. <SPAN TYPE="LITERAL1">
  36. <BEGIN>'</BEGIN>
  37. <END>'</END>
  38. </SPAN>
  39. <!-- %Q(Hello world) %(Hello world)-->
  40. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  41. <BEGIN>%Q?\(</BEGIN>
  42. <END>)</END>
  43. </SPAN_REGEXP>
  44. <!-- %q(Hello world) -->
  45. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  46. <BEGIN>%q\(</BEGIN>
  47. <END>)</END>
  48. </SPAN_REGEXP>
  49. <!-- %Q{Hello world} %{Hello world} -->
  50. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  51. <BEGIN>%Q?\{</BEGIN>
  52. <END>}</END>
  53. </SPAN_REGEXP>
  54. <!-- %q{Hello world} -->
  55. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  56. <BEGIN>%q\{</BEGIN>
  57. <END>}</END>
  58. </SPAN_REGEXP>
  59. <!-- %Q[Hello world] %[Hello world] -->
  60. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  61. <BEGIN>%Q?\[</BEGIN>
  62. <END>]</END>
  63. </SPAN_REGEXP>
  64. <!-- %q[Hello world] -->
  65. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  66. <BEGIN>%q\[</BEGIN>
  67. <END>]</END>
  68. </SPAN_REGEXP>
  69. <!-- %Q<Hello world> %<Hello world> -->
  70. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  71. <BEGIN>%Q?&lt;</BEGIN>
  72. <END>&gt;</END>
  73. </SPAN_REGEXP>
  74. <!-- %q<Hello world> -->
  75. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  76. <BEGIN>%q&lt;</BEGIN>
  77. <END>&gt;</END>
  78. </SPAN_REGEXP>
  79. <!-- I made the next three forms as three instead of two, because the
  80. first two actually support whitespace as a delimiter, and the third
  81. one doesn't. -->
  82. <!-- %Q$Hello world$ -->
  83. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  84. <BEGIN>%Q([^[:alnum:]])</BEGIN>
  85. <END>$1</END>
  86. </SPAN_REGEXP>
  87. <!-- %q$Hello world$ -->
  88. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  89. <BEGIN>%q([^[:alnum:]])</BEGIN>
  90. <END>$1</END>
  91. </SPAN_REGEXP>
  92. <!-- %$Hello world$ -->
  93. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  94. <BEGIN>%([^[:alnum:][:space:]])</BEGIN>
  95. <END>$1</END>
  96. </SPAN_REGEXP>
  97. <!-- %W(Array of strings) -->
  98. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  99. <BEGIN>%W\(</BEGIN>
  100. <END>)</END>
  101. </SPAN_REGEXP>
  102. <!-- %w(Array of strings) -->
  103. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  104. <BEGIN>%w\(</BEGIN>
  105. <END>)</END>
  106. </SPAN_REGEXP>
  107. <!-- %W{Array of strings} -->
  108. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  109. <BEGIN>%W\{</BEGIN>
  110. <END>}</END>
  111. </SPAN_REGEXP>
  112. <!-- %w{Array of strings} -->
  113. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  114. <BEGIN>%w\{</BEGIN>
  115. <END>}</END>
  116. </SPAN_REGEXP>
  117. <!-- %W[Array of strings] -->
  118. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  119. <BEGIN>%W\[</BEGIN>
  120. <END>]</END>
  121. </SPAN_REGEXP>
  122. <!-- %w[Array of strings] -->
  123. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  124. <BEGIN>%w\[</BEGIN>
  125. <END>]</END>
  126. </SPAN_REGEXP>
  127. <!-- %W<Array of strings> -->
  128. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  129. <BEGIN>%W&lt;</BEGIN>
  130. <END>&gt;</END>
  131. </SPAN_REGEXP>
  132. <!-- %w<Array of strings> -->
  133. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  134. <BEGIN>%w&lt;</BEGIN>
  135. <END>&gt;</END>
  136. </SPAN_REGEXP>
  137. <!-- %W$Array of strings$ -->
  138. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  139. <BEGIN>%W([^[:alnum:][:space:]])</BEGIN>
  140. <END>$1</END>
  141. </SPAN_REGEXP>
  142. <!-- %w@Array of strings@ -->
  143. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL1">
  144. <BEGIN>%w([^[:alnum:][:space:]])</BEGIN>
  145. <END>$1</END>
  146. </SPAN_REGEXP>
  147. <!-- Here documents <<"FOO" <<-"FOO" -->
  148. <!-- Unfortunately, in a SPAN_REGEXP element only the <BEGIN> tag takes
  149. a regex, not the <END> tag. So an instance of FOO anywhere in the here
  150. document will terminate highlighting; I couldn't make it smarter. -->
  151. <SPAN_REGEXP HASH_CHAR="&lt;" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  152. <BEGIN>&lt;&lt;-?"([[:graph:]]+)"</BEGIN>
  153. <END>$1</END>
  154. </SPAN_REGEXP>
  155. <!-- Here documents <<'FOO' <<-'FOO' -->
  156. <!-- Unfortunately, in a SPAN_REGEXP element only the <BEGIN> tag takes
  157. a regex, not the <END> tag. So an instance of FOO anywhere in the here
  158. document will terminate highlighting; I couldn't make it smarter. -->
  159. <SPAN_REGEXP HASH_CHAR="&lt;" TYPE="LITERAL1">
  160. <BEGIN>&lt;&lt;-?'([[:graph:]]+)'</BEGIN>
  161. <END>$1</END>
  162. </SPAN_REGEXP>
  163. <!-- Here documents <<FOO <<-FOO -->
  164. <!-- Unfortunately, in a SPAN_REGEXP element only the <BEGIN> tag takes
  165. a regex, not the <END> tag. So an instance of FOO anywhere in the here
  166. document will terminate highlighting; I couldn't make it smarter. -->
  167. <SPAN_REGEXP HASH_CHAR="&lt;" TYPE="LITERAL1" DELEGATE="doubleQuoteLiteral">
  168. <BEGIN>&lt;&lt;-?([A-Za-z_]+)</BEGIN>
  169. <END>$1</END>
  170. </SPAN_REGEXP>
  171. <!-- Shell command strings -->
  172. <!-- `echo foo` -->
  173. <SPAN TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
  174. <BEGIN>`</BEGIN>
  175. <END>`</END>
  176. </SPAN>
  177. <!-- %x(echo foo) -->
  178. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
  179. <BEGIN>%x\(</BEGIN>
  180. <END>)</END>
  181. </SPAN_REGEXP>
  182. <!-- %x{echo foo} -->
  183. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
  184. <BEGIN>%x\{</BEGIN>
  185. <END>}</END>
  186. </SPAN_REGEXP>
  187. <!-- %x[echo foo] -->
  188. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
  189. <BEGIN>%x\[</BEGIN>
  190. <END>]</END>
  191. </SPAN_REGEXP>
  192. <!-- %x<echo foo> -->
  193. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
  194. <BEGIN>%x&lt;</BEGIN>
  195. <END>&gt;</END>
  196. </SPAN_REGEXP>
  197. <!-- %x$echo foo$ -->
  198. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL2" DELEGATE="BackquoteLiteral">
  199. <BEGIN>%x([^[:alnum:][:space:]])</BEGIN>
  200. <END>$1</END>
  201. </SPAN_REGEXP>
  202. <!-- Regular expressions -->
  203. <!-- /regexp?/i -->
  204. <!-- This doesn't really work well, because it can't distinguish a regexp
  205. from multiple instances of the "/" division operator on the same line. -->
  206. <!-- <SEQ_REGEXP HASH_CHAR="/" AT_WORD_START="TRUE"
  207. TYPE="LITERAL3">/[^/]+/[iomx]*</SEQ_REGEXP> -->
  208. <!-- %r(regexp?) -->
  209. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL3" DELEGATE="RegexpLiteral">
  210. <BEGIN>%r\(</BEGIN>
  211. <END>)</END>
  212. </SPAN_REGEXP>
  213. <!-- %r{regexp?} -->
  214. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL3" DELEGATE="RegexpLiteral">
  215. <BEGIN>%r\{</BEGIN>
  216. <END>}</END>
  217. </SPAN_REGEXP>
  218. <!-- %r[regexp?] -->
  219. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL3" DELEGATE="RegexpLiteral">
  220. <BEGIN>%r\[</BEGIN>
  221. <END>]</END>
  222. </SPAN_REGEXP>
  223. <!-- %r<regexp?> -->
  224. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL3" DELEGATE="RegexpLiteral">
  225. <BEGIN>%r&lt;</BEGIN>
  226. <END>&gt;</END>
  227. </SPAN_REGEXP>
  228. <!-- %r$regexp?$ -->
  229. <SPAN_REGEXP HASH_CHAR="%" TYPE="LITERAL3" DELEGATE="RegexpLiteral">
  230. <BEGIN>%r([^[:alnum:][:space:]])</BEGIN>
  231. <END>$1</END>
  232. </SPAN_REGEXP>
  233. <!-- (/regexp/) -->
  234. <SPAN_REGEXP HASH_CHAR="(" DELEGATE="RegexpLiteral" EXCLUDE_MATCH="TRUE" TYPE="LITERAL3">
  235. <BEGIN>\(/</BEGIN>
  236. <END>/</END>
  237. </SPAN_REGEXP>
  238. <!-- Nested code block -->
  239. <!-- I included this just because it can appear in a "/" delimited
  240. regular expression, handling of which is commented out above. So this
  241. would otherwise be colored as a comment. -->
  242. <SPAN TYPE="OPERATOR" DELEGATE="MAIN">
  243. <BEGIN>#{</BEGIN>
  244. <END>}</END>
  245. </SPAN>
  246. <!-- Std Comment -->
  247. <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
  248. <!-- Predefined global variables -->
  249. <SEQ_REGEXP HASH_CHAR="$" TYPE="KEYWORD3"
  250. AT_WORD_START="TRUE">\$-[0adFiIKlpvw](?![[:alnum:]_])</SEQ_REGEXP>
  251. <SEQ_REGEXP HASH_CHAR="$" TYPE="KEYWORD3"
  252. AT_WORD_START="TRUE">\$[0-9!@&amp;\+`'=~/\\,\.;&lt;&gt;_\*"\$\?\:F](?![[:alnum:]_])</SEQ_REGEXP>
  253. <!-- Because of the ? char, this can't be done as a KEYWORD element -->
  254. <SEQ TYPE="KEYWORD1" AT_WORD_START="TRUE">defined?</SEQ>
  255. <!-- Highlight "include" but not "include?" -->
  256. <SEQ_REGEXP HASH_CHAR="i" TYPE="KEYWORD2"
  257. AT_WORD_START="TRUE">include(?![[:alnum:]_\?])</SEQ_REGEXP>
  258. <!-- Not Operators but like the syntax highlight to match operators -->
  259. <SEQ TYPE="OPERATOR">{</SEQ>
  260. <SEQ TYPE="OPERATOR">}</SEQ>
  261. <SEQ TYPE="OPERATOR">(</SEQ>
  262. <SEQ TYPE="OPERATOR">)</SEQ>
  263. <!-- Arithmetic operators -->
  264. <SEQ TYPE="OPERATOR">::</SEQ>
  265. <SEQ TYPE="OPERATOR">===</SEQ>
  266. <SEQ TYPE="OPERATOR">=</SEQ>
  267. <SEQ TYPE="OPERATOR">&gt;&gt;</SEQ>
  268. <SEQ TYPE="OPERATOR">&lt;&lt;</SEQ>
  269. <SEQ TYPE="OPERATOR">&lt;=</SEQ>
  270. <SEQ TYPE="OPERATOR">+</SEQ>
  271. <SEQ TYPE="OPERATOR">-</SEQ>
  272. <SEQ TYPE="OPERATOR">/</SEQ>
  273. <SEQ TYPE="OPERATOR">**</SEQ>
  274. <SEQ TYPE="OPERATOR">*</SEQ>
  275. <SEQ TYPE="OPERATOR">%</SEQ>
  276. <!-- Logical Operators -->
  277. <SEQ TYPE="OPERATOR">&amp;</SEQ>
  278. <SEQ TYPE="OPERATOR">|</SEQ>
  279. <SEQ TYPE="OPERATOR">!</SEQ>
  280. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  281. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  282. <SEQ TYPE="OPERATOR">^</SEQ>
  283. <SEQ TYPE="OPERATOR">~</SEQ>
  284. <!-- Range operators -->
  285. <SEQ TYPE="OPERATOR">...</SEQ>
  286. <SEQ TYPE="OPERATOR">..</SEQ>
  287. <SEQ TYPE="OPERATOR">]</SEQ>
  288. <SEQ TYPE="OPERATOR">[</SEQ>
  289. <SEQ TYPE="OPERATOR">?</SEQ>
  290. <!-- Symbols -->
  291. <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR=":"
  292. TYPE="LABEL">:[[:alpha:]_][[:alnum:]_]*</SEQ_REGEXP>
  293. <SEQ TYPE="OPERATOR">:</SEQ>
  294. <KEYWORDS>
  295. <KEYWORD1>BEGIN</KEYWORD1>
  296. <KEYWORD1>END</KEYWORD1>
  297. <KEYWORD1>alias</KEYWORD1>
  298. <KEYWORD1>begin</KEYWORD1>
  299. <KEYWORD1>break</KEYWORD1>
  300. <KEYWORD1>case</KEYWORD1>
  301. <KEYWORD1>class</KEYWORD1>
  302. <KEYWORD1>def</KEYWORD1>
  303. <KEYWORD1>do</KEYWORD1>
  304. <KEYWORD1>else</KEYWORD1>
  305. <KEYWORD1>elsif</KEYWORD1>
  306. <KEYWORD1>end</KEYWORD1>
  307. <KEYWORD1>ensure</KEYWORD1>
  308. <KEYWORD1>for</KEYWORD1>
  309. <KEYWORD1>if</KEYWORD1>
  310. <KEYWORD1>in</KEYWORD1>
  311. <KEYWORD1>module</KEYWORD1>
  312. <KEYWORD1>next</KEYWORD1>
  313. <KEYWORD1>redo</KEYWORD1>
  314. <KEYWORD1>rescue</KEYWORD1>
  315. <KEYWORD1>retry</KEYWORD1>
  316. <KEYWORD1>return</KEYWORD1>
  317. <KEYWORD1>then</KEYWORD1>
  318. <KEYWORD1>undef</KEYWORD1>
  319. <KEYWORD1>unless</KEYWORD1>
  320. <KEYWORD1>until</KEYWORD1>
  321. <KEYWORD1>when</KEYWORD1>
  322. <KEYWORD1>while</KEYWORD1>
  323. <KEYWORD1>yield</KEYWORD1>
  324. <KEYWORD2>load</KEYWORD2>
  325. <KEYWORD2>require</KEYWORD2>
  326. <OPERATOR>and</OPERATOR>
  327. <OPERATOR>not</OPERATOR>
  328. <OPERATOR>or</OPERATOR>
  329. <KEYWORD3>false</KEYWORD3>
  330. <KEYWORD3>nil</KEYWORD3>
  331. <KEYWORD3>self</KEYWORD3>
  332. <KEYWORD3>super</KEYWORD3>
  333. <KEYWORD3>true</KEYWORD3>
  334. <KEYWORD3>$defout</KEYWORD3>
  335. <KEYWORD3>$deferr</KEYWORD3>
  336. <KEYWORD3>$stderr</KEYWORD3>
  337. <KEYWORD3>$stdin</KEYWORD3>
  338. <KEYWORD3>$stdout</KEYWORD3>
  339. <KEYWORD3>$DEBUG</KEYWORD3>
  340. <KEYWORD3>$FILENAME</KEYWORD3>
  341. <KEYWORD3>$LOAD_PATH</KEYWORD3>
  342. <KEYWORD3>$SAFE</KEYWORD3>
  343. <KEYWORD3>$VERBOSE</KEYWORD3>
  344. <KEYWORD3>__FILE__</KEYWORD3>
  345. <KEYWORD3>__LINE__</KEYWORD3>
  346. <KEYWORD3>ARGF</KEYWORD3>
  347. <KEYWORD3>ARGV</KEYWORD3>
  348. <KEYWORD3>ENV</KEYWORD3>
  349. <KEYWORD3>DATA</KEYWORD3>
  350. <KEYWORD3>FALSE</KEYWORD3>
  351. <KEYWORD3>NIL</KEYWORD3>
  352. <KEYWORD3>RUBY_PLATFORM</KEYWORD3>
  353. <KEYWORD3>RUBY_RELEASE_DATE</KEYWORD3>
  354. <KEYWORD3>RUBY_VERSION</KEYWORD3>
  355. <KEYWORD3>STDERR</KEYWORD3>
  356. <KEYWORD3>STDIN</KEYWORD3>
  357. <KEYWORD3>STDOUT</KEYWORD3>
  358. <KEYWORD3>SCRIPT_LINES__</KEYWORD3>
  359. <KEYWORD3>TOPLEVEL_BINDING</KEYWORD3>
  360. <KEYWORD3>TRUE</KEYWORD3>
  361. </KEYWORDS>
  362. </RULES>
  363. <!-- Delegate contents of #{} expression in double quotes to MAIN so that
  364. it will be syntax highlighted as well -->
  365. <RULES DEFAULT="LITERAL1" SET="doubleQuoteLiteral">
  366. <SPAN DELEGATE="MAIN" TYPE="OPERATOR">
  367. <BEGIN>#{</BEGIN>
  368. <END>}</END>
  369. </SPAN>
  370. <MARK_FOLLOWING TYPE="KEYWORD4">#@@</MARK_FOLLOWING>
  371. <MARK_FOLLOWING TYPE="KEYWORD4">#@</MARK_FOLLOWING>
  372. <MARK_FOLLOWING TYPE="NULL">#$</MARK_FOLLOWING>
  373. </RULES>
  374. <!-- Delegate contents of #{} expression in backquotes to MAIN so that
  375. it will be syntax highlighted as well -->
  376. <RULES DEFAULT="LITERAL2" SET="BackquoteLiteral">
  377. <SPAN DELEGATE="MAIN" TYPE="OPERATOR">
  378. <BEGIN>#{</BEGIN>
  379. <END>}</END>
  380. </SPAN>
  381. <MARK_FOLLOWING TYPE="KEYWORD4">#@@</MARK_FOLLOWING>
  382. <MARK_FOLLOWING TYPE="KEYWORD4">#@</MARK_FOLLOWING>
  383. <MARK_FOLLOWING TYPE="NULL">#$</MARK_FOLLOWING>
  384. </RULES>
  385. <!-- Delegate contents of #{} expression in a regexp to MAIN so that
  386. it will be syntax highlighted as well -->
  387. <RULES DEFAULT="LITERAL3" SET="RegexpLiteral">
  388. <SPAN DELEGATE="MAIN" TYPE="OPERATOR">
  389. <BEGIN>#{</BEGIN>
  390. <END>}</END>
  391. </SPAN>
  392. <MARK_FOLLOWING TYPE="KEYWORD4">#@@</MARK_FOLLOWING>
  393. <MARK_FOLLOWING TYPE="KEYWORD4">#@</MARK_FOLLOWING>
  394. <MARK_FOLLOWING TYPE="NULL">#$</MARK_FOLLOWING>
  395. </RULES>
  396. </MODE>