<!-- "hac.xml" -->
<!-- $Id: hac.xml,v 1.1 2008/03/25 20:00:55 fang Exp $ -->
<!-- contributed/maintained by Carlos Tadeo Ortega Otero <cto3@csl.cornell.edu> -->
<!-- also usable for the ACT dialect -->

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Act" version="1.0" kateversion="2.4" section="Sources" extensions="*.act" mimetype="text" license="LGPL" author="Carlos Tadeo Ortega Otero (cto3@cornell.edu)">
	<highlighting>
		<list name="keywords">
			<item> import </item>
			<item> namespace </item>
			<item> opne </item>
			<item> as </item>
			<item> template </item>
			<item> define </item>
			<item> defchan </item>
			<item> deftype </item>
			<item> defproc </item>
			<item> typedef </item>
			<item> chp </item>
			<item> hse </item>
			<item> prs </item>
			<item> spec </item>
			<item> tree </item>
			<item> subckt </item>
			<item> skip </item>
			<item> else </item>
			<item> log </item>
			<item> send </item>
			<item> recv </item>
			<item> set </item>
			<item> get </item>
			<item> enum </item>
			<item> chan </item>
			<item> true </item>
			<item> false </item>
			<item> extern </item>
			<item> static </item>
			<item> export </item>
		</list>
		<list name="types">
			<item> export </item>
			<item> e1of </item>
			<item> bool </item>
			<item> int </item>
			<item> pbool </item>
			<item> pint </item>
			<item> real </item>
			<item> preal </item>
		</list>
		<contexts>
			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
				<keyword attribute="Keyword" context="#stay" String="keywords"/>
				<keyword attribute="Data Type" context="#stay" String="types"/>

				<HlCOct attribute="Octal" context="#stay"/>
				<HlCHex attribute="Hex" context="#stay"/>
				<Int attribute="Decimal" context="#stay">
					<StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="U" insensitive="TRUE"/>
					<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="TRUE"/>
				</Int>
				<HlCChar attribute="Char" context="#stay"/>
				<RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>
				<RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>
				<DetectChar attribute="String" context="String" char="&quot;"/>
				<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
				<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
				<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
				<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
				<RegExpr attribute="Keyword" context="#stay" String="\.{3,3}\s+" />
				<RegExpr attribute="Keyword" context="StaticImports" String="\b(import\s+static)\b" />
				<RegExpr attribute="Keyword" context="Imports" String="\b(package|import)\b" />
				<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />
				<RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
				<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
			</context>
			<context attribute="String" lineEndContext="#pop" name="String">
				<LineContinue attribute="String" context="#stay"/>
				<HlCStringChar attribute="String Char" context="#stay"/>
				<DetectChar attribute="String" context="#pop" char="&quot;"/>
			</context>
			<context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
				<RegExpr attribute="Function" context="#pop" String="\b[_a-zA-Z]\w*(?=[\s]*)" />
			</context>
			<context attribute="Normal Text" lineEndContext="#pop" name="StaticImports">
				<RegExpr attribute="StaticImports" context="#pop" String="\s*.*;" />
			</context>
			<context attribute="Normal Text" lineEndContext="#pop" name="Imports">
				<RegExpr attribute="Imports" context="#pop" String="\s*.*;" />
			</context>
			<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
			<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
			</context>
		</contexts>
		<itemDatas>
			<itemData name="Normal Text"  defStyleNum="dsNormal"/>
			<itemData name="Keyword"      defStyleNum="dsNormal" bold="1" italic="1" color="#800080"/>
			<itemData name="Function"     defStyleNum="dsFunction"/>
			<itemData name="StaticImports"      defStyleNum="dsKeyword" color="#800080" selColor="#FFFFFF" bold="0" italic="0"/>
			<itemData name="Imports"      defStyleNum="dsKeyword" color="#808000" selColor="#FFFFFF" bold="0" italic="0"/>
			<itemData name="Data Type"    defStyleNum="dsDataType"/>
			<itemData name="Decimal"      defStyleNum="dsDecVal"/>
			<itemData name="Octal"        defStyleNum="dsBaseN"/>
			<itemData name="Hex"          defStyleNum="dsBaseN"/>
			<itemData name="Float"        defStyleNum="dsFloat"/>
			<itemData name="Char"         defStyleNum="dsChar"/>
			<itemData name="String"       defStyleNum="dsString"/>
			<itemData name="String Char"  defStyleNum="dsChar"/>
			<itemData name="Comment"      defStyleNum="dsComment"/>
			<itemData name="Symbol"       defStyleNum="dsNormal"/>
		</itemDatas>
	</highlighting>
	<general>
		<comments>
			<comment name="singleLine" start="//"/>
			<comment name="multiLine" start="/*" end="*/"/>
		</comments>
		<keywords casesensitive="1"/>
	</general>
</language>

