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