<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!--
	Interchange (IC) mode by Chris Jesseman (chris@sitemajic.net)
	Works on IC 4.6.x, should be backwards compatible with Minivend 4.04x
	This is a work in progress!
	
	Interchange tags in jEdit:
	
	Non Container Tags: KEYWORD1
	Modifiers: KEYWORD2
	Control Structures & Container Tags: KEYWORD3
-->

<MODE NAME="interchange">
	<PROPS>
		<PROPERTY NAME="commentStart" VALUE="&lt;!--" />
		<PROPERTY NAME="commentEnd" VALUE="--&gt;" />
		<PROPERTY NAME="filenameGlob" VALUE="*.html" />
		<PROPERTY NAME="noWordSep" VALUE="-_" />
		<PROPERTY NAME="tabSize" VALUE="4" />
	</PROPS>
	<RULES IGNORE_CASE="FALSE">
		<!-- whitespace: (space and tab) -->
		<WHITESPACE> </WHITESPACE>
		<WHITESPACE>	</WHITESPACE>

		<SPAN TYPE="COMMENT2">
			<BEGIN>[comment]</BEGIN>
			<END>[/comment]</END>
		</SPAN>
		
		<SPAN TYPE="COMMENT1">
			<BEGIN>&lt;!--</BEGIN>
			<END>--&gt;</END>
		</SPAN>
		
		<!-- embedded PERL -->
		<SPAN TYPE="MARKUP" DELEGATE="PERL">
			<BEGIN>[perl</BEGIN>
			<END>[/perl]</END>
		</SPAN>
		<SPAN TYPE="MARKUP" DELEGATE="PERL">
			<BEGIN>[calc]</BEGIN>
			<END>[/calc]</END>
		</SPAN>
		<!-- backtick -> PERL -->
		<SPAN TYPE="MARKUP" DELEGATE="perl::MAIN">
			<BEGIN>`</BEGIN>
			<END>`</END>
		</SPAN>
		<!-- Interchange constructs -->
		
		<SPAN TYPE="KEYWORD1" DELEGATE="SQUARE_BRACKETS" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
			<BEGIN>[</BEGIN>
			<END>]</END>
		</SPAN>

		<SPAN TYPE="LITERAL2">
			<BEGIN>@_</BEGIN>
			<END>_@</END>
		</SPAN>
		<SPAN TYPE="LITERAL2">
			<BEGIN>@@</BEGIN>
			<END>@@</END>
		</SPAN>
		<SPAN TYPE="LITERAL2">
			<BEGIN>__</BEGIN>
			<END>__</END>
		</SPAN>
		
		<!-- HTML markup tags -->
		<SPAN TYPE="MARKUP" DELEGATE="TAGS">
			<BEGIN>&lt;</BEGIN>
			<END>&gt;</END>
		</SPAN>
		
		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
	</RULES>
	
	<RULES SET="TAGS" DEFAULT="MARKUP">
		<!-- whitespace: (space and tab) -->
		<WHITESPACE> </WHITESPACE>
		<WHITESPACE>	</WHITESPACE>

		<SPAN TYPE="KEYWORD1" DELEGATE="SQUARE_BRACKETS" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
			<BEGIN>[</BEGIN>
			<END>]</END>
		</SPAN>
		
		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
	</RULES>
	
	<RULES SET="QUOTES" DEFAULT="LITERAL2">
		<!-- whitespace: (space and tab) -->
		<WHITESPACE> </WHITESPACE>
		<WHITESPACE>	</WHITESPACE>

		<SPAN TYPE="KEYWORD1" DELEGATE="SQUARE_BRACKETS" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
			<BEGIN>[</BEGIN>
			<END>]</END>
		</SPAN>
		
	</RULES>
	
	<RULES SET="SQUARE_BRACKETS" DEFAULT="LITERAL1">
		<!-- whitespace: (space and tab) -->
		<WHITESPACE> </WHITESPACE>
		<WHITESPACE>	</WHITESPACE>

		<SPAN DELEGATE="QUOTES" NO_LINE_BREAK="FALSE">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>

		<SPAN DELEGATE="QUOTES" NO_LINE_BREAK="FALSE">
			<BEGIN>'</BEGIN>
			<END>'</END>
		</SPAN>
		
		<SPAN TYPE="KEYWORD1" DELEGATE="SQUARE_BRACKETS" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
			<BEGIN>[</BEGIN>
			<END>]</END>
		</SPAN>

		<MARK_FOLLOWING TYPE="KEYWORD2">#</MARK_FOLLOWING>
		
		<KEYWORDS>
			<!-- Non Container Tags --> 
			<KEYWORD1>accessories</KEYWORD1>
			<KEYWORD1>area</KEYWORD1>
			<KEYWORD1>banner</KEYWORD1>
			<KEYWORD1>bounce</KEYWORD1>
			<KEYWORD1>cart</KEYWORD1>
			<KEYWORD1>cgi</KEYWORD1>
			<KEYWORD1>checked</KEYWORD1>
			<KEYWORD1>counter</KEYWORD1>
			<KEYWORD1>data</KEYWORD1>
			<KEYWORD1>default</KEYWORD1>
			<KEYWORD1>description</KEYWORD1>
			<KEYWORD1>discount-price</KEYWORD1>
			<KEYWORD1>dump</KEYWORD1>
			<KEYWORD1>ecml</KEYWORD1>
			<KEYWORD1>error</KEYWORD1>
			<KEYWORD1>explicit</KEYWORD1>
			<KEYWORD1>field</KEYWORD1>
			<KEYWORD1>file</KEYWORD1>
			<KEYWORD1>flag</KEYWORD1>
			<KEYWORD1>goto</KEYWORD1>
			<KEYWORD1>html_table</KEYWORD1>
			<KEYWORD1>import</KEYWORD1>
			<KEYWORD1>include</KEYWORD1>
			<KEYWORD1>index</KEYWORD1>
			<KEYWORD1>input_filter</KEYWORD1>
			<KEYWORD1>item</KEYWORD1>
			<KEYWORD1>label</KEYWORD1>
			<KEYWORD1>matches</KEYWORD1>
			<KEYWORD1>more</KEYWORD1>
			<KEYWORD1>order</KEYWORD1>
			<KEYWORD1>page</KEYWORD1>
			<KEYWORD1>price</KEYWORD1>
			<KEYWORD1>process</KEYWORD1>
			<KEYWORD1>quanity</KEYWORD1>
			<KEYWORD1>read_cookie</KEYWORD1>
			<KEYWORD1>record</KEYWORD1>
			<KEYWORD1>salestax</KEYWORD1>
			<KEYWORD1>scratch</KEYWORD1>
			<KEYWORD1>selected</KEYWORD1>
			<KEYWORD1>set_cookie</KEYWORD1>
			<KEYWORD1>setlocale</KEYWORD1>
			<KEYWORD1>shipping</KEYWORD1>
			<KEYWORD1>shipping-desc</KEYWORD1>
			<KEYWORD1>subtotal</KEYWORD1>
			<KEYWORD1>timed-build</KEYWORD1>
			<KEYWORD1>total-cost</KEYWORD1>
			<KEYWORD1>update</KEYWORD1>
			<KEYWORD1>userdb</KEYWORD1>
			<KEYWORD1>value_extended</KEYWORD1>
			<KEYWORD1>value</KEYWORD1>
			
			<!-- Modifiers -->
			<KEYWORD2>alternate</KEYWORD2>
			<KEYWORD2>change</KEYWORD2>
			<KEYWORD2>code</KEYWORD2>
			<KEYWORD2>color</KEYWORD2>
			<KEYWORD2>compare</KEYWORD2>
			<KEYWORD2>condition</KEYWORD2>
			<KEYWORD2>config</KEYWORD2>
			<KEYWORD2>data</KEYWORD2>
			<KEYWORD2>description</KEYWORD2>
			<KEYWORD2>discount</KEYWORD2>
			<KEYWORD2>field</KEYWORD2>
			<KEYWORD2>increment</KEYWORD2>
			<KEYWORD2>last</KEYWORD2>
			<KEYWORD2>list</KEYWORD2>
			<KEYWORD2>image</KEYWORD2>
			<KEYWORD2>name=</KEYWORD2>
			<KEYWORD2>next</KEYWORD2>
			<KEYWORD2>param</KEYWORD2>
			<KEYWORD2>pos</KEYWORD2>
			<KEYWORD2>pos</KEYWORD2>
			<KEYWORD2>price</KEYWORD2>
			<KEYWORD2>session</KEYWORD2>
			<KEYWORD2>size</KEYWORD2>
			<KEYWORD2>subtotal</KEYWORD2>
			<KEYWORD2>term</KEYWORD2>
			<KEYWORD2>type</KEYWORD2>
			<KEYWORD2>validcc</KEYWORD2>
			
			<!-- Control Structures & Container Tags -->
			<KEYWORD3>calc</KEYWORD3>
			<KEYWORD3>else</KEYWORD3>
			<KEYWORD3>elsif</KEYWORD3>
			<KEYWORD3>if</KEYWORD3>
			<KEYWORD3>if-item-data</KEYWORD3>
			<KEYWORD3>if-item-field</KEYWORD3>
			<KEYWORD3>col</KEYWORD3>
			<KEYWORD3>currency</KEYWORD3>
			<KEYWORD3>discount</KEYWORD3>
			<KEYWORD3>fly-list</KEYWORD3>
			<KEYWORD3>modifier</KEYWORD3>
			<KEYWORD3>more-list</KEYWORD3>
			<KEYWORD3>mvasp</KEYWORD3>
			<KEYWORD3>query</KEYWORD3>
			<KEYWORD3>row</KEYWORD3>			
			<KEYWORD3>scratchd</KEYWORD3>
			<KEYWORD3>search-region</KEYWORD3>
			<KEYWORD3>set</KEYWORD3>
			<KEYWORD3>seti</KEYWORD3>
			<KEYWORD3>tag</KEYWORD3>
			<KEYWORD3>then</KEYWORD3>
			<KEYWORD3>tmp</KEYWORD3>

			<!-- Unknown -->
			<KEYWORD3>items</KEYWORD3>			
			<KEYWORD3>ordered</KEYWORD3>
			
		</KEYWORDS>
			
		<SEQ TYPE="OPERATOR">!</SEQ>
		<SEQ TYPE="OPERATOR">&gt;</SEQ>
		<SEQ TYPE="OPERATOR">&lt;</SEQ>
		<SEQ TYPE="OPERATOR">/</SEQ>
		<SEQ TYPE="OPERATOR">=</SEQ>
		<SEQ TYPE="OPERATOR">+</SEQ>		
		
		<OPERATOR>==</OPERATOR>
		<OPERATOR>eq</OPERATOR>
		<OPERATOR>ne</OPERATOR>
		<OPERATOR>gt</OPERATOR>
		<OPERATOR>lt</OPERATOR>
		<OPERATOR>!=</OPERATOR>

		<MARK_FOLLOWING TYPE="LABEL">mv_</MARK_FOLLOWING>
	</RULES>
	
	<!-- PERL copied from standart perl.xml issued with jEdit -->
	<RULES SET="PERL" ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
		<!-- whitespace: (space and tab) -->
		<WHITESPACE> </WHITESPACE>
		<WHITESPACE>	</WHITESPACE>
		<!-- handle IC tags -->
		<SPAN TYPE="KEYWORD1" DELEGATE="SQUARE_BRACKETS" EXCLUDE_MATCH="FALSE" NO_LINE_BREAK="FALSE" NO_WORD_BREAK="FALSE">
			<BEGIN>[</BEGIN>
			<END>]</END>
		</SPAN>

		<!-- Comments -->
		<EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>

		<!-- TYPE is LABEL so that =head1 and =cut are highlighted as so -->
		<SPAN TYPE="LABEL" AT_LINE_START="TRUE" DELEGATE="POD">
			<BEGIN>=head1</BEGIN>
			<END>=cut</END>
		</SPAN>

		<!-- Variables -->
		<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="perl::VARIABLE">
			<BEGIN>${</BEGIN>
			<END>}</END>
		</SPAN>

		<MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
		<MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>

		<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="perl::VARIABLE">
			<BEGIN>@{</BEGIN>
			<END>}</END>
		</SPAN>

		<MARK_FOLLOWING TYPE="KEYWORD2">@</MARK_FOLLOWING>

		<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="perl::VARIABLE">
			<BEGIN>%{</BEGIN>
			<END>}</END>
		</SPAN>

		<MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>

		<!-- Literals -->
		<SPAN TYPE="LITERAL1" DELEGATE="perl::LITERAL">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>
		<SPAN TYPE="LITERAL1">
			<BEGIN>'</BEGIN>
			<END>'</END>
		</SPAN>

		<!-- Exec -->
		<SPAN TYPE="KEYWORD3" DELEGATE="perl::EXEC">
			<BEGIN>`</BEGIN>
			<END>`</END>
		</SPAN>
		
		<!-- Readins -->
		<SPAN TYPE="LITERAL1" DELEGATE="perl::LITERAL">
			<BEGIN>&lt;&lt;EOF</BEGIN>
			<END>EOF</END>
		</SPAN>

		<!-- Operators -->
		<SEQ TYPE="OPERATOR">|</SEQ>
		<SEQ TYPE="OPERATOR">&amp;</SEQ>
		<SEQ TYPE="OPERATOR">!</SEQ>
		<SEQ TYPE="OPERATOR">&gt;</SEQ>
		<SEQ TYPE="OPERATOR">&lt;</SEQ>
		<SEQ TYPE="NULL">)</SEQ>
		<SEQ TYPE="NULL">(</SEQ>
		<SEQ TYPE="OPERATOR">=</SEQ>
		<SEQ TYPE="OPERATOR">!</SEQ>
		<SEQ TYPE="OPERATOR">&gt;=</SEQ>
		<SEQ TYPE="OPERATOR">&lt;=</SEQ>
		<SEQ TYPE="OPERATOR">+</SEQ>
		<SEQ TYPE="OPERATOR">-</SEQ>
		<SEQ TYPE="OPERATOR">/</SEQ>
		<SEQ TYPE="OPERATOR">*</SEQ>
		<SEQ TYPE="OPERATOR">^</SEQ>
		<SEQ TYPE="OPERATOR">~</SEQ>
		<SEQ TYPE="OPERATOR">}</SEQ>
		<SEQ TYPE="OPERATOR">{</SEQ>
		<SEQ TYPE="NULL">.</SEQ>
		<SEQ TYPE="NULL">,</SEQ>
		<SEQ TYPE="NULL">;</SEQ>
		<SEQ TYPE="NULL">]</SEQ>
		<SEQ TYPE="NULL">[</SEQ>
		<SEQ TYPE="NULL">?</SEQ>
		<SEQ TYPE="NULL">:</SEQ>

		<!-- Keywords -->
		<KEYWORDS IGNORE_CASE="FALSE">
			<KEYWORD1>new</KEYWORD1>
			<KEYWORD1>if</KEYWORD1>
			<KEYWORD1>until</KEYWORD1>
			<KEYWORD1>while</KEYWORD1>
			<KEYWORD1>elsif</KEYWORD1>
			<KEYWORD1>else</KEYWORD1>
			<KEYWORD1>unless</KEYWORD1>
			<KEYWORD1>for</KEYWORD1>
			<KEYWORD1>foreach</KEYWORD1>
			<KEYWORD1>BEGIN</KEYWORD1>
			<KEYWORD1>END</KEYWORD1>

			<OPERATOR>cmp</OPERATOR>
			<OPERATOR>eq</OPERATOR>
			<OPERATOR>ne</OPERATOR>
			<OPERATOR>le</OPERATOR>
			<OPERATOR>ge</OPERATOR>
			<OPERATOR>not</OPERATOR>
			<OPERATOR>and</OPERATOR>
			<OPERATOR>or</OPERATOR>
			<OPERATOR>xor</OPERATOR>

			<!-- At least attempt to highlight 'x', although this misses some -->
			<OPERATOR>x</OPERATOR>

			<!--
				The following function list was derived from the perlfunc man
				page, Perl version 5.00503

				Certain keywords have been commented out where they appear more
				than once, and the y///, qx//, etc. functions have been removed,
				since they would not be colorized as keywords, but with separate
				rules.
			-->

			<!-- Functions for SCALARs or strings -->
			<KEYWORD3>chomp</KEYWORD3>
			<KEYWORD3>chop</KEYWORD3>
			<KEYWORD3>chr</KEYWORD3>
			<KEYWORD3>crypt</KEYWORD3>
			<KEYWORD3>hex</KEYWORD3>
			<KEYWORD3>index</KEYWORD3>
			<KEYWORD3>lc</KEYWORD3>
			<KEYWORD3>lcfirst</KEYWORD3>
			<KEYWORD3>length</KEYWORD3>
			<KEYWORD3>oct</KEYWORD3>
			<KEYWORD3>ord</KEYWORD3>
			<KEYWORD3>pack</KEYWORD3>
			<KEYWORD3>reverse</KEYWORD3>
			<KEYWORD3>rindex</KEYWORD3>
			<KEYWORD3>sprintf</KEYWORD3>
			<KEYWORD3>substr</KEYWORD3>
			<KEYWORD3>uc</KEYWORD3>
			<KEYWORD3>ucfirst</KEYWORD3>

			<!-- Regular expressions and pattern matching -->
			<KEYWORD3>pos</KEYWORD3>
			<KEYWORD3>quotemeta</KEYWORD3>
			<KEYWORD3>split</KEYWORD3>
			<KEYWORD3>study</KEYWORD3>

			<!-- Numeric functions -->
			<KEYWORD3>abs</KEYWORD3>
			<KEYWORD3>atan2</KEYWORD3>
			<KEYWORD3>cos</KEYWORD3>
			<KEYWORD3>exp</KEYWORD3>
			<!--<KEYWORD3>hex</KEYWORD3>-->
			<KEYWORD3>int</KEYWORD3>
			<KEYWORD3>log</KEYWORD3>
			<!--<KEYWORD3>oct</KEYWORD3>-->
			<KEYWORD3>rand</KEYWORD3>
			<KEYWORD3>sin</KEYWORD3>
			<KEYWORD3>sqrt</KEYWORD3>
			<KEYWORD3>srand</KEYWORD3>

			<!-- Functions for real @ARRAYs -->
			<KEYWORD3>pop</KEYWORD3>
			<KEYWORD3>push</KEYWORD3>
			<KEYWORD3>shift</KEYWORD3>
			<KEYWORD3>splice</KEYWORD3>
			<KEYWORD3>unshift</KEYWORD3>

			<!-- Functions for list data -->
			<KEYWORD3>grep</KEYWORD3>
			<KEYWORD3>join</KEYWORD3>
			<KEYWORD3>map</KEYWORD3>
			<!--<KEYWORD3>reverse</KEYWORD3>-->
			<KEYWORD3>sort</KEYWORD3>
			<KEYWORD3>unpack</KEYWORD3>

			<!-- Functions for real %HASHes -->
			<KEYWORD3>delete</KEYWORD3>
			<KEYWORD3>each</KEYWORD3>
			<KEYWORD3>exists</KEYWORD3>
			<KEYWORD3>keys</KEYWORD3>
			<KEYWORD3>values</KEYWORD3>

			<!-- Input and output functions -->
			<KEYWORD3>binmode</KEYWORD3>
			<KEYWORD3>close</KEYWORD3>
			<KEYWORD3>closedir</KEYWORD3>
			<KEYWORD3>dbmclose</KEYWORD3>
			<KEYWORD3>dbmopen</KEYWORD3>
			<!--<KEYWORD3>die</KEYWORD3>-->
			<KEYWORD3>eof</KEYWORD3>
			<KEYWORD3>fileno</KEYWORD3>
			<KEYWORD3>flock</KEYWORD3>
			<KEYWORD3>format</KEYWORD3>
			<KEYWORD3>getc</KEYWORD3>
			<KEYWORD3>print</KEYWORD3>
			<KEYWORD3>printf</KEYWORD3>
			<KEYWORD3>read</KEYWORD3>
			<KEYWORD3>readdir</KEYWORD3>
			<KEYWORD3>rewinddir</KEYWORD3>
			<KEYWORD3>seek</KEYWORD3>
			<KEYWORD3>seekdir</KEYWORD3>
			<KEYWORD3>select</KEYWORD3>
			<KEYWORD3>syscall</KEYWORD3>
			<KEYWORD3>sysread</KEYWORD3>
			<KEYWORD3>sysseek</KEYWORD3>
			<KEYWORD3>syswrite</KEYWORD3>
			<KEYWORD3>tell</KEYWORD3>
			<KEYWORD3>telldir</KEYWORD3>
			<KEYWORD3>truncate</KEYWORD3>
			<KEYWORD3>warn</KEYWORD3>
			<KEYWORD3>write</KEYWORD3>

			<!-- Functions for fixed length data or records -->
			<!--<KEYWORD3>pack</KEYWORD3>-->
			<!--<KEYWORD3>read</KEYWORD3>-->
			<!--<KEYWORD3>syscall</KEYWORD3>-->
			<!--<KEYWORD3>sysread</KEYWORD3>-->
			<!--<KEYWORD3>syswrite</KEYWORD3>-->
			<!--<KEYWORD3>unpack</KEYWORD3>-->
			<KEYWORD3>vec</KEYWORD3>

			<!-- Functions for filehandles, files, or directories -->
			<KEYWORD3>chdir</KEYWORD3>
			<KEYWORD3>chmod</KEYWORD3>
			<KEYWORD3>chown</KEYWORD3>
			<KEYWORD3>chroot</KEYWORD3>
			<KEYWORD3>fcntl</KEYWORD3>
			<KEYWORD3>glob</KEYWORD3>
			<KEYWORD3>ioctl</KEYWORD3>
			<KEYWORD3>link</KEYWORD3>
			<KEYWORD3>lstat</KEYWORD3>
			<KEYWORD3>mkdir</KEYWORD3>
			<KEYWORD3>open</KEYWORD3>
			<KEYWORD3>opendir</KEYWORD3>
			<KEYWORD3>readlink</KEYWORD3>
			<KEYWORD3>rename</KEYWORD3>
			<KEYWORD3>rmdir</KEYWORD3>
			<KEYWORD3>stat</KEYWORD3>
			<KEYWORD3>symlink</KEYWORD3>
			<KEYWORD3>umask</KEYWORD3>
			<KEYWORD3>unlink</KEYWORD3>
			<KEYWORD3>utime</KEYWORD3>

			<!-- Keywords related to the control flow of your perl program -->
			<KEYWORD1>caller</KEYWORD1>
			<KEYWORD1>continue</KEYWORD1>
			<KEYWORD1>die</KEYWORD1>
			<KEYWORD1>do</KEYWORD1>
			<KEYWORD1>dump</KEYWORD1>
			<KEYWORD1>eval</KEYWORD1>
			<KEYWORD1>exit</KEYWORD1>
			<KEYWORD1>goto</KEYWORD1>
			<KEYWORD1>last</KEYWORD1>
			<KEYWORD1>next</KEYWORD1>
			<KEYWORD1>redo</KEYWORD1>
			<KEYWORD1>return</KEYWORD1>
			<KEYWORD1>sub</KEYWORD1>
			<KEYWORD1>wantarray</KEYWORD1>

			<!-- Keywords related to scoping -->
			<!--<KEYWORD1>caller</KEYWORD1>-->
			<!--<KEYWORD1>import</KEYWORD1>-->
			<KEYWORD1>local</KEYWORD1>
			<KEYWORD1>my</KEYWORD1>
			<KEYWORD1>package</KEYWORD1>
			<KEYWORD1>use</KEYWORD1>

			<!-- Miscellaneous functions -->
			<KEYWORD3>defined</KEYWORD3>
			<!--<KEYWORD3>dump</KEYWORD3>-->
			<!--<KEYWORD3>eval</KEYWORD3>-->
			<KEYWORD3>formline</KEYWORD3>
			<!--<KEYWORD3>local</KEYWORD3>-->
			<!--<KEYWORD3>my</KEYWORD3>-->
			<KEYWORD3>reset</KEYWORD3>
			<KEYWORD3>scalar</KEYWORD3>
			<KEYWORD3>undef</KEYWORD3>
			<!--<KEYWORD3>wantarray</KEYWORD3>-->

			<!-- Functions for processes and process groups -->
			<KEYWORD3>alarm</KEYWORD3>
			<KEYWORD3>exec</KEYWORD3>
			<KEYWORD3>fork</KEYWORD3>
			<KEYWORD3>getpgrp</KEYWORD3>
			<KEYWORD3>getppid</KEYWORD3>
			<KEYWORD3>getpriority</KEYWORD3>
			<KEYWORD3>kill</KEYWORD3>
			<KEYWORD3>pipe</KEYWORD3>
			<KEYWORD3>setpgrp</KEYWORD3>
			<KEYWORD3>setpriority</KEYWORD3>
			<KEYWORD3>sleep</KEYWORD3>
			<KEYWORD3>system</KEYWORD3>
			<KEYWORD3>times</KEYWORD3>
			<KEYWORD3>wait</KEYWORD3>
			<KEYWORD3>waitpid</KEYWORD3>

			<!-- Keywords related to perl modules -->
			<!--<KEYWORD1>do</KEYWORD1>-->
			<KEYWORD1>import</KEYWORD1>
			<KEYWORD1>no</KEYWORD1>
			<!--<KEYWORD1>package</KEYWORD1>-->
			<KEYWORD1>require</KEYWORD1>
			<!--<KEYWORD1>use</KEYWORD1>-->

			<!-- Keywords related to classes and object-orientedness -->
			<KEYWORD3>bless</KEYWORD3>
			<!--<KEYWORD3>dbmclose</KEYWORD3>-->
			<!--<KEYWORD3>dbmopen</KEYWORD3>-->
			<!--<KEYWORD3>package</KEYWORD3>-->
			<KEYWORD3>ref</KEYWORD3>
			<KEYWORD3>tie</KEYWORD3>
			<KEYWORD3>tied</KEYWORD3>
			<KEYWORD3>untie</KEYWORD3>
			<!--<KEYWORD3>use</KEYWORD3>-->

			<!-- Low-level socket functions -->
			<KEYWORD3>accept</KEYWORD3>
			<KEYWORD3>bind</KEYWORD3>
			<KEYWORD3>connect</KEYWORD3>
			<KEYWORD3>getpeername</KEYWORD3>
			<KEYWORD3>getsockname</KEYWORD3>
			<KEYWORD3>getsockopt</KEYWORD3>
			<KEYWORD3>listen</KEYWORD3>
			<KEYWORD3>recv</KEYWORD3>
			<KEYWORD3>send</KEYWORD3>
			<KEYWORD3>setsockopt</KEYWORD3>
			<KEYWORD3>shutdown</KEYWORD3>
			<KEYWORD3>socket</KEYWORD3>
			<KEYWORD3>socketpair</KEYWORD3>

			<!-- System V interprocess communication functions -->
			<KEYWORD3>msgctl</KEYWORD3>
			<KEYWORD3>msgget</KEYWORD3>
			<KEYWORD3>msgrcv</KEYWORD3>
			<KEYWORD3>msgsnd</KEYWORD3>
			<KEYWORD3>semctl</KEYWORD3>
			<KEYWORD3>semget</KEYWORD3>

			<KEYWORD3>semop</KEYWORD3>
			<KEYWORD3>shmctl</KEYWORD3>
			<KEYWORD3>shmget</KEYWORD3>
			<KEYWORD3>shmread</KEYWORD3>
			<KEYWORD3>shmwrite</KEYWORD3>

			<!-- Fetching user and group info -->
			<KEYWORD3>endgrent</KEYWORD3>
			<KEYWORD3>endhostent</KEYWORD3>
			<KEYWORD3>endnetent</KEYWORD3>
			<KEYWORD3>endpwent</KEYWORD3>
			<KEYWORD3>getgrent</KEYWORD3>
			<KEYWORD3>getgrgid</KEYWORD3>
			<KEYWORD3>getgrnam</KEYWORD3>
			<KEYWORD3>getlogin</KEYWORD3>
			<KEYWORD3>getpwent</KEYWORD3>
			<KEYWORD3>getpwnam</KEYWORD3>
			<KEYWORD3>getpwuid</KEYWORD3>
			<KEYWORD3>setgrent</KEYWORD3>
			<KEYWORD3>setpwent</KEYWORD3>

			<!-- Fetching network info -->
			<KEYWORD3>endprotoent</KEYWORD3>
			<KEYWORD3>endservent</KEYWORD3>
			<KEYWORD3>gethostbyaddr</KEYWORD3>
			<KEYWORD3>gethostbyname</KEYWORD3>
			<KEYWORD3>gethostent</KEYWORD3>
			<KEYWORD3>getnetbyaddr</KEYWORD3>
			<KEYWORD3>getnetbyname</KEYWORD3>
			<KEYWORD3>getnetent</KEYWORD3>
			<KEYWORD3>getprotobyname</KEYWORD3>
			<KEYWORD3>getprotobynumber</KEYWORD3>
			<KEYWORD3>getprotoent</KEYWORD3>
			<KEYWORD3>getservbyname</KEYWORD3>
			<KEYWORD3>getservbyport</KEYWORD3>
			<KEYWORD3>getservent</KEYWORD3>
			<KEYWORD3>sethostent</KEYWORD3>
			<KEYWORD3>setnetent</KEYWORD3>
			<KEYWORD3>setprotoent</KEYWORD3>
			<KEYWORD3>setservent</KEYWORD3>

			<!-- Time-related functions -->
			<KEYWORD3>gmtime</KEYWORD3>
			<KEYWORD3>localtime</KEYWORD3>
			<KEYWORD3>time</KEYWORD3>
			<!--<KEYWORD3>times</KEYWORD3>-->
		</KEYWORDS>
	</RULES>
</MODE>

