274 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			XML
		
	
	
		
		
			
		
	
	
			274 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			XML
		
	
	
|  | <?xml version="1.0"?> | ||
|  | 
 | ||
|  | <!DOCTYPE MODE SYSTEM "xmode.dtd"> | ||
|  | 
 | ||
|  | <MODE> | ||
|  | 	<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="unalignedOpenBrackets" VALUE="(" /> | ||
|  | 		<PROPERTY NAME="unalignedCloseBrackets" VALUE=")" /> | ||
|  | 		<PROPERTY NAME="indentNextLine" | ||
|  | 			VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" /> | ||
|  | 		<PROPERTY NAME="unindentThisLine" | ||
|  | 			VALUE="^.*(default:\s*|case.*:.*)$" /> | ||
|  | 		<PROPERTY NAME="electricKeys" VALUE=":" /> | ||
|  | 	</PROPS> | ||
|  | 	<RULES ESCAPE="\" | ||
|  | 		IGNORE_CASE="FALSE" | ||
|  | 		HIGHLIGHT_DIGITS="TRUE" | ||
|  | 		DIGIT_RE="(0[lL]?|[1-9]\d{0,9}(\d{0,9}[lL])?|0[xX]\p{XDigit}{1,8}(\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))"> | ||
|  | 
 | ||
|  | 		<!-- Silly comment --> | ||
|  | 		<SEQ TYPE="COMMENT1">/**/</SEQ> | ||
|  | 
 | ||
|  | 		<!-- Javadoc comment --> | ||
|  | 		<SPAN TYPE="COMMENT3" DELEGATE="JAVADOC"> | ||
|  | 			<BEGIN>/**</BEGIN> | ||
|  | 			<END>*/</END> | ||
|  | 		</SPAN> | ||
|  | 
 | ||
|  | 		<!-- Java comment (C style) --> | ||
|  | 		<SPAN TYPE="COMMENT1"> | ||
|  | 			<BEGIN>/*</BEGIN> | ||
|  | 			<END>*/</END> | ||
|  | 		</SPAN> | ||
|  | 
 | ||
|  | 		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"> | ||
|  | 			<BEGIN>"</BEGIN> | ||
|  | 			<END>"</END> | ||
|  | 		</SPAN> | ||
|  | 		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"> | ||
|  | 			<BEGIN>'</BEGIN> | ||
|  | 			<END>'</END> | ||
|  | 		</SPAN> | ||
|  | 
 | ||
|  | 		<EOL_SPAN TYPE="COMMENT2">//</EOL_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> | ||
|  | 
 | ||
|  | 		<!-- workaround to stop "*" from being colorized
 | ||
|  | 		     in import statements. --> | ||
|  | 		<SEQ TYPE="NULL">.*</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> | ||
|  | 		<MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR" | ||
|  | 			AT_WHITESPACE_END="TRUE">:</MARK_PREVIOUS> | ||
|  | 
 | ||
|  | 		<!-- Function calls --> | ||
|  | 		<MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS> | ||
|  | 		<SEQ TYPE="OPERATOR">)</SEQ> | ||
|  | 
 | ||
|  | 		<!-- Annotation types --> | ||
|  | 		<MARK_FOLLOWING TYPE="KEYWORD4">@</MARK_FOLLOWING> | ||
|  | 
 | ||
