<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<MODE>
	<PROPS>
		<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
		<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
		<PROPERTY NAME="indentPrevLine"
			VALUE="\s*(((if|while)\s*\(|else\s*(\{|$)|else\s+if\s*\(|case\s+.+:|default:)[^;]*|for\s*\(.*)" />
		<!-- set this to 'true' if you want to use GNU coding style -->
		<PROPERTY NAME="doubleBracketIndent" VALUE="false" />
		<PROPERTY NAME="commentStart" VALUE="/*" />
		<PROPERTY NAME="commentEnd" VALUE="*/" />
		<PROPERTY NAME="lineComment" VALUE="//" />
		<PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
	</PROPS>
	<RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
		<!-- whitespace: (space and tab) -->
		<WHITESPACE> </WHITESPACE>
		<WHITESPACE>	</WHITESPACE>

		<!-- C style comment -->
		<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>

		<!-- preprocessor statements -->
		<EOL_SPAN TYPE="KEYWORD2">#</EOL_SPAN>

		<EOL_SPAN TYPE="COMMENT1">//</EOL_SPAN>
		<SEQ TYPE="NULL">)</SEQ>
		<SEQ TYPE="OPERATOR">=</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">&gt;</SEQ>
		<SEQ TYPE="OPERATOR">&lt;</SEQ>
<!--		<SEQ TYPE="OPERATOR">%</SEQ>	-->
		<SEQ TYPE="OPERATOR">&amp;</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>
		<MARK_PREVIOUS TYPE="LABEL" EXCLUDE_MATCH="TRUE"
			AT_LINE_START="TRUE">:</MARK_PREVIOUS>
		<SEQ TYPE="NULL">:</SEQ>
		<SEQ TYPE="LITERAL1">?</SEQ>
		<SEQ TYPE="LITERAL1">:</SEQ>

		<!-- Function calls -->
		<MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>


		<!-- Variables -->
		<SEQ TYPE="KEYWORD2">$`</SEQ>
		<SEQ TYPE="KEYWORD2">$'</SEQ>
		<SEQ TYPE="KEYWORD2">$"</SEQ>
		<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
			<BEGIN>${</BEGIN>
			<END>}</END>
		</SPAN>
		<MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>

		<SEQ TYPE="KEYWORD2">%`</SEQ>
		<SEQ TYPE="KEYWORD2">%'</SEQ>
		<SEQ TYPE="KEYWORD2">%"</SEQ>
		<SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE" DELEGATE="VARIABLE">
			<BEGIN>%{</BEGIN>
			<END>}</END>
		</SPAN>
		<MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>


		<KEYWORDS IGNORE_CASE="TRUE">
			<KEYWORD1>echo</KEYWORD1>
			<KEYWORD1>break</KEYWORD1>
			<KEYWORD1>case</KEYWORD1>
			<KEYWORD1>continue</KEYWORD1>
			<KEYWORD1>default</KEYWORD1>
			<KEYWORD1>do</KEYWORD1>
			<KEYWORD1>else</KEYWORD1>
			<KEYWORD1>for</KEYWORD1>
			<KEYWORD1>if</KEYWORD1>
			<KEYWORD1>return</KEYWORD1>
			<KEYWORD1>switch</KEYWORD1>
			<KEYWORD1>while</KEYWORD1>
			<KEYWORD1>SPC</KEYWORD1>
			<KEYWORD1>@</KEYWORD1>
			<KEYWORD2>package</KEYWORD2>
			<KEYWORD3>function</KEYWORD3>
			<KEYWORD3>new</KEYWORD3>
			<KEYWORD3>datablock</KEYWORD3>
			<LITERAL2>true</LITERAL2>
			<LITERAL2>false</LITERAL2>
			<LITERAL2>NULL</LITERAL2>
		</KEYWORDS>
	</RULES>
</MODE>
