PageRenderTime 30ms CodeModel.GetById 1ms RepoModel.GetById 1ms app.codeStats 0ms

/jEdit/tags/jedit-4-0-pre5/modes/perl.xml

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