|  | 		<KEYWORDS> | ||
|  | 			<KEYWORD1>abstract</KEYWORD1> | ||
|  | 			<KEYWORD1>break</KEYWORD1> | ||
|  | 			<KEYWORD1>case</KEYWORD1> | ||
|  | 			<KEYWORD1>catch</KEYWORD1> | ||
|  | 			<KEYWORD1>continue</KEYWORD1> | ||
|  | 			<KEYWORD1>default</KEYWORD1> | ||
|  | 			<KEYWORD1>do</KEYWORD1> | ||
|  | 			<KEYWORD1>else</KEYWORD1> | ||
|  | 			<KEYWORD1>extends</KEYWORD1> | ||
|  | 			<KEYWORD1>final</KEYWORD1> | ||
|  | 			<KEYWORD1>finally</KEYWORD1> | ||
|  | 			<KEYWORD1>for</KEYWORD1> | ||
|  | 			<KEYWORD1>if</KEYWORD1> | ||
|  | 			<KEYWORD1>implements</KEYWORD1> | ||
|  | 			<KEYWORD1>instanceof</KEYWORD1> | ||
|  | 			<KEYWORD1>native</KEYWORD1> | ||
|  | 			<KEYWORD1>new</KEYWORD1> | ||
|  | 			<KEYWORD1>private</KEYWORD1> | ||
|  | 			<KEYWORD1>protected</KEYWORD1> | ||
|  | 			<KEYWORD1>public</KEYWORD1> | ||
|  | 			<KEYWORD1>return</KEYWORD1> | ||
|  | 			<KEYWORD1>static</KEYWORD1> | ||
|  | 			<KEYWORD1>switch</KEYWORD1> | ||
|  | 			<KEYWORD1>synchronized</KEYWORD1> | ||
|  | 			<KEYWORD1>throw</KEYWORD1> | ||
|  | 			<KEYWORD1>throws</KEYWORD1> | ||
|  | 			<KEYWORD1>transient</KEYWORD1> | ||
|  | 			<KEYWORD1>try</KEYWORD1> | ||
|  | 			<KEYWORD1>volatile</KEYWORD1> | ||
|  | 			<KEYWORD1>while</KEYWORD1> | ||
|  | 
 | ||
|  | 			<KEYWORD2>package</KEYWORD2> | ||
|  | 			<KEYWORD2>import</KEYWORD2> | ||
|  | 
 | ||
|  | 			<KEYWORD3>boolean</KEYWORD3> | ||
|  | 			<KEYWORD3>byte</KEYWORD3> | ||
|  | 			<KEYWORD3>char</KEYWORD3> | ||
|  | 			<KEYWORD3>class</KEYWORD3> | ||
|  | 			<KEYWORD3>double</KEYWORD3> | ||
|  | 			<KEYWORD3>float</KEYWORD3> | ||
|  | 			<KEYWORD3>int</KEYWORD3> | ||
|  | 			<KEYWORD3>interface</KEYWORD3> | ||
|  | 			<KEYWORD3>long</KEYWORD3> | ||
|  | 			<KEYWORD3>short</KEYWORD3> | ||
|  | 			<KEYWORD3>void</KEYWORD3> | ||
|  | 
 | ||
|  | 			<FUNCTION>assert</FUNCTION> | ||
|  | 			<KEYWORD1>strictfp</KEYWORD1> | ||
|  | 
 | ||
|  | 
 | ||
|  | 			<LITERAL2>false</LITERAL2> | ||
|  | 			<LITERAL2>null</LITERAL2> | ||
|  | 			<LITERAL2>super</LITERAL2> | ||
|  | 			<LITERAL2>this</LITERAL2> | ||
|  | 			<LITERAL2>true</LITERAL2> | ||
|  | 
 | ||
|  | 			<INVALID>goto</INVALID> | ||
|  | 			<INVALID>const</INVALID> | ||
|  | 
 | ||
|  | 			<!-- Java 1.5 --> | ||
|  | 			<KEYWORD3>enum</KEYWORD3> | ||
|  | 		</KEYWORDS> | ||
|  | 	</RULES> | ||
|  | 
 | ||
|  | 	<RULES SET="JAVADOC" DEFAULT="COMMENT3" IGNORE_CASE="TRUE"> | ||
|  | 
 | ||
|  | 		<!-- so that *@param is highlighted --> | ||
|  | 		<SEQ TYPE="COMMENT3">*</SEQ> | ||
|  | 
 | ||
|  | 		<!-- Javadoc ignores tags inside <pre> --> | ||
|  | 		<!-- XXX no it doesn't --> | ||
|  | 		<!-- SPAN TYPE="MARKUP" DELEGATE="JAVADOC_PRE">
 | ||
