<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<MODE>
      <!-- Syntax highlighting mode for the Inform language. You can find out more about inform at
           http://www.gnelson.demon.co.uk/inform.html
           And an inform language guide at
           http://www.gnelson.demon.co.uk/dman/index.html
        -->
	<PROPS>
		<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
		<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
		<PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
		<PROPERTY NAME="filenameGlob" VALUE="*.inf" />
		<PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
	</PROPS>
	<RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
		<EOL_SPAN TYPE="COMMENT1">!</EOL_SPAN>

        <!-- strings can span lines -->
		<SPAN TYPE="LITERAL1" DELEGATE="InformInnerText">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>
		<SPAN TYPE="LITERAL2">
			<BEGIN>'</BEGIN>
			<END>'</END>
		</SPAN>
        
        <!-- special sequences that require special highlighting -->
		<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">&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="OPERATOR">.&amp;</SEQ>
		<SEQ TYPE="OPERATOR">.#</SEQ>

		<!-- Function calls -->
		<MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
		<MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">::</MARK_PREVIOUS>
		<MARK_PREVIOUS TYPE="LABEL" EXCLUDE_MATCH="TRUE" AT_LINE_START="TRUE">:</MARK_PREVIOUS>

		<KEYWORDS>
			<KEYWORD1>has</KEYWORD1>
			<KEYWORD1>hasnt</KEYWORD1>
			<KEYWORD1>in</KEYWORD1>
			<KEYWORD1>notin</KEYWORD1>
			<KEYWORD1>ofclass</KEYWORD1>
			<KEYWORD1>provides</KEYWORD1>
			<KEYWORD1>or</KEYWORD1>
            
			<KEYWORD1>char</KEYWORD1>
			<KEYWORD1>string</KEYWORD1>
			<KEYWORD1>address</KEYWORD1>
			<KEYWORD1>name</KEYWORD1>
			<KEYWORD1>a</KEYWORD1>
			<KEYWORD1>an</KEYWORD1>
			<KEYWORD1>the</KEYWORD1>
			<KEYWORD1>The</KEYWORD1>
			<KEYWORD1>property</KEYWORD1>
			<KEYWORD1>object</KEYWORD1>
            
			<KEYWORD2>box</KEYWORD2>
			<KEYWORD2>break</KEYWORD2>
			<KEYWORD2>continue</KEYWORD2>
			<KEYWORD2>do</KEYWORD2>
			    <KEYWORD2>until</KEYWORD2>
			<KEYWORD2>for</KEYWORD2>
			<KEYWORD2>font</KEYWORD2>
			    <KEYWORD2>on</KEYWORD2>
			    <KEYWORD2>off</KEYWORD2>
			<KEYWORD2>give</KEYWORD2>
			<KEYWORD2>if</KEYWORD2>
			    <KEYWORD2>else</KEYWORD2>
			<KEYWORD2>inversion</KEYWORD2>
			<KEYWORD2>jump</KEYWORD2>
			<KEYWORD2>move</KEYWORD2>
			    <KEYWORD2>to</KEYWORD2>
			<KEYWORD2>new_line</KEYWORD2>
			<KEYWORD2>objectloop</KEYWORD2>
			<KEYWORD2>print</KEYWORD2>
			<KEYWORD2>print_ret</KEYWORD2>
			<KEYWORD2>quit</KEYWORD2>
			<KEYWORD2>read</KEYWORD2>
			<KEYWORD2>remove</KEYWORD2>
			<KEYWORD2>restore</KEYWORD2>
			<KEYWORD2>return</KEYWORD2>
			<KEYWORD2>rfalse</KEYWORD2>
			<KEYWORD2>rtrue</KEYWORD2>
			<KEYWORD2>save</KEYWORD2>
			<KEYWORD2>spaces</KEYWORD2>
			<KEYWORD2>string</KEYWORD2>
			<KEYWORD2>style</KEYWORD2>
			    <KEYWORD2>roman</KEYWORD2>
			    <KEYWORD2>bold</KEYWORD2>
			    <KEYWORD2>underline</KEYWORD2>
			    <KEYWORD2>reverse</KEYWORD2>
			    <KEYWORD2>fixed</KEYWORD2>
			<KEYWORD2>switch</KEYWORD2>
			<KEYWORD2>while</KEYWORD2>
			<KEYWORD2>score</KEYWORD2>
			<KEYWORD2>time</KEYWORD2>

			<KEYWORD3>Abbreviate</KEYWORD3>
			<KEYWORD3>Array</KEYWORD3>
			<KEYWORD3>Attribute</KEYWORD3>
			<KEYWORD3>Class</KEYWORD3>
			<KEYWORD3>Constant</KEYWORD3>
			<KEYWORD3>Default</KEYWORD3>
			<KEYWORD3>End</KEYWORD3>
			<KEYWORD3>Endif</KEYWORD3>
			<KEYWORD3>Extend</KEYWORD3>
			<KEYWORD3>Global</KEYWORD3>
			<KEYWORD3>Ifdef</KEYWORD3>
			<KEYWORD3>Ifndef</KEYWORD3>
			<KEYWORD3>Ifnot</KEYWORD3>
			<KEYWORD3>Iftrue</KEYWORD3>
			<KEYWORD3>Iffalse</KEYWORD3>
			<KEYWORD3>Import</KEYWORD3>
			<KEYWORD3>Include</KEYWORD3>
			<KEYWORD3>Link</KEYWORD3>
			<KEYWORD3>Lowstring</KEYWORD3>
			<KEYWORD3>Message</KEYWORD3>
			<KEYWORD3>Object</KEYWORD3>
			<KEYWORD3>Property</KEYWORD3>
			<KEYWORD3>Replace</KEYWORD3>
			<KEYWORD3>Serial</KEYWORD3>
			<KEYWORD3>Switches</KEYWORD3>
			<KEYWORD3>Statusline</KEYWORD3>
			<KEYWORD3>System_file</KEYWORD3>
			<KEYWORD3>Verb</KEYWORD3>
			<KEYWORD3>with</KEYWORD3>
<!--			<KEYWORD3>has</KEYWORD3> -->
			<KEYWORD3>class</KEYWORD3>
			<KEYWORD3>private</KEYWORD3>

			<LITERAL2>false</LITERAL2>
			<LITERAL2>null</LITERAL2>
			<LITERAL2>super</LITERAL2>
			<LITERAL2>this</LITERAL2>
			<LITERAL2>true</LITERAL2>
		</KEYWORDS>
	</RULES>
	<RULES SET="InformInnerText" IGNORE_CASE="FALSE" DEFAULT="LITERAL1">
		<SEQ TYPE="OPERATOR">^</SEQ>
		<SEQ TYPE="OPERATOR">~</SEQ>
		<SEQ TYPE="OPERATOR">@</SEQ>
		<SEQ TYPE="OPERATOR">\</SEQ>
	</RULES>
</MODE>
