PageRenderTime 41ms CodeModel.GetById 12ms RepoModel.GetById 1ms app.codeStats 0ms

/jEdit/tags/jedit-4-3-pre5/modes/ruby.xml

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