PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-2-pre14/modes/perl.xml

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