267 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			XML
		
	
	
			
		
		
	
	
			267 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			XML
		
	
	
<?xml version="1.0"?>
 | 
						|
<!DOCTYPE MODE SYSTEM "xmode.dtd">
 | 
						|
<MODE>
 | 
						|
	<!--
 | 
						|
		Made by Krassimir Berov: k.berov@gmail.com 
 | 
						|
	-->
 | 
						|
	<PROPS>
 | 
						|
		<PROPERTY NAME="commentStart" VALUE="<!--" />
 | 
						|
		<PROPERTY NAME="commentEnd" VALUE="-->" />
 | 
						|
		<PROPERTY NAME="lineComment" VALUE="#" />
 | 
						|
		<PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />
 | 
						|
 | 
						|
		<!-- Auto indent -->
 | 
						|
		<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
 | 
						|
		<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
 | 
						|
		<PROPERTY NAME="indentOpenBrackets" VALUE="[" />
 | 
						|
		<PROPERTY NAME="indentCloseBrackets" VALUE="]" />
 | 
						|
		<PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
 | 
						|
		<PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
 | 
						|
		<PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
 | 
						|
		<PROPERTY NAME="indentNextLine" VALUE="(FOREACH|FOR|WHILE|IF|ELSIF|ELSE|UNLESS|SWITCH|CASE|TRY|CATCH)(\s.*?)?;" />
 | 
						|
	</PROPS>
 | 
						|
 | 
						|
	<!-- ESCAPE is not exactly right but it is needed to correctly
 | 
						|
	     handle JavaScript in on* parameters -->
 | 
						|
	<RULES SET="TAGS" DEFAULT="MARKUP" ESCAPE="\">
 | 
						|
		<SPAN TYPE="LITERAL1">
 | 
						|
			<BEGIN>"</BEGIN>
 | 
						|
			<END>"</END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<SPAN TYPE="LITERAL1">
 | 
						|
			<BEGIN>'</BEGIN>
 | 
						|
			<END>'</END>
 | 
						|
		</SPAN>
 | 
						|
		<SEQ TYPE="OPERATOR">=</SEQ><!-- give priority to TT -->
 | 
						|
 | 
						|
	</RULES>
 | 
						|
 | 
						|
	<RULES SET="JAVASCRIPT" DEFAULT="MARKUP" IGNORE_CASE="TRUE">
 | 
						|
		<SEQ TYPE="MARKUP" DELEGATE="javascript::MAIN">></SEQ>
 | 
						|
		<!-- handle <SCRIPT SRC="..."> properly -->
 | 
						|
		<SEQ TYPE="MARKUP" DELEGATE="html::MAIN">SRC=</SEQ>
 | 
						|
	</RULES>
 | 
						|
 | 
						|
	<RULES SET="CSS" DEFAULT="MARKUP">
 | 
						|
		<SEQ TYPE="MARKUP" DELEGATE="css::MAIN">></SEQ>
 | 
						|
	</RULES>
 | 
						|
	<RULES IGNORE_CASE="TRUE">
 | 
						|
		<!-- SGML comment -->
 | 
						|
		<SPAN TYPE="COMMENT1">
 | 
						|
			<BEGIN><!--</BEGIN>
 | 
						|
			<END>--></END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<!-- JavaScript -->
 | 
						|
		<SPAN TYPE="MARKUP" DELEGATE="JAVASCRIPT">
 | 
						|
			<BEGIN><SCRIPT</BEGIN>
 | 
						|
			<END></SCRIPT></END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<!-- stylesheet -->
 | 
						|
		<SPAN TYPE="MARKUP" DELEGATE="CSS">
 | 
						|
			<BEGIN><STYLE</BEGIN>
 | 
						|
			<END></STYLE></END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<!-- DTD instructions -->
 | 
						|
		<SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">
 | 
						|
			<BEGIN><!</BEGIN>
 | 
						|
			<END>></END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<!-- markup tags -->
 | 
						|
		<SPAN TYPE="MARKUP" DELEGATE="TAGS">
 | 
						|
			<BEGIN><</BEGIN>
 | 
						|
			<END>></END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<!-- SGML entities -->
 | 
						|
		<SPAN TYPE="LITERAL2" NO_WORD_BREAK="TRUE">
 | 
						|
			<BEGIN>&</BEGIN>
 | 
						|
			<END>;</END>
 | 
						|
		</SPAN>
 | 
						|
		<SPAN TYPE="COMMENT2">
 | 
						|
			<BEGIN>[%#</BEGIN>
 | 
						|
			<END>%]</END>
 | 
						|
		</SPAN>
 | 
						|
		<SPAN_REGEXP DELEGATE="perl::MAIN" HASH_CHAR="[%">
 | 
						|
			<BEGIN>\[%\s*?PERL\s*?%\]</BEGIN>
 | 
						|
			<END>\[%\s*?END\s*?%\]</END>
 | 
						|
		</SPAN_REGEXP>
 | 
						|
 | 
						|
		<SPAN TYPE="LITERAL3" DELEGATE="TT">
 | 
						|
			<BEGIN>[%</BEGIN>
 | 
						|
			<END>%]</END>
 | 
						|
		</SPAN>
 | 
						|
	</RULES>
 | 
						|
	<RULES SET="TT"
 | 
						|
			IGNORE_CASE="FALSE"
 | 
						|
			HIGHLIGHT_DIGITS="TRUE"
 | 
						|
			DIGIT_RE="(0x[\p{XDigit}]+[lL]?|[\p{Digit}]+(e[\p{Digit}]*)?[lLdDfF]?)">
 | 
						|
 | 
						|
		<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
 | 
						|
			<BEGIN>${</BEGIN>
 | 
						|
			<END>}</END>
 | 
						|
		</SPAN>
 | 
						|
		<!-- Scalar variables -->
 | 
						|
		<SEQ_REGEXP HASH_CHAR="$" TYPE="KEYWORD2">\$#?[\w:]+</SEQ_REGEXP>
 | 
						|
		<!-- Scalar variables
 | 
						|
		<SEQ_REGEXP ->ADD HASH_CHARS here if uncommenting<- TYPE="KEYWORD2">\s[a-z_0-9]+\s</SEQ_REGEXP> -->
 | 
						|
		<!-- Compound Variables -->
 | 
						|
		<MARK_PREVIOUS TYPE="KEYWORD4" MATCH_TYPE="CONTEXT">.</MARK_PREVIOUS>
 | 
						|
		<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="CONTEXT">(</MARK_PREVIOUS>
 | 
						|
		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
 | 
						|
			<BEGIN>"</BEGIN>
 | 
						|
			<END>"</END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
 | 
						|
			<BEGIN>'</BEGIN>
 | 
						|
			<END>'</END>
 | 
						|
		</SPAN>
 | 
						|
 | 
						|
		<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="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="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>
 | 
						|
		<KEYWORDS>
 | 
						|
			<!-- Template directives -->
 | 
						|
			<KEYWORD1>SET</KEYWORD1>
 | 
						|
			<KEYWORD1>GET</KEYWORD1>
 | 
						|
			<KEYWORD1>CALL</KEYWORD1>
 | 
						|
			<KEYWORD1>DEFAULT</KEYWORD1>
 | 
						|
			<KEYWORD1>IF</KEYWORD1>
 | 
						|
			<KEYWORD1>ELSIF</KEYWORD1>
 | 
						|
			<KEYWORD1>ELSE</KEYWORD1>
 | 
						|
			<KEYWORD1>UNLESS</KEYWORD1>
 | 
						|
			<KEYWORD1>LAST</KEYWORD1>
 | 
						|
			<KEYWORD1>NEXT</KEYWORD1>
 | 
						|
			<KEYWORD1>FOR</KEYWORD1>
 | 
						|
			<KEYWORD1>FOREACH</KEYWORD1>
 | 
						|
			<KEYWORD1>WHILE</KEYWORD1>
 | 
						|
			<KEYWORD1>SWITCH</KEYWORD1>
 | 
						|
			<KEYWORD1>CASE</KEYWORD1>
 | 
						|
			<KEYWORD1>PROCESS</KEYWORD1>
 | 
						|
			<KEYWORD1>INCLUDE</KEYWORD1>
 | 
						|
			<KEYWORD1>INSERT</KEYWORD1>
 | 
						|
			<KEYWORD1>WRAPPER</KEYWORD1>
 | 
						|
			<KEYWORD1>BLOCK</KEYWORD1>
 | 
						|
			<KEYWORD1>MACRO</KEYWORD1>
 | 
						|
			<KEYWORD1>END</KEYWORD1>
 | 
						|
			<KEYWORD1>USE</KEYWORD1>
 | 
						|
			<KEYWORD1>IN</KEYWORD1>
 | 
						|
			<KEYWORD1>FILTER</KEYWORD1>
 | 
						|
			<KEYWORD1>TRY</KEYWORD1>
 | 
						|
			<KEYWORD1>THROW</KEYWORD1>
 | 
						|
			<KEYWORD1>CATCH</KEYWORD1>
 | 
						|
			<KEYWORD1>FINAL</KEYWORD1>
 | 
						|
			<KEYWORD1>META</KEYWORD1>
 | 
						|
			<KEYWORD1>TAGS</KEYWORD1>
 | 
						|
			<KEYWORD1>DEBUG</KEYWORD1>
 | 
						|
			<KEYWORD1>PERL</KEYWORD1>
 | 
						|
			<!-- Compile Time Constant Folding -->
 | 
						|
			<KEYWORD1>constants</KEYWORD1>
 | 
						|
			<!-- Special Variables -->
 | 
						|
			<KEYWORD2>template</KEYWORD2>
 | 
						|
			<KEYWORD2>component</KEYWORD2>
 | 
						|
			<KEYWORD2>loop</KEYWORD2>
 | 
						|
			<KEYWORD2>error</KEYWORD2>
 | 
						|
			<KEYWORD2>content</KEYWORD2>
 | 
						|
 | 
						|
			<!-- VMethods -->
 | 
						|
			<!-- Scalar Virtual Methods -->
 | 
						|
			<KEYWORD3>defined</KEYWORD3>
 | 
						|
			<KEYWORD3>length</KEYWORD3>
 | 
						|
			<KEYWORD3>repeat</KEYWORD3>
 | 
						|
			<KEYWORD3>replace</KEYWORD3>
 | 
						|
			<KEYWORD3>match</KEYWORD3>
 | 
						|
			<KEYWORD3>search</KEYWORD3>
 | 
						|
			<KEYWORD3>split</KEYWORD3>
 | 
						|
			<KEYWORD3>chunk</KEYWORD3>
 | 
						|
			<KEYWORD3>list</KEYWORD3>
 | 
						|
			<KEYWORD3>hash</KEYWORD3>
 | 
						|
			<KEYWORD3>size</KEYWORD3>
 | 
						|
 | 
						|
			<!-- Hash Virtual Methods -->
 | 
						|
			<KEYWORD3>keys</KEYWORD3>
 | 
						|
			<KEYWORD3>values</KEYWORD3>
 | 
						|
			<KEYWORD3>each</KEYWORD3>
 | 
						|
			<KEYWORD3>sort</KEYWORD3>
 | 
						|
			<KEYWORD3>nsort</KEYWORD3>
 | 
						|
			<KEYWORD3>import</KEYWORD3>
 | 
						|
			<KEYWORD3>defined</KEYWORD3>
 | 
						|
			<KEYWORD3>exists</KEYWORD3>
 | 
						|
			<KEYWORD3>item</KEYWORD3>
 | 
						|
 | 
						|
			<!-- List Virtual Methods -->
 | 
						|
			<KEYWORD3>first</KEYWORD3>
 | 
						|
			<KEYWORD3>last</KEYWORD3>
 | 
						|
			<KEYWORD3>max</KEYWORD3>
 | 
						|
			<KEYWORD3>reverse</KEYWORD3>
 | 
						|
			<KEYWORD3>join</KEYWORD3>
 | 
						|
			<KEYWORD3>grep</KEYWORD3>
 | 
						|
			<KEYWORD3>unshift</KEYWORD3>
 | 
						|
			<KEYWORD3>push</KEYWORD3>
 | 
						|
			<KEYWORD3>shift</KEYWORD3>
 | 
						|
			<KEYWORD3>pop</KEYWORD3>
 | 
						|
			<KEYWORD3>unique</KEYWORD3>
 | 
						|
			<KEYWORD3>merge</KEYWORD3>
 | 
						|
			<KEYWORD3>slice</KEYWORD3>
 | 
						|
			<KEYWORD3>splice</KEYWORD3>
 | 
						|
			<KEYWORD3>count</KEYWORD3>
 | 
						|
 | 
						|
			<!-- Standard filters -->
 | 
						|
			<FUNCTION>format</FUNCTION>
 | 
						|
			<FUNCTION>upper</FUNCTION>
 | 
						|
			<FUNCTION>lower</FUNCTION>
 | 
						|
			<FUNCTION>ucfirst</FUNCTION>
 | 
						|
			<FUNCTION>lcfirst</FUNCTION>
 | 
						|
			<FUNCTION>trim</FUNCTION>
 | 
						|
			<FUNCTION>collapse</FUNCTION>
 | 
						|
			<FUNCTION>html</FUNCTION>
 | 
						|
			<FUNCTION>html_entity</FUNCTION>
 | 
						|
			<FUNCTION>html_para</FUNCTION>
 | 
						|
			<FUNCTION>html_break</FUNCTION>
 | 
						|
			<FUNCTION>html_para_break</FUNCTION>
 | 
						|
			<FUNCTION>html_line_break</FUNCTION>
 | 
						|
			<FUNCTION>uri</FUNCTION>
 | 
						|
			<FUNCTION>url</FUNCTION>
 | 
						|
			<FUNCTION>indent</FUNCTION>
 | 
						|
			<FUNCTION>truncate</FUNCTION>
 | 
						|
			<FUNCTION>repeat</FUNCTION>
 | 
						|
			<FUNCTION>remove</FUNCTION>
 | 
						|
			<FUNCTION>replace</FUNCTION>
 | 
						|
			<FUNCTION>redirect</FUNCTION>
 | 
						|
			<FUNCTION>eval</FUNCTION>
 | 
						|
			<FUNCTION>evaltt</FUNCTION>
 | 
						|
			<FUNCTION>perl</FUNCTION>
 | 
						|
			<FUNCTION>evalperl</FUNCTION>
 | 
						|
			<FUNCTION>stdout</FUNCTION>
 | 
						|
			<FUNCTION>stderr</FUNCTION>
 | 
						|
			<FUNCTION>null</FUNCTION>
 | 
						|
			<FUNCTION>latex</FUNCTION>
 | 
						|
		</KEYWORDS>
 | 
						|
	</RULES>
 | 
						|
</MODE>
 |