/jEdit/tags/jedit-4-1-pre1/modes/perl.xml

#
XML | 546 lines | 426 code | 52 blank | 68 comment | 0 complexity | 64642e9574276ce1e9f9b6231e64af83 MD5 | raw file
  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <MODE>
  4. <PROPS>
  5. <PROPERTY NAME="lineComment" VALUE="#" />
  6. <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
  7. <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
  8. </PROPS>
  9. <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
  10. <!-- Comments -->
  11. <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
  12. <!-- TYPE is LABEL so that =head1 and =cut are highlighted as so -->
  13. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  14. <BEGIN>=head1</BEGIN>
  15. <END>=cut</END>
  16. </SPAN>
  17. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  18. <BEGIN>=head2</BEGIN>
  19. <END>=cut</END>
  20. </SPAN>
  21. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  22. <BEGIN>=item</BEGIN>
  23. <END>=cut</END>
  24. </SPAN>
  25. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  26. <BEGIN>=over</BEGIN>
  27. <END>=cut</END>
  28. </SPAN>
  29. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  30. <BEGIN>=back</BEGIN>
  31. <END>=cut</END>
  32. </SPAN>
  33. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  34. <BEGIN>=pod</BEGIN>
  35. <END>=cut</END>
  36. </SPAN>
  37. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  38. <BEGIN>=for</BEGIN>
  39. <END>=cut</END>
  40. </SPAN>
  41. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  42. <BEGIN>=begin</BEGIN>
  43. <END>=cut</END>
  44. </SPAN>
  45. <SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
  46. <BEGIN>=end</BEGIN>
  47. <END>=cut</END>
  48. </SPAN>
  49. <!-- Variables -->
  50. <SEQ TYPE="KEYWORD2">$`</SEQ>
  51. <SEQ TYPE="KEYWORD2">$'</SEQ>
  52. <SEQ TYPE="KEYWORD2">$"</SEQ>
  53. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  54. <BEGIN>${</BEGIN>
  55. <END>}</END>
  56. </SPAN>
  57. <MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
  58. <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
  59. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  60. <BEGIN>@{</BEGIN>
  61. <END>}</END>
  62. </SPAN>
  63. <MARK_FOLLOWING TYPE="KEYWORD2">@</MARK_FOLLOWING>
  64. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  65. <BEGIN>%{</BEGIN>
  66. <END>}</END>
  67. </SPAN>
  68. <MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>
  69. <!-- RegExps -->
  70. <!-- <SPAN TYPE="LITERAL2" DELEGATE="REGEXP" NO_LINE_BREAK="TRUE" >
  71. <BEGIN>/</BEGIN>
  72. <END>/</END>
  73. </SPAN> -->
  74. <!-- Literals -->
  75. <SPAN TYPE="LITERAL1" DELEGATE="LITERAL">
  76. <BEGIN>"</BEGIN>
  77. <END>"</END>
  78. </SPAN>
  79. <SPAN TYPE="LITERAL1">
  80. <BEGIN>'</BEGIN>
  81. <END>'</END>
  82. </SPAN>
  83. <!-- Exec -->
  84. <SPAN TYPE="KEYWORD3" DELEGATE="EXEC">
  85. <BEGIN>`</BEGIN>
  86. <END>`</END>
  87. </SPAN>
  88. <!-- Readins -->
  89. <SPAN TYPE="LITERAL1" DELEGATE="LITERAL">
  90. <BEGIN>&lt;&lt;EOF</BEGIN>
  91. <END>EOF</END>
  92. </SPAN>
  93. <!-- Operators -->
  94. <SEQ TYPE="OPERATOR">|</SEQ>
  95. <SEQ TYPE="OPERATOR">&amp;</SEQ>
  96. <SEQ TYPE="OPERATOR">!</SEQ>
  97. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  98. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  99. <SEQ TYPE="OPERATOR">=</SEQ>
  100. <SEQ TYPE="OPERATOR">!</SEQ>
  101. <SEQ TYPE="OPERATOR">&gt;=</SEQ>
  102. <SEQ TYPE="OPERATOR">&lt;=</SEQ>
  103. <SEQ TYPE="OPERATOR">+</SEQ>
  104. <SEQ TYPE="OPERATOR">-</SEQ>
  105. <SEQ TYPE="OPERATOR">/</SEQ>
  106. <SEQ TYPE="OPERATOR">*</SEQ>
  107. <SEQ TYPE="OPERATOR">^</SEQ>
  108. <SEQ TYPE="OPERATOR">~</SEQ>
  109. <SEQ TYPE="OPERATOR">}</SEQ>
  110. <SEQ TYPE="OPERATOR">{</SEQ>
  111. <!-- Keywords -->
  112. <KEYWORDS>
  113. <KEYWORD1>new</KEYWORD1>
  114. <KEYWORD1>if</KEYWORD1>
  115. <KEYWORD1>until</KEYWORD1>
  116. <KEYWORD1>while</KEYWORD1>
  117. <KEYWORD1>elsif</KEYWORD1>
  118. <KEYWORD1>else</KEYWORD1>
  119. <KEYWORD1>unless</KEYWORD1>
  120. <KEYWORD1>for</KEYWORD1>
  121. <KEYWORD1>foreach</KEYWORD1>
  122. <KEYWORD1>BEGIN</KEYWORD1>
  123. <KEYWORD1>END</KEYWORD1>
  124. <OPERATOR>cmp</OPERATOR>
  125. <OPERATOR>eq</OPERATOR>
  126. <OPERATOR>ne</OPERATOR>
  127. <OPERATOR>le</OPERATOR>
  128. <OPERATOR>ge</OPERATOR>
  129. <OPERATOR>not</OPERATOR>
  130. <OPERATOR>and</OPERATOR>
  131. <OPERATOR>or</OPERATOR>
  132. <OPERATOR>xor</OPERATOR>
  133. <!-- At least attempt to highlight 'x', although this misses some -->
  134. <OPERATOR>x</OPERATOR>
  135. <!--
  136. The following function list was derived from the perlfunc man
  137. page, Perl version 5.00503
  138. Certain keywords have been commented out where they appear more
  139. than once, and the y///, qx//, etc. functions have been removed,
  140. since they would not be colorized as keywords, but with separate
  141. rules.
  142. -->
  143. <!-- Functions for SCALARs or strings -->
  144. <KEYWORD3>chomp</KEYWORD3>
  145. <KEYWORD3>chop</KEYWORD3>
  146. <KEYWORD3>chr</KEYWORD3>
  147. <KEYWORD3>crypt</KEYWORD3>
  148. <KEYWORD3>hex</KEYWORD3>
  149. <KEYWORD3>index</KEYWORD3>
  150. <KEYWORD3>lc</KEYWORD3>
  151. <KEYWORD3>lcfirst</KEYWORD3>
  152. <KEYWORD3>length</KEYWORD3>
  153. <KEYWORD3>oct</KEYWORD3>
  154. <KEYWORD3>ord</KEYWORD3>
  155. <KEYWORD3>pack</KEYWORD3>
  156. <KEYWORD3>reverse</KEYWORD3>
  157. <KEYWORD3>rindex</KEYWORD3>
  158. <KEYWORD3>sprintf</KEYWORD3>
  159. <KEYWORD3>substr</KEYWORD3>
  160. <KEYWORD3>uc</KEYWORD3>
  161. <KEYWORD3>ucfirst</KEYWORD3>
  162. <!-- Regular expressions and pattern matching -->
  163. <KEYWORD3>pos</KEYWORD3>
  164. <KEYWORD3>quotemeta</KEYWORD3>
  165. <KEYWORD3>split</KEYWORD3>
  166. <KEYWORD3>study</KEYWORD3>
  167. <!-- Numeric functions -->
  168. <KEYWORD3>abs</KEYWORD3>
  169. <KEYWORD3>atan2</KEYWORD3>
  170. <KEYWORD3>cos</KEYWORD3>
  171. <KEYWORD3>exp</KEYWORD3>
  172. <!--<KEYWORD3>hex</KEYWORD3>-->
  173. <KEYWORD3>int</KEYWORD3>
  174. <KEYWORD3>log</KEYWORD3>
  175. <!--<KEYWORD3>oct</KEYWORD3>-->
  176. <KEYWORD3>rand</KEYWORD3>
  177. <KEYWORD3>sin</KEYWORD3>
  178. <KEYWORD3>sqrt</KEYWORD3>
  179. <KEYWORD3>srand</KEYWORD3>
  180. <!-- Functions for real @ARRAYs -->
  181. <KEYWORD3>pop</KEYWORD3>
  182. <KEYWORD3>push</KEYWORD3>
  183. <KEYWORD3>shift</KEYWORD3>
  184. <KEYWORD3>splice</KEYWORD3>
  185. <KEYWORD3>unshift</KEYWORD3>
  186. <!-- Functions for list data -->
  187. <KEYWORD3>grep</KEYWORD3>
  188. <KEYWORD3>join</KEYWORD3>
  189. <KEYWORD3>map</KEYWORD3>
  190. <!--<KEYWORD3>reverse</KEYWORD3>-->
  191. <KEYWORD3>sort</KEYWORD3>
  192. <KEYWORD3>unpack</KEYWORD3>
  193. <!-- Functions for real %HASHes -->
  194. <KEYWORD3>delete</KEYWORD3>
  195. <KEYWORD3>each</KEYWORD3>
  196. <KEYWORD3>exists</KEYWORD3>
  197. <KEYWORD3>keys</KEYWORD3>
  198. <KEYWORD3>values</KEYWORD3>
  199. <!-- Input and output functions -->
  200. <KEYWORD3>binmode</KEYWORD3>
  201. <KEYWORD3>close</KEYWORD3>
  202. <KEYWORD3>closedir</KEYWORD3>
  203. <KEYWORD3>dbmclose</KEYWORD3>
  204. <KEYWORD3>dbmopen</KEYWORD3>
  205. <!--<KEYWORD3>die</KEYWORD3>-->
  206. <KEYWORD3>eof</KEYWORD3>
  207. <KEYWORD3>fileno</KEYWORD3>
  208. <KEYWORD3>flock</KEYWORD3>
  209. <KEYWORD3>format</KEYWORD3>
  210. <KEYWORD3>getc</KEYWORD3>
  211. <KEYWORD3>print</KEYWORD3>
  212. <KEYWORD3>printf</KEYWORD3>
  213. <KEYWORD3>read</KEYWORD3>
  214. <KEYWORD3>readdir</KEYWORD3>
  215. <KEYWORD3>rewinddir</KEYWORD3>
  216. <KEYWORD3>seek</KEYWORD3>
  217. <KEYWORD3>seekdir</KEYWORD3>
  218. <KEYWORD3>select</KEYWORD3>
  219. <KEYWORD3>syscall</KEYWORD3>
  220. <KEYWORD3>sysread</KEYWORD3>
  221. <KEYWORD3>sysseek</KEYWORD3>
  222. <KEYWORD3>syswrite</KEYWORD3>
  223. <KEYWORD3>tell</KEYWORD3>
  224. <KEYWORD3>telldir</KEYWORD3>
  225. <KEYWORD3>truncate</KEYWORD3>
  226. <KEYWORD3>warn</KEYWORD3>
  227. <KEYWORD3>write</KEYWORD3>
  228. <!-- Functions for fixed length data or records -->
  229. <!--<KEYWORD3>pack</KEYWORD3>-->
  230. <!--<KEYWORD3>read</KEYWORD3>-->
  231. <!--<KEYWORD3>syscall</KEYWORD3>-->
  232. <!--<KEYWORD3>sysread</KEYWORD3>-->
  233. <!--<KEYWORD3>syswrite</KEYWORD3>-->
  234. <!--<KEYWORD3>unpack</KEYWORD3>-->
  235. <KEYWORD3>vec</KEYWORD3>
  236. <!-- Functions for filehandles, files, or directories -->
  237. <KEYWORD3>chdir</KEYWORD3>
  238. <KEYWORD3>chmod</KEYWORD3>
  239. <KEYWORD3>chown</KEYWORD3>
  240. <KEYWORD3>chroot</KEYWORD3>
  241. <KEYWORD3>fcntl</KEYWORD3>
  242. <KEYWORD3>glob</KEYWORD3>
  243. <KEYWORD3>ioctl</KEYWORD3>
  244. <KEYWORD3>link</KEYWORD3>
  245. <KEYWORD3>lstat</KEYWORD3>
  246. <KEYWORD3>mkdir</KEYWORD3>
  247. <KEYWORD3>open</KEYWORD3>
  248. <KEYWORD3>opendir</KEYWORD3>
  249. <KEYWORD3>readlink</KEYWORD3>
  250. <KEYWORD3>rename</KEYWORD3>
  251. <KEYWORD3>rmdir</KEYWORD3>
  252. <KEYWORD3>stat</KEYWORD3>
  253. <KEYWORD3>symlink</KEYWORD3>
  254. <KEYWORD3>umask</KEYWORD3>
  255. <KEYWORD3>unlink</KEYWORD3>
  256. <KEYWORD3>utime</KEYWORD3>
  257. <!-- Keywords related to the control flow of your perl program -->
  258. <KEYWORD1>caller</KEYWORD1>
  259. <KEYWORD1>continue</KEYWORD1>
  260. <KEYWORD1>die</KEYWORD1>
  261. <KEYWORD1>do</KEYWORD1>
  262. <KEYWORD1>dump</KEYWORD1>
  263. <KEYWORD1>eval</KEYWORD1>
  264. <KEYWORD1>exit</KEYWORD1>
  265. <KEYWORD1>goto</KEYWORD1>
  266. <KEYWORD1>last</KEYWORD1>
  267. <KEYWORD1>next</KEYWORD1>
  268. <KEYWORD1>redo</KEYWORD1>
  269. <KEYWORD1>return</KEYWORD1>
  270. <KEYWORD1>sub</KEYWORD1>
  271. <KEYWORD1>wantarray</KEYWORD1>
  272. <!-- Keywords related to scoping -->
  273. <!--<KEYWORD1>caller</KEYWORD1>-->
  274. <!--<KEYWORD1>import</KEYWORD1>-->
  275. <KEYWORD1>local</KEYWORD1>
  276. <KEYWORD1>my</KEYWORD1>
  277. <KEYWORD1>package</KEYWORD1>
  278. <KEYWORD1>use</KEYWORD1>
  279. <!-- Miscellaneous functions -->
  280. <KEYWORD3>defined</KEYWORD3>
  281. <!--<KEYWORD3>dump</KEYWORD3>-->
  282. <!--<KEYWORD3>eval</KEYWORD3>-->
  283. <KEYWORD3>formline</KEYWORD3>
  284. <!--<KEYWORD3>local</KEYWORD3>-->
  285. <!--<KEYWORD3>my</KEYWORD3>-->
  286. <KEYWORD3>reset</KEYWORD3>
  287. <KEYWORD3>scalar</KEYWORD3>
  288. <KEYWORD3>undef</KEYWORD3>
  289. <!--<KEYWORD3>wantarray</KEYWORD3>-->
  290. <!-- Functions for processes and process groups -->
  291. <KEYWORD3>alarm</KEYWORD3>
  292. <KEYWORD3>exec</KEYWORD3>
  293. <KEYWORD3>fork</KEYWORD3>
  294. <KEYWORD3>getpgrp</KEYWORD3>
  295. <KEYWORD3>getppid</KEYWORD3>
  296. <KEYWORD3>getpriority</KEYWORD3>
  297. <KEYWORD3>kill</KEYWORD3>
  298. <KEYWORD3>pipe</KEYWORD3>
  299. <KEYWORD3>setpgrp</KEYWORD3>
  300. <KEYWORD3>setpriority</KEYWORD3>
  301. <KEYWORD3>sleep</KEYWORD3>
  302. <KEYWORD3>system</KEYWORD3>
  303. <KEYWORD3>times</KEYWORD3>
  304. <KEYWORD3>wait</KEYWORD3>
  305. <KEYWORD3>waitpid</KEYWORD3>
  306. <!-- Keywords related to perl modules -->
  307. <!--<KEYWORD1>do</KEYWORD1>-->
  308. <KEYWORD1>import</KEYWORD1>
  309. <KEYWORD1>no</KEYWORD1>
  310. <!--<KEYWORD1>package</KEYWORD1>-->
  311. <KEYWORD1>require</KEYWORD1>
  312. <!--<KEYWORD1>use</KEYWORD1>-->
  313. <!-- Keywords related to classes and object-orientedness -->
  314. <KEYWORD3>bless</KEYWORD3>
  315. <!--<KEYWORD3>dbmclose</KEYWORD3>-->
  316. <!--<KEYWORD3>dbmopen</KEYWORD3>-->
  317. <!--<KEYWORD3>package</KEYWORD3>-->
  318. <KEYWORD3>ref</KEYWORD3>
  319. <KEYWORD3>tie</KEYWORD3>
  320. <KEYWORD3>tied</KEYWORD3>
  321. <KEYWORD3>untie</KEYWORD3>
  322. <!--<KEYWORD3>use</KEYWORD3>-->
  323. <!-- Low-level socket functions -->
  324. <KEYWORD3>accept</KEYWORD3>
  325. <KEYWORD3>bind</KEYWORD3>
  326. <KEYWORD3>connect</KEYWORD3>
  327. <KEYWORD3>getpeername</KEYWORD3>
  328. <KEYWORD3>getsockname</KEYWORD3>
  329. <KEYWORD3>getsockopt</KEYWORD3>
  330. <KEYWORD3>listen</KEYWORD3>
  331. <KEYWORD3>recv</KEYWORD3>
  332. <KEYWORD3>send</KEYWORD3>
  333. <KEYWORD3>setsockopt</KEYWORD3>
  334. <KEYWORD3>shutdown</KEYWORD3>
  335. <KEYWORD3>socket</KEYWORD3>
  336. <KEYWORD3>socketpair</KEYWORD3>
  337. <!-- System V interprocess communication functions -->
  338. <KEYWORD3>msgctl</KEYWORD3>
  339. <KEYWORD3>msgget</KEYWORD3>
  340. <KEYWORD3>msgrcv</KEYWORD3>
  341. <KEYWORD3>msgsnd</KEYWORD3>
  342. <KEYWORD3>semctl</KEYWORD3>
  343. <KEYWORD3>semget</KEYWORD3>
  344. <KEYWORD3>semop</KEYWORD3>
  345. <KEYWORD3>shmctl</KEYWORD3>
  346. <KEYWORD3>shmget</KEYWORD3>
  347. <KEYWORD3>shmread</KEYWORD3>
  348. <KEYWORD3>shmwrite</KEYWORD3>
  349. <!-- Fetching user and group info -->
  350. <KEYWORD3>endgrent</KEYWORD3>
  351. <KEYWORD3>endhostent</KEYWORD3>
  352. <KEYWORD3>endnetent</KEYWORD3>
  353. <KEYWORD3>endpwent</KEYWORD3>
  354. <KEYWORD3>getgrent</KEYWORD3>
  355. <KEYWORD3>getgrgid</KEYWORD3>
  356. <KEYWORD3>getgrnam</KEYWORD3>
  357. <KEYWORD3>getlogin</KEYWORD3>
  358. <KEYWORD3>getpwent</KEYWORD3>
  359. <KEYWORD3>getpwnam</KEYWORD3>
  360. <KEYWORD3>getpwuid</KEYWORD3>
  361. <KEYWORD3>setgrent</KEYWORD3>
  362. <KEYWORD3>setpwent</KEYWORD3>
  363. <!-- Fetching network info -->
  364. <KEYWORD3>endprotoent</KEYWORD3>
  365. <KEYWORD3>endservent</KEYWORD3>
  366. <KEYWORD3>gethostbyaddr</KEYWORD3>
  367. <KEYWORD3>gethostbyname</KEYWORD3>
  368. <KEYWORD3>gethostent</KEYWORD3>
  369. <KEYWORD3>getnetbyaddr</KEYWORD3>
  370. <KEYWORD3>getnetbyname</KEYWORD3>
  371. <KEYWORD3>getnetent</KEYWORD3>
  372. <KEYWORD3>getprotobyname</KEYWORD3>
  373. <KEYWORD3>getprotobynumber</KEYWORD3>
  374. <KEYWORD3>getprotoent</KEYWORD3>
  375. <KEYWORD3>getservbyname</KEYWORD3>
  376. <KEYWORD3>getservbyport</KEYWORD3>
  377. <KEYWORD3>getservent</KEYWORD3>
  378. <KEYWORD3>sethostent</KEYWORD3>
  379. <KEYWORD3>setnetent</KEYWORD3>
  380. <KEYWORD3>setprotoent</KEYWORD3>
  381. <KEYWORD3>setservent</KEYWORD3>
  382. <!-- Time-related functions -->
  383. <KEYWORD3>gmtime</KEYWORD3>
  384. <KEYWORD3>localtime</KEYWORD3>
  385. <KEYWORD3>time</KEYWORD3>
  386. <!--<KEYWORD3>times</KEYWORD3>-->
  387. </KEYWORDS>
  388. </RULES>
  389. <RULES SET="POD" DEFAULT="COMMENT2">
  390. <MARK_FOLLOWING TYPE="LABEL" AT_LINE_START="TRUE">=</MARK_FOLLOWING>
  391. </RULES>
  392. <RULES SET="LITERAL" DEFAULT="LITERAL1" ESCAPE="\">
  393. <!-- Variables -->
  394. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  395. <BEGIN>${</BEGIN>
  396. <END>}</END>
  397. </SPAN>
  398. <MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
  399. <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
  400. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  401. <BEGIN>@{</BEGIN>
  402. <END>}</END>
  403. </SPAN>
  404. <MARK_FOLLOWING TYPE="KEYWORD2">@</MARK_FOLLOWING>
  405. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  406. <BEGIN>%{</BEGIN>
  407. <END>}</END>
  408. </SPAN>
  409. <MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>
  410. <SEQ TYPE="LITERAL1">|</SEQ>
  411. <SEQ TYPE="LITERAL1">&amp;</SEQ>
  412. <SEQ TYPE="LITERAL1">!</SEQ>
  413. <SEQ TYPE="LITERAL1">&gt;</SEQ>
  414. <SEQ TYPE="LITERAL1">&lt;</SEQ>
  415. <SEQ TYPE="LITERAL1">)</SEQ>
  416. <SEQ TYPE="LITERAL1">(</SEQ>
  417. <SEQ TYPE="LITERAL1">=</SEQ>
  418. <SEQ TYPE="LITERAL1">!</SEQ>
  419. <SEQ TYPE="LITERAL1">+</SEQ>
  420. <SEQ TYPE="LITERAL1">-</SEQ>
  421. <SEQ TYPE="LITERAL1">/</SEQ>
  422. <SEQ TYPE="LITERAL1">*</SEQ>
  423. <SEQ TYPE="LITERAL1">^</SEQ>
  424. <SEQ TYPE="LITERAL1">~</SEQ>
  425. <SEQ TYPE="LITERAL1">}</SEQ>
  426. <SEQ TYPE="LITERAL1">{</SEQ>
  427. <SEQ TYPE="LITERAL1">.</SEQ>
  428. <SEQ TYPE="LITERAL1">,</SEQ>
  429. <SEQ TYPE="LITERAL1">;</SEQ>
  430. <SEQ TYPE="LITERAL1">]</SEQ>
  431. <SEQ TYPE="LITERAL1">[</SEQ>
  432. <SEQ TYPE="LITERAL1">?</SEQ>
  433. <SEQ TYPE="LITERAL1">:</SEQ>
  434. </RULES>
  435. <RULES SET="EXEC" DEFAULT="KEYWORD3" ESCAPE="\">
  436. <!-- Comments -->
  437. <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
  438. <!-- Variables -->
  439. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
  440. <BEGIN>${</BEGIN>
  441. <END>}</END>
  442. </SPAN>
  443. <MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
  444. <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
  445. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
  446. <BEGIN>@{</BEGIN>
  447. <END>}</END>
  448. </SPAN>
  449. <MARK_FOLLOWING TYPE="KEYWORD2">@</MARK_FOLLOWING>
  450. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
  451. <BEGIN>%{</BEGIN>
  452. <END>}</END>
  453. </SPAN>
  454. <MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>
  455. </RULES>
  456. <RULES SET="VARIABLE" DEFAULT="KEYWORD2" ESCAPE="\">
  457. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  458. <BEGIN>{</BEGIN>
  459. <END>}</END>
  460. </SPAN>
  461. <SEQ TYPE="OPERATOR">-&gt;</SEQ>
  462. </RULES>
  463. <RULES SET="REGEXP" DEFAULT="LITERAL2" ESCAPE="\">
  464. <!-- Variables -->
  465. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  466. <BEGIN>${</BEGIN>
  467. <END>}</END>
  468. </SPAN>
  469. <MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
  470. <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
  471. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  472. <BEGIN>@{</BEGIN>
  473. <END>}</END>
  474. </SPAN>
  475. <MARK_FOLLOWING TYPE="KEYWORD2">@</MARK_FOLLOWING>
  476. <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
  477. <BEGIN>%{</BEGIN>
  478. <END>}</END>
  479. </SPAN>
  480. <MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>
  481. </RULES>
  482. </MODE>