<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<MODE>
	<PROPS>
		<PROPERTY NAME="lineComment" VALUE="--" />
	</PROPS>

	<RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
		<!-- Normal comments. -->
		<EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>

		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>
		
		<SEQ TYPE="OPERATOR">)</SEQ>
		<SEQ TYPE="OPERATOR">(</SEQ>
		<SEQ TYPE="OPERATOR">..</SEQ>
		<SEQ TYPE="OPERATOR">.all</SEQ>
		<SEQ TYPE="OPERATOR">:=</SEQ>
		<SEQ TYPE="OPERATOR">/=</SEQ>
		<SEQ TYPE="OPERATOR">=&gt;</SEQ>
		<SEQ TYPE="OPERATOR">=</SEQ>
		<SEQ TYPE="NULL">&lt;&gt;</SEQ>
		<SEQ TYPE="LABEL">&lt;&lt;</SEQ>
		<SEQ TYPE="LABEL">&gt;&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">&amp;</SEQ>
		<SEQ TYPE="OPERATOR">+</SEQ>
		<SEQ TYPE="OPERATOR">-</SEQ>
		<SEQ TYPE="OPERATOR">/</SEQ>
		<SEQ TYPE="OPERATOR">**</SEQ>
		<SEQ TYPE="OPERATOR">*</SEQ>

		<SEQ TYPE="KEYWORD3">'access</SEQ>
		<SEQ TYPE="KEYWORD3">'address</SEQ>
		<SEQ TYPE="KEYWORD3">'adjacent</SEQ>
		<SEQ TYPE="KEYWORD3">'aft</SEQ>
		<SEQ TYPE="KEYWORD3">'alignment</SEQ>
		<SEQ TYPE="KEYWORD3">'base</SEQ>
		<SEQ TYPE="KEYWORD3">'bit_order</SEQ>
		<SEQ TYPE="KEYWORD3">'body_version</SEQ>
		<SEQ TYPE="KEYWORD3">'callable</SEQ>
		<SEQ TYPE="KEYWORD3">'caller</SEQ>
		<SEQ TYPE="KEYWORD3">'ceiling</SEQ>
		<SEQ TYPE="KEYWORD3">'class</SEQ>
		<SEQ TYPE="KEYWORD3">'component_size</SEQ>
		<SEQ TYPE="KEYWORD3">'composed</SEQ>
		<SEQ TYPE="KEYWORD3">'constrained</SEQ>
		<SEQ TYPE="KEYWORD3">'copy_size</SEQ>
		<SEQ TYPE="KEYWORD3">'count</SEQ>
		<SEQ TYPE="KEYWORD3">'definite</SEQ>
		<SEQ TYPE="KEYWORD3">'delta</SEQ>
		<SEQ TYPE="KEYWORD3">'denorm</SEQ>
		<SEQ TYPE="KEYWORD3">'digits</SEQ>
		<SEQ TYPE="KEYWORD3">'exponent</SEQ>
		<SEQ TYPE="KEYWORD3">'external_tag</SEQ>
		<SEQ TYPE="KEYWORD3">'first</SEQ>
		<SEQ TYPE="KEYWORD3">'first_bit</SEQ>
		<SEQ TYPE="KEYWORD3">'floor</SEQ>
		<SEQ TYPE="KEYWORD3">'fore</SEQ>
		<SEQ TYPE="KEYWORD3">'fraction</SEQ>
		<SEQ TYPE="KEYWORD3">'genetic</SEQ>
		<SEQ TYPE="KEYWORD3">'identity</SEQ>
		<SEQ TYPE="KEYWORD3">'image</SEQ>
		<SEQ TYPE="KEYWORD3">'input</SEQ>
		<SEQ TYPE="KEYWORD3">'last</SEQ>
		<SEQ TYPE="KEYWORD3">'last_bit</SEQ>
		<SEQ TYPE="KEYWORD3">'leading_part</SEQ>
		<SEQ TYPE="KEYWORD3">'length</SEQ>
		<SEQ TYPE="KEYWORD3">'machine</SEQ>
		<SEQ TYPE="KEYWORD3">'machine_emax</SEQ>
		<SEQ TYPE="KEYWORD3">'machine_emin</SEQ>
		<SEQ TYPE="KEYWORD3">'machine_mantissa</SEQ>
		<SEQ TYPE="KEYWORD3">'machine_overflows</SEQ>
		<SEQ TYPE="KEYWORD3">'machine_radix</SEQ>
		<SEQ TYPE="KEYWORD3">'machine_rounds</SEQ>
		<SEQ TYPE="KEYWORD3">'max</SEQ>
		<SEQ TYPE="KEYWORD3">'max_size_in_storage_elements</SEQ>
		<SEQ TYPE="KEYWORD3">'min</SEQ>
		<SEQ TYPE="KEYWORD3">'model</SEQ>
		<SEQ TYPE="KEYWORD3">'model_emin</SEQ>
		<SEQ TYPE="KEYWORD3">'model_epsilon</SEQ>
		<SEQ TYPE="KEYWORD3">'model_mantissa</SEQ>
		<SEQ TYPE="KEYWORD3">'model_small</SEQ>
		<SEQ TYPE="KEYWORD3">'modulus</SEQ>
		<SEQ TYPE="KEYWORD3">'output</SEQ>
		<SEQ TYPE="KEYWORD3">'partition_id</SEQ>
		<SEQ TYPE="KEYWORD3">'pos</SEQ>
		<SEQ TYPE="KEYWORD3">'position</SEQ>
		<SEQ TYPE="KEYWORD3">'pred</SEQ>
		<SEQ TYPE="KEYWORD3">'range</SEQ>
		<SEQ TYPE="KEYWORD3">'read</SEQ>
		<SEQ TYPE="KEYWORD3">'remainder</SEQ>
		<SEQ TYPE="KEYWORD3">'round</SEQ>
		<SEQ TYPE="KEYWORD3">'rounding</SEQ>
		<SEQ TYPE="KEYWORD3">'safe_first</SEQ>
		<SEQ TYPE="KEYWORD3">'safe_last</SEQ>
		<SEQ TYPE="KEYWORD3">'scale</SEQ>
		<SEQ TYPE="KEYWORD3">'scaling</SEQ>
		<SEQ TYPE="KEYWORD3">'signed_zeros</SEQ>
		<SEQ TYPE="KEYWORD3">'size</SEQ>
		<SEQ TYPE="KEYWORD3">'small</SEQ>
		<SEQ TYPE="KEYWORD3">'storage_pool</SEQ>
		<SEQ TYPE="KEYWORD3">'storage_size</SEQ>
		<SEQ TYPE="KEYWORD3">'succ</SEQ>
		<SEQ TYPE="KEYWORD3">'tag</SEQ>
		<SEQ TYPE="KEYWORD3">'terminated</SEQ>
		<SEQ TYPE="KEYWORD3">'truncation</SEQ>
		<SEQ TYPE="KEYWORD3">'unbiased_rounding</SEQ>
		<SEQ TYPE="KEYWORD3">'unchecked_access</SEQ>
		<SEQ TYPE="KEYWORD3">'val</SEQ>
		<SEQ TYPE="KEYWORD3">'valid</SEQ>
		<SEQ TYPE="KEYWORD3">'value</SEQ>
		<SEQ TYPE="KEYWORD3">'version</SEQ>
		<SEQ TYPE="KEYWORD3">'wide_image</SEQ>
		<SEQ TYPE="KEYWORD3">'wide_value</SEQ>
		<SEQ TYPE="KEYWORD3">'wide_width</SEQ>
		<SEQ TYPE="KEYWORD3">'width</SEQ>
		<SEQ TYPE="KEYWORD3">'write</SEQ>

		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
			<BEGIN>'</BEGIN>
			<END>'</END>
		</SPAN>

		<KEYWORDS>
			<!-- Reserved words -->
			<KEYWORD1>entry</KEYWORD1>
			<KEYWORD1>function</KEYWORD1>
			<KEYWORD1>procedure</KEYWORD1>

			<KEYWORD2>abort</KEYWORD2>
			<KEYWORD2>abs</KEYWORD2>
			<KEYWORD2>abstract</KEYWORD2>
			<KEYWORD2>accept</KEYWORD2>
			<KEYWORD2>access</KEYWORD2>
			<KEYWORD2>aliased</KEYWORD2>
			<KEYWORD2>all</KEYWORD2>
			<KEYWORD2>and</KEYWORD2>
			<KEYWORD2>array</KEYWORD2>
			<KEYWORD2>at</KEYWORD2>
			<KEYWORD2>begin</KEYWORD2>
			<KEYWORD2>body</KEYWORD2>
			<KEYWORD2>case</KEYWORD2>
			<KEYWORD2>constant</KEYWORD2>
			<KEYWORD2>declare</KEYWORD2>
			<KEYWORD2>delay</KEYWORD2>
			<KEYWORD2>delta</KEYWORD2>
			<KEYWORD2>digits</KEYWORD2>
			<KEYWORD2>do</KEYWORD2>
			<KEYWORD2>else</KEYWORD2>
			<KEYWORD2>elsif</KEYWORD2>
			<KEYWORD2>end</KEYWORD2>
			<KEYWORD2>exception</KEYWORD2>
			<KEYWORD2>exit</KEYWORD2>
			<KEYWORD2>for</KEYWORD2>
			<KEYWORD2>goto</KEYWORD2>
			<KEYWORD2>if</KEYWORD2>
			<KEYWORD2>in</KEYWORD2>
			<KEYWORD2>is</KEYWORD2>
			<KEYWORD2>limited</KEYWORD2>
			<KEYWORD2>loop</KEYWORD2>
			<KEYWORD2>mod</KEYWORD2>
			<KEYWORD2>new</KEYWORD2>
			<KEYWORD2>not</KEYWORD2>
			<KEYWORD2>or</KEYWORD2>
			<KEYWORD2>others</KEYWORD2>
			<KEYWORD2>out</KEYWORD2>
			<KEYWORD2>package</KEYWORD2>
			<KEYWORD2>pragma</KEYWORD2>
			<KEYWORD2>private</KEYWORD2>
			<KEYWORD2>protected</KEYWORD2>
			<KEYWORD2>raise</KEYWORD2>
			<KEYWORD2>range</KEYWORD2>
			<KEYWORD2>record</KEYWORD2>
			<KEYWORD2>rem</KEYWORD2>
			<KEYWORD2>renames</KEYWORD2>
			<KEYWORD2>requeue</KEYWORD2>
			<KEYWORD2>return</KEYWORD2>
			<KEYWORD2>select</KEYWORD2>
			<KEYWORD2>separate</KEYWORD2>
			<KEYWORD2>string</KEYWORD2>
			<KEYWORD2>subtype</KEYWORD2>
			<KEYWORD2>tagged</KEYWORD2>
			<KEYWORD2>task</KEYWORD2>
			<KEYWORD2>terminate</KEYWORD2>
			<KEYWORD2>then</KEYWORD2>
			<KEYWORD2>type</KEYWORD2>
			<KEYWORD2>until</KEYWORD2>
			<KEYWORD2>use</KEYWORD2>
			<KEYWORD2>when</KEYWORD2>
			<KEYWORD2>while</KEYWORD2>
			<KEYWORD2>with</KEYWORD2>
			<KEYWORD2>xor</KEYWORD2>

			<!-- Attributes -->

			<!-- Common Pre-defined Types -->
			<LITERAL2>address</LITERAL2>
			<LITERAL2>boolean</LITERAL2>
			<LITERAL2>character</LITERAL2>
			<LITERAL2>duration</LITERAL2>
			<LITERAL2>float</LITERAL2>
			<LITERAL2>integer</LITERAL2>
			<LITERAL2>latin_1</LITERAL2>
			<LITERAL2>natural</LITERAL2>
			<LITERAL2>positive</LITERAL2>
			<LITERAL2>string</LITERAL2>
			<LITERAL2>time</LITERAL2>

			<!-- Literals -->
			<LITERAL1>false</LITERAL1>
			<LITERAL1>null</LITERAL1>
			<LITERAL1>true</LITERAL1>
		</KEYWORDS>
	</RULES>
</MODE>