|  | 			<BEGIN><pre></BEGIN> | ||
|  | 			<END></pre></END> | ||
|  | 		</SPAN --> | ||
|  | 
 | ||
|  | 		<!-- HTML comments --> | ||
|  | 		<SPAN TYPE="COMMENT1"> | ||
|  | 			<BEGIN><!--</BEGIN> | ||
|  | 			<END>--></END> | ||
|  | 		</SPAN> | ||
|  | 
 | ||
|  | 		<!-- Javadoc allows this --> | ||
|  | 		<SEQ TYPE="COMMENT3"><<</SEQ> | ||
|  | 		<SEQ TYPE="COMMENT3"><=</SEQ> | ||
|  | 		<SEQ TYPE="COMMENT3">< </SEQ> | ||
|  | 
 | ||
|  | 		<!-- HTML tags --> | ||
|  | 		<SPAN TYPE="MARKUP" DELEGATE="xml::TAGS" | ||
|  | 			NO_LINE_BREAK="TRUE"> | ||
|  | 			<BEGIN><</BEGIN> | ||
|  | 			<END>></END> | ||
|  | 		</SPAN> | ||
|  | 
 | ||
|  | 		<!-- so that @link{...} is highlighted --> | ||
|  | 		<!-- XXX: this is wrong, {@link ..} is correct, see below --> | ||
|  | 		<!--<SEQ TYPE="COMMENT3">{</SEQ>--> | ||
|  | 
 | ||
|  | 		<SPAN_REGEXP TYPE="LABEL" HASH_CHAR="{@" NO_WORD_BREAK="FALSE" DELEGATE="JAVADOC_PARAM"> | ||
|  | 			<BEGIN>\{@(link|linkplain|docRoot|code|literal)\s</BEGIN> | ||
|  | 			<END>}</END> | ||
|  | 		</SPAN_REGEXP> | ||
|  | 
 | ||
|  | 		<!-- for the common usage of the cvs keyword $Id: java.xml 9228 2007-03-27 22:01:25Z ezust $ --> | ||
|  | 		<SPAN_REGEXP TYPE="LABEL" HASH_CHAR="@version" NO_WORD_BREAK="FALSE" DELEGATE="JAVADOC_PARAM"> | ||
|  | 			<BEGIN>@version\s+\$</BEGIN> | ||
|  | 			<END>$</END> | ||
|  | 		</SPAN_REGEXP> | ||
|  | 
 | ||
|  | 		<!-- This works only when you use the same whitespace before and after the param's name,
 | ||
|  | 			 eg. a tab before and after, but mixing space and tab won't work. | ||
|  | 			 The reason is that you can't enter a regexp in END, except for the backreference operator $n --> | ||
|  | 		<SPAN_REGEXP TYPE="LABEL" HASH_CHAR="@" NO_WORD_BREAK="FALSE" DELEGATE="JAVADOC_PARAM"> | ||
|  | 			<BEGIN>@(?:param|throws|exception|serialField)(\s)</BEGIN> | ||
|  | 			<END>$1</END> | ||
|  | 		</SPAN_REGEXP> | ||
|  | 
 | ||
|  | 		<KEYWORDS> | ||
|  | 		<!-- Note: the labels in comments are handled by SPANs above --> | ||
|  | 
 | ||
|  | 		<!-- Official javadoc tags:
 | ||
|  | 			 http://java.sun.com/j2se/1.5/docs/tooldocs/windows/javadoc.html#javadoctags --> | ||
|  | 			<LABEL>@author</LABEL> | ||
|  | 			<LABEL>@deprecated</LABEL> | ||
|  | 		<!--<LABEL>@docRoot</LABEL>--> | ||
|  | 		<!--<LABEL>@exception</LABEL>--> | ||
|  | 			<LABEL>{@inheritDoc}</LABEL> | ||
|  | 		<!--<LABEL>@link</LABEL>--> | ||
|  | 		<!--<LABEL>@linkplain</LABEL>--> | ||
|  | 		<!--<LABEL>@param</LABEL>--> | ||
|  | 			<LABEL>@return</LABEL> | ||
|  | 			<LABEL>@see</LABEL> | ||
|  | 			<LABEL>@serial</LABEL> | ||
|  | 			<LABEL>@serialData</LABEL> | ||
|  | 		<!--<LABEL>@serialField</LABEL>--> | ||
|  | 			<LABEL>@since</LABEL> | ||
|  | 		<!--<LABEL>@throws</LABEL>--> | ||
|  | 			<LABEL>{@value}</LABEL> | ||
|  | 			<LABEL>@version</LABEL> | ||
|  | 
 | ||
|  | 		<!-- new in 1.5 --> | ||
|  | 		<!--<LABEL>@code</LABEL>--> | ||
|  | 		<!--<LABEL>@literal</LABEL>--> | ||
|  | 
 | ||
|  | 		<!-- SUNs proposed tags:
 | ||
|  | 			 http://java.sun.com/j2se/javadoc/proposed-tags.html --> | ||
|  | 			<KEYWORD2>@category</KEYWORD2> | ||
|  | 			<KEYWORD2>@example</KEYWORD2> | ||
|  | 			<KEYWORD2>@exclude</KEYWORD2> | ||
|  | 			<KEYWORD2>@index</KEYWORD2> | ||
|  | 			<KEYWORD2>@internal</KEYWORD2> | ||
|  | 			<KEYWORD2>@obsolete</KEYWORD2> | ||
|  | 			<KEYWORD2>@threadsafety</KEYWORD2> | ||
|  | 			<KEYWORD2>@tutorial</KEYWORD2> | ||
|  | 			<KEYWORD2>@todo</KEYWORD2> | ||
|  | 
 | ||
|  | 		<!-- Custom tags --> | ||
|  | 			<KEYWORD4>@access</KEYWORD4> | ||
|  | 			<KEYWORD4>@beaninfo</KEYWORD4> | ||
|  | 			<KEYWORD4>@bon</KEYWORD4> | ||
|  | 			<KEYWORD4>@bug</KEYWORD4> | ||
|  | 			<KEYWORD4>@complexity</KEYWORD4> | ||
|  | 			<KEYWORD4>@design</KEYWORD4> | ||
|  | 			<KEYWORD4>@ensures</KEYWORD4> | ||
|  | 			<KEYWORD4>@equivalent</KEYWORD4> | ||
|  | 			<KEYWORD4>@generates</KEYWORD4> | ||
|  | 			<KEYWORD4>@guard</KEYWORD4> | ||
|  | 			<KEYWORD4>@hides</KEYWORD4> | ||
|  | 			<KEYWORD4>@history</KEYWORD4> | ||
|  | 			<KEYWORD4>@idea</KEYWORD4> | ||
|  | 			<KEYWORD4>@invariant</KEYWORD4> | ||
|  | 			<KEYWORD4>@modifies</KEYWORD4> | ||
|  | 			<KEYWORD4>@overrides</KEYWORD4> | ||
|  | 			<KEYWORD4>@post</KEYWORD4> | ||
|  | 			<KEYWORD4>@pre</KEYWORD4> | ||
|  | 			<KEYWORD4>@references</KEYWORD4> | ||
|  | 			<KEYWORD4>@requires</KEYWORD4> | ||
|  | 			<KEYWORD4>@review</KEYWORD4> | ||
|  | 			<KEYWORD4>@spec</KEYWORD4> | ||
|  | 			<KEYWORD4>@uses</KEYWORD4> | ||
|  | 			<KEYWORD4>@values</KEYWORD4> | ||
|  | 		</KEYWORDS> | ||
|  | 	</RULES> | ||
|  | 
 | ||
|  | 	<!-- just a dummy which makes use of the default token type COMMENT4 for highlighting the word after @param in javadoc --> | ||
|  | 	<RULES SET="JAVADOC_PARAM" DEFAULT="COMMENT4" IGNORE_CASE="TRUE" /> | ||
|  | </MODE> |