<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!-- Modula-3 mode, by Marcio Marchini mqm@magma.ca -->
<!-- See http://www.research.compaq.com/SRC/m3defn/html/syntax.html -->

<MODE>
	<PROPS>
		<PROPERTY NAME="commentStart" VALUE="(*" />
		<PROPERTY NAME="commentEnd" VALUE="*)" />
	</PROPS>
	<RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
		<!-- Comment -->
		<!-- Compiler directives. -->
		<SPAN TYPE="COMMENT2">
			<BEGIN>&lt;*</BEGIN>
			<END>*&gt;</END>
		</SPAN>

		<SPAN TYPE="COMMENT1">
			<BEGIN>(*</BEGIN>
			<END>*)</END>
		</SPAN>

		<!-- Standard literals -->
		<SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>
		<SPAN TYPE="LITERAL1" ESCAPE="\" 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">&lt;&gt;</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>

		<KEYWORDS>
			<KEYWORD1>AND</KEYWORD1>
			<KEYWORD1>DO</KEYWORD1>
			<KEYWORD1>FROM</KEYWORD1>
			<KEYWORD1>NOT</KEYWORD1>
			<KEYWORD1>REPEAT</KEYWORD1>
			<KEYWORD1>UNTIL</KEYWORD1>
			<KEYWORD1>ANY</KEYWORD1>
			<KEYWORD1>ELSE</KEYWORD1>
			<KEYWORD1>GENERIC</KEYWORD1>
			<KEYWORD1>OBJECT</KEYWORD1>
			<KEYWORD1>RETURN</KEYWORD1>
			<KEYWORD1>UNTRACED</KEYWORD1>
			<KEYWORD1>ARRAY</KEYWORD1>
			<KEYWORD1>ELSIF</KEYWORD1>
			<KEYWORD1>IF</KEYWORD1>
			<KEYWORD1>OF</KEYWORD1>
			<KEYWORD1>REVEAL</KEYWORD1>
			<KEYWORD1>VALUE</KEYWORD1>
			<KEYWORD1>AS</KEYWORD1>
			<KEYWORD1>END</KEYWORD1>
			<KEYWORD1>IMPORT</KEYWORD1>
			<KEYWORD1>OR</KEYWORD1>
			<KEYWORD1>ROOT</KEYWORD1>
			<KEYWORD1>VAR</KEYWORD1>
			<KEYWORD1>BEGIN</KEYWORD1>
			<KEYWORD1>EVAL</KEYWORD1>
			<KEYWORD1>IN</KEYWORD1>
			<KEYWORD1>OVERRIDES</KEYWORD1>
			<KEYWORD1>SET</KEYWORD1>
			<KEYWORD1>WHILE</KEYWORD1>
			<KEYWORD1>BITS</KEYWORD1>
			<KEYWORD1>EXCEPT</KEYWORD1>
			<KEYWORD1>INTERFACE</KEYWORD1>
			<KEYWORD1>PROCEDURE</KEYWORD1>
			<KEYWORD1>THEN</KEYWORD1>
			<KEYWORD1>WITH</KEYWORD1>
			<KEYWORD1>BRANDED</KEYWORD1>
			<KEYWORD1>EXCEPTION</KEYWORD1>
			<KEYWORD1>LOCK</KEYWORD1>
			<KEYWORD1>RAISE</KEYWORD1>
			<KEYWORD1>TO</KEYWORD1>
			<KEYWORD1>BY</KEYWORD1>
			<KEYWORD1>EXIT</KEYWORD1>
			<KEYWORD1>LOOP</KEYWORD1>
			<KEYWORD1>RAISES</KEYWORD1>
			<KEYWORD1>TRY</KEYWORD1>
			<KEYWORD1>CASE</KEYWORD1>
			<KEYWORD1>EXPORTS</KEYWORD1>
			<KEYWORD1>METHODS</KEYWORD1>
			<KEYWORD1>READONLY</KEYWORD1>
			<KEYWORD1>TYPE</KEYWORD1>
			<KEYWORD1>CONST</KEYWORD1>
			<KEYWORD1>FINALLY</KEYWORD1>
			<KEYWORD1>MOD</KEYWORD1>
			<KEYWORD1>RECORD</KEYWORD1>
			<KEYWORD1>TYPECASE</KEYWORD1>
			<KEYWORD1>DIV</KEYWORD1>
			<KEYWORD1>FOR</KEYWORD1>
			<KEYWORD1>MODULE</KEYWORD1>
			<KEYWORD1>REF</KEYWORD1>
			<KEYWORD1>UNSAFE</KEYWORD1>

			<!-- Reserved identifiers -->
			<LITERAL2>ABS</LITERAL2>
			<LITERAL2>BYTESIZE</LITERAL2>
			<LITERAL2>EXTENDED</LITERAL2>
			<LITERAL2>INTEGER</LITERAL2>
			<LITERAL2>MIN</LITERAL2>
			<LITERAL2>NUMBER</LITERAL2>
			<LITERAL2>TEXT</LITERAL2>
			<LITERAL2>ADDRESS</LITERAL2>
			<LITERAL2>CARDINAL</LITERAL2>
			<LITERAL2>FALSE</LITERAL2>
			<LITERAL2>ISTYPE</LITERAL2>
			<LITERAL2>MUTEX</LITERAL2>
			<LITERAL2>ORD</LITERAL2>
			<LITERAL2>TRUE</LITERAL2>
			<LITERAL2>ADR</LITERAL2>
			<LITERAL2>CEILING</LITERAL2>
			<LITERAL2>FIRST</LITERAL2>
			<LITERAL2>LAST</LITERAL2>
			<LITERAL2>NARROW</LITERAL2>
			<LITERAL2>REAL</LITERAL2>
			<LITERAL2>TRUNC</LITERAL2>
			<LITERAL2>ADRSIZE</LITERAL2>
			<LITERAL2>CHAR</LITERAL2>
			<LITERAL2>FLOAT</LITERAL2>
			<LITERAL2>LONGREAL</LITERAL2>
			<LITERAL2>NEW</LITERAL2>
			<LITERAL2>REFANY</LITERAL2>
			<LITERAL2>TYPECODE</LITERAL2>
			<LITERAL2>BITSIZE</LITERAL2>
			<LITERAL2>DEC</LITERAL2>
			<LITERAL2>FLOOR</LITERAL2>
			<LITERAL2>LOOPHOLE</LITERAL2>
			<LITERAL2>NIL</LITERAL2>
			<LITERAL2>ROUND</LITERAL2>
			<LITERAL2>VAL</LITERAL2>
			<LITERAL2>BOOLEAN</LITERAL2>
			<LITERAL2>DISPOSE</LITERAL2>
			<LITERAL2>INC</LITERAL2>
			<LITERAL2>MAX</LITERAL2>
			<LITERAL2>NULL</LITERAL2>
			<LITERAL2>SUBARRAY</LITERAL2>

			<!-- Standard interfaces -->
			<!--  http://www.research.compaq.com/SRC/m3defn/html/intfs.html -->
			<KEYWORD2>Text</KEYWORD2>
			<KEYWORD2>Thread</KEYWORD2>
			<KEYWORD2>Word</KEYWORD2>
			<KEYWORD2>Real</KEYWORD2>
			<KEYWORD2>LongReal</KEYWORD2>
			<KEYWORD2>ExtendedReal</KEYWORD2>
			<KEYWORD2>RealFloat</KEYWORD2>
			<KEYWORD2>LongFloat</KEYWORD2>
			<KEYWORD2>ExtendedFloat</KEYWORD2>
			<KEYWORD2>FloatMode</KEYWORD2>

			<!-- Recommended interfaces -->
			<!--  http://www.research.compaq.com/SRC/m3defn/html/intfs.html -->
			<KEYWORD3>Fmt</KEYWORD3>
			<KEYWORD3>Lex</KEYWORD3>
			<KEYWORD3>Pickle</KEYWORD3>
			<KEYWORD3>Table</KEYWORD3>

		</KEYWORDS>
	</RULES>
</MODE>
