<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="haxe" version="1.0" kateversion="2.5.5" section="Sources" extensions="*.hx" mimetype="text/x-haxe" license="LGPL" author="Gilles Maire (Gilles.Maire@ungi.net)">
	<highlighting>
		<list name="haxe">
			<item> static </item>
			<item> public </item>
			<item> private </item>
			<item> class </item>
			<item> var </item>
			<item> function</item>
		</list>
		<list name="keywords">
			<item>class</item>
			<item>if</item>
			<item>else</item>
			<item>while</item>
			<item>do</item>
			<item>for</item>
			<item>break</item>
			<item>continue</item>
			<item>return</item>
			<item>extends</item>
			<item>implements</item>
			<item>import</item>
			<item>switch</item>
			<item>case</item>
			<item>default</item>
			<item>try</item>				
			<item>catch</item>
			<item>new</item>
			<item>this</item>
			<item>throw</item>
			<item>extern</item>
			<item>enum</item>
			<item>in</item>
			<item>interface</item>
			<item>untyped</item>
		</list>
		<list name="types">
			<item> Bool </item>
			<item> Float </item>
			<item> Int </item>
			<item> Void </item>
			<item> Dynamic </item>
			<item>Array</item>
			<item>Bool</item>
			<item>Date</item>
			<item>Dynamic</item>
			<item>false</item>
			<item>Float</item>
			<item>Hash</item>
			<item>Int</item>
			<item>IntIter</item>
			<item>Iterator</item>
			<item>Lambda</item>
			<item>List</item>
			<item>Log</item>
			<item>Math</item>
			<item>Node</item>
			<item>Reflect</item>
			<item>Std</item>
			<item>String</item>
			<item>StringBuf</item>
			<item>StringTools</item>
			<item>true</item>
			<item>XmlParser</item>
			<item>Void</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"/>
				<keyword attribute="haxe" context="#stay" String="haxe"/>
				<Float attribute="Float" context="#stay">
					<AnyChar String="fF" attribute="Float" context="#stay"/>
				</Float>
				<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;"/>
				<RegExpr attribute="Function" context="Printf" String="\.(format|printf)\b" />
				<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="Printf" lineEndContext="#pop" name="Printf">
				<DetectChar attribute="Normal Text" context="#pop" char="&#059;" />
				<DetectChar attribute="String" context="PrintfString" char="&quot;"/>
			</context>
			<context attribute="PrintfString" lineEndContext="#pop" name="PrintfString">
				<LineContinue attribute="String" context="#stay"/>
				<HlCStringChar attribute="String Char" context="#stay"/>
				<DetectChar attribute="String" context="#pop" char="&quot;"/>
				<RegExpr attribute="String Char" context="#stay" String="%(\d+\$)?(-|#|\+|\ |0|,|\()*\d*(\.\d+)?[a-hosxA-CEGHSX]" />
				<RegExpr attribute="String Char" context="#stay" String="%(\d+\$)?(-|#|\+|\ |0|,|\()*\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)" />
				<RegExpr attribute="String Char" context="#stay" String="%(%|n)" />
			</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="dsKeyword"/>
			<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="PrintfString" defStyleNum="dsString"/>
			<itemData name="Comment"      defStyleNum="dsComment"/>
			<itemData name="Symbol"       defStyleNum="dsNormal"/>
			<itemData name="haxe"       defStyleNum="dsNormal" color="#39671B" selColor="#FFFFFF" bold="1" italic="0"/>
		</itemDatas>
	</highlighting>
	<general>
		<comments>
			<comment name="singleLine" start="//"/>
			<comment name="multiLine" start="/*" end="*/"/>
		</comments>
		<keywords casesensitive="1"/>
	</general>
</language>
