<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!-- Occam mode by Rick Beton. -->
<MODE>
	<PROPS>
		<PROPERTY NAME="commentStart" VALUE="--" />
		<PROPERTY NAME="commentEnd" VALUE="" />
		<PROPERTY NAME="blockComment" VALUE="" />
		<PROPERTY NAME="noWordSep" VALUE="." />
	</PROPS>

	<RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">

		<!-- Normal comments. -->
		<EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>

		<!-- Compiler directives. -->
		<EOL_SPAN TYPE="COMMENT2">#</EOL_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>

		<SEQ TYPE="OPERATOR">:=</SEQ>
		<SEQ TYPE="OPERATOR">=</SEQ>
		<SEQ TYPE="OPERATOR">&gt;&gt;</SEQ>
		<SEQ TYPE="OPERATOR">&lt;&lt;</SEQ>
		<SEQ TYPE="OPERATOR">&lt;&gt;</SEQ>
		<SEQ TYPE="OPERATOR">&gt;&lt;</SEQ>
		<SEQ TYPE="OPERATOR">&gt;</SEQ>
		<SEQ TYPE="OPERATOR">&lt;</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="OPERATOR">\/</SEQ>
		<SEQ TYPE="OPERATOR">~</SEQ>

		<KEYWORDS>
                        <!-- Structure keywords -->
			<KEYWORD1>ALT</KEYWORD1>
			<KEYWORD1>ASM</KEYWORD1>
			<KEYWORD1>CASE</KEYWORD1>
			<KEYWORD1>FUNCTION</KEYWORD1>
			<KEYWORD1>IF</KEYWORD1>
			<KEYWORD1>INLINE</KEYWORD1>
			<KEYWORD1>PAR</KEYWORD1>
			<KEYWORD1>PLACED</KEYWORD1>
			<KEYWORD1>PRI</KEYWORD1>
			<KEYWORD1>PROC</KEYWORD1>
			<KEYWORD1>RESULT</KEYWORD1>
			<KEYWORD1>SEQ</KEYWORD1>
			<KEYWORD1>VALOF</KEYWORD1>
			<KEYWORD1>WHILE</KEYWORD1>
                        
			<!-- main keywords -->
                        <KEYWORD2>AT</KEYWORD2>
			<KEYWORD2>ELSE</KEYWORD2>
			<KEYWORD2>FOR</KEYWORD2>
			<KEYWORD2>FROM</KEYWORD2>
			<KEYWORD2>IS</KEYWORD2>
			<KEYWORD2>PLACE</KEYWORD2>
			<KEYWORD2>PORT</KEYWORD2>
			<KEYWORD2>PROTOCOL</KEYWORD2>
			<KEYWORD2>SKIP</KEYWORD2>
			<KEYWORD2>STOP</KEYWORD2>
			<KEYWORD2>VAL</KEYWORD2>

                        <!-- type and conversion keywords -->
			<KEYWORD2>AFTER</KEYWORD2>
			<KEYWORD2>AND</KEYWORD2>
			<KEYWORD2>ANY</KEYWORD2>
			<KEYWORD2>BITAND</KEYWORD2>
			<KEYWORD2>BITNOT</KEYWORD2>
			<KEYWORD2>BITOR</KEYWORD2>
			<KEYWORD2>BOOL</KEYWORD2>
			<KEYWORD2>BYTE</KEYWORD2>
			<KEYWORD2>BYTESIN</KEYWORD2>
			<KEYWORD2>CHAN</KEYWORD2>
			<KEYWORD2>DATA</KEYWORD2>
			<KEYWORD2>INT</KEYWORD2>
			<KEYWORD2>INT32</KEYWORD2>
			<KEYWORD2>INT16</KEYWORD2>
			<KEYWORD2>INT64</KEYWORD2>
			<KEYWORD2>MINUS</KEYWORD2>
			<KEYWORD2>MOSTNEG</KEYWORD2>
			<KEYWORD2>MOSTPOS</KEYWORD2>
			<KEYWORD2>NOT</KEYWORD2>
			<KEYWORD2>PLUS</KEYWORD2>
			<KEYWORD2>OF</KEYWORD2>
			<KEYWORD2>OFFSETOF</KEYWORD2>
			<KEYWORD2>OR</KEYWORD2>
			<KEYWORD2>PACKED</KEYWORD2>
			<KEYWORD2>REAL32</KEYWORD2>
			<KEYWORD2>REAL64</KEYWORD2>
			<KEYWORD2>RECORD</KEYWORD2>
			<KEYWORD2>REM</KEYWORD2>
			<KEYWORD2>RESHAPES</KEYWORD2>
			<KEYWORD2>RETYPES</KEYWORD2>
			<KEYWORD2>ROUND</KEYWORD2>
			<KEYWORD2>SIZE</KEYWORD2>
			<KEYWORD2>TIMER</KEYWORD2>
			<KEYWORD2>TIMES</KEYWORD2>
			<KEYWORD2>TRUNC</KEYWORD2>
			<KEYWORD2>TYPE</KEYWORD2>

                        <!-- Occam3 and extensions to occam2.1 -->
			<KEYWORD2>BUCKET</KEYWORD2>
			<KEYWORD2>CLAIM</KEYWORD2>
			<KEYWORD2>ENROLL</KEYWORD2>
			<KEYWORD2>EVENT</KEYWORD2>
			<KEYWORD2>FALL</KEYWORD2>
			<KEYWORD2>FLUSH</KEYWORD2>
			<KEYWORD2>GRANT</KEYWORD2>
			<KEYWORD2>INITIAL</KEYWORD2>
			<KEYWORD2>RESOURCE</KEYWORD2>
			<KEYWORD2>SEMAPHORE</KEYWORD2>
			<KEYWORD2>SHARED</KEYWORD2>
			<KEYWORD2>SYNC</KEYWORD2>
                        
                        <!-- arithmetic & trigonometric functions -->
			<KEYWORD3>LONGADD</KEYWORD3>
			<KEYWORD3>LONGSUB</KEYWORD3>
			<KEYWORD3>ASHIFTRIGHT</KEYWORD3>
			<KEYWORD3>ASHIFTLEFT</KEYWORD3>
			<KEYWORD3>ROTATERIGHT</KEYWORD3>
			<KEYWORD3>ROTATELEFT</KEYWORD3>
			<KEYWORD3>LONGSUM</KEYWORD3>
			<KEYWORD3>LONGDIFF</KEYWORD3>
			<KEYWORD3>LONGPROD</KEYWORD3>
			<KEYWORD3>LONGDIV</KEYWORD3>
			<KEYWORD3>SHIFTLEFT</KEYWORD3>
			<KEYWORD3>SHIFTRIGHT</KEYWORD3>
			<KEYWORD3>NORMALISE</KEYWORD3>
			<KEYWORD3>ABS</KEYWORD3>
			<KEYWORD3>DABS</KEYWORD3>
			<KEYWORD3>SCALEB</KEYWORD3>
			<KEYWORD3>DSCALEB</KEYWORD3>
			<KEYWORD3>COPYSIGN</KEYWORD3>
			<KEYWORD3>DCOPYSIGN</KEYWORD3>
			<KEYWORD3>SQRT</KEYWORD3>
			<KEYWORD3>DSQRT</KEYWORD3>
			<KEYWORD3>MINUSX</KEYWORD3>
			<KEYWORD3>DMINUSX</KEYWORD3>
			<KEYWORD3>NEXTAFTER</KEYWORD3>
			<KEYWORD3>DNEXTAFTER</KEYWORD3>
			<KEYWORD3>MULBY2</KEYWORD3>
			<KEYWORD3>DMULBY2</KEYWORD3>
			<KEYWORD3>DIVBY2</KEYWORD3>
			<KEYWORD3>DDIVBY2</KEYWORD3>
			<KEYWORD3>LOGB</KEYWORD3>
			<KEYWORD3>DLOGB</KEYWORD3>
			<KEYWORD3>ISNAN</KEYWORD3>
			<KEYWORD3>DISNAN</KEYWORD3>
			<KEYWORD3>NOTFINITE</KEYWORD3>
			<KEYWORD3>DNOTFINITE</KEYWORD3>
			<KEYWORD3>ORDERED</KEYWORD3>
			<KEYWORD3>DORDERED</KEYWORD3>
			<KEYWORD3>FLOATING.UNPACK</KEYWORD3>
			<KEYWORD3>DFLOATING.UNPACK</KEYWORD3>
			<KEYWORD3>ARGUMENT.REDUCE</KEYWORD3>
			<KEYWORD3>DARGUMENT.REDUCE</KEYWORD3>
			<KEYWORD3>FPINT</KEYWORD3>
			<KEYWORD3>DFPINT</KEYWORD3>
			<KEYWORD3>REAL32OP</KEYWORD3>
			<KEYWORD3>REAL64OP</KEYWORD3>
			<KEYWORD3>IEEE32OP</KEYWORD3>
			<KEYWORD3>IEEE64OP</KEYWORD3>
			<KEYWORD3>REAL32REM</KEYWORD3>
			<KEYWORD3>REAL64REM</KEYWORD3>
			<KEYWORD3>IEEE32REM</KEYWORD3>
			<KEYWORD3>IEEE64REM</KEYWORD3>
			<KEYWORD3>REAL32EQ</KEYWORD3>
			<KEYWORD3>REAL64EQ</KEYWORD3>
			<KEYWORD3>REAL32GT</KEYWORD3>
			<KEYWORD3>REAL64GT</KEYWORD3>
			<KEYWORD3>IEEECOMPARE</KEYWORD3>
			<KEYWORD3>DIEEECOMPARE</KEYWORD3>
			<KEYWORD3>ALOG</KEYWORD3>
			<KEYWORD3>DALOG</KEYWORD3>
			<KEYWORD3>ALOG10</KEYWORD3>
			<KEYWORD3>DALOG10</KEYWORD3>
			<KEYWORD3>EXP</KEYWORD3>
			<KEYWORD3>DEXP</KEYWORD3>
			<KEYWORD3>TAN</KEYWORD3>
			<KEYWORD3>DTAN</KEYWORD3>
			<KEYWORD3>SIN</KEYWORD3>
			<KEYWORD3>DSIN</KEYWORD3>
			<KEYWORD3>ASIN</KEYWORD3>
			<KEYWORD3>DASIN</KEYWORD3>
			<KEYWORD3>COS</KEYWORD3>
			<KEYWORD3>DCOS</KEYWORD3>
			<KEYWORD3>SINH</KEYWORD3>
			<KEYWORD3>DSINH</KEYWORD3>
			<KEYWORD3>COSH</KEYWORD3>
			<KEYWORD3>DCOSH</KEYWORD3>
			<KEYWORD3>TANH</KEYWORD3>
			<KEYWORD3>DTANH</KEYWORD3>
			<KEYWORD3>ATAN</KEYWORD3>
			<KEYWORD3>DATAN</KEYWORD3>
			<KEYWORD3>ATAN2</KEYWORD3>
			<KEYWORD3>DATAN2</KEYWORD3>
			<KEYWORD3>RAN</KEYWORD3>
			<KEYWORD3>DRAN</KEYWORD3>
			<KEYWORD3>POWER</KEYWORD3>
			<KEYWORD3>DPOWER</KEYWORD3>

                        <!-- basic data conversion functions -->
			<KEYWORD3>INTTOSTRING</KEYWORD3>
			<KEYWORD3>INT16TOSTRING</KEYWORD3>
			<KEYWORD3>INT32TOSTRING</KEYWORD3>
			<KEYWORD3>INT64TOSTRING</KEYWORD3>
			<KEYWORD3>STRINGTOINT</KEYWORD3>
			<KEYWORD3>STRINGTOINT16</KEYWORD3>
			<KEYWORD3>STRINGTOINT32</KEYWORD3>
			<KEYWORD3>STRINGTOINT64</KEYWORD3>
			<KEYWORD3>HEXTOSTRING</KEYWORD3>
			<KEYWORD3>HEX16TOSTRING</KEYWORD3>
			<KEYWORD3>HEX32TOSTRING</KEYWORD3>
			<KEYWORD3>HEX64TOSTRING</KEYWORD3>
			<KEYWORD3>STRINGTOHEX</KEYWORD3>
			<KEYWORD3>STRINGTOHEX16</KEYWORD3>
			<KEYWORD3>STRINGTOHEX32</KEYWORD3>
			<KEYWORD3>STRINGTOHEX64</KEYWORD3>
			<KEYWORD3>STRINGTOREAL32</KEYWORD3>
			<KEYWORD3>STRINGTOREAL64</KEYWORD3>
			<KEYWORD3>REAL32TOSTRING</KEYWORD3>
			<KEYWORD3>REAL64TOSTRING</KEYWORD3>
			<KEYWORD3>STRINGTOBOOL</KEYWORD3>
			<KEYWORD3>BOOLTOSTRING</KEYWORD3>
			<KEYWORD3>RESCHEDULE</KEYWORD3>
			<KEYWORD3>ASSERT</KEYWORD3>

                        <!-- preprocessor directives
                        #INCLUDE
                        #USE
                        #OPTION
                        #PRAGMA
                        #COMMENT
                        -->

			<LITERAL2>FALSE</LITERAL2>
			<LITERAL2>TRUE</LITERAL2>
		</KEYWORDS>
	</RULES>
</MODE>
