<?xml version="1.0" encoding="UTF-8"?>
<EdnLang version="0.1" lang="Java">
	<ext>.*\.java</ext>
	<pass1><!-- multiline section & parse all file (now) and when modification retrive previous modification -->
		<rule name="doxygen multiline">
			<color>commentDoxygen</color>
			<regex>/\*(\*|!)(.|\r|\n)*?\*/</regex>
			<sub>doxyparse</sub>
		</rule>
		<rule name="comment multiline">
			<color>comment</color>
			<regex>/\*(.|\r|\n)*?(\*/|\0)</regex>
			<sub>TODO</sub>
		</rule>
		<rule name="comment multiline ERROR">
			<color>SYNTAX_ERROR</color>
			<regex>/\*(.|\r|\n)*</regex>
		</rule>
		<rule name="inline doxygen">
			<color>commentDoxygen</color>
			<regex>//!.*</regex>
			<sub>doxyparse</sub>
		</rule>
		<rule name="inline comment">
			<color>comment</color>
			<regex>//.*</regex>
			<sub>TODO</sub>
		</rule>
		<rule name="double quote text">
			<color>doubleQuoteText</color>
			<regex>(U|u|u8)?&quot;(.|\\[\\&quot;])*?&quot;</regex> <!-- " -->
		</rule>
		<rule name="simple quote text">
			<color>doubleQuoteText</color>
			<regex>&apos;\\?.&apos;</regex>
		</rule>
	</pass1>
	<pass2> <!-- Parse on display data ==> nor regenerate every display but every time modification apear -->
		<rule name="my keyword">
			<color>keyword</color>
			<regex>\b(return|goto|if|else|case|default|switch|break|continue|while|do|for)\b</regex>
		</rule>
		<rule name="my function keyword">
			<color>systemFunction</color>
			<regex>\b(new|try|catch|print)\b</regex>
		</rule>
		<rule name="my type">
			<color>type</color>
			<regex>\b(boolean|byte|char|double|float|int|long|short|String|Object|Thread|void|enum)\b</regex>
		</rule>
		<rule name="my storage keyword">
			<color>storageKeyword</color>
			<regex>\b(import|package|extends|Override|implements|const|class|abstract|private|public|protected|final|const|static|transiant|volatile|interface)\b</regex>
		</rule>
		<rule name="my common Define">
			<color>commonDefine</color>
			<regex>\bnull\b</regex>
		</rule>
		<rule name="numeric constant">
			<color>number</color>
			<regex>\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b</regex>
		</rule>
		<rule name="my boolean">
			<color>boolean</color>
			<regex>\b(true|false)\b</regex>
		</rule>
		<rule name="BIG LETTER">
			<color>macro</color>
			<regex>\b[A-Z_][A-Z_0-9]{3,500}\b</regex>
		</rule>
		<rule name="java member">
			<color>memberClass</color>
			<regex>\bm_\w+\b</regex>
		</rule>
		<rule name="function input">
			<color>inputFunction</color>
			<regex>\b_\w+\b</regex>
		</rule>
		<rule name="Function name">
			<color>functionName</color>
			<regex>\b((\w|_)+[ \t]*\()</regex>
		</rule>
		<rule name="condition">
			<color>boolean</color>
			<regex>==|&lt;=|&gt;=|!=|&lt;{1,2}|&gt;{1,2}|&amp;&amp;|\{|\}</regex>
		</rule>
	</pass2>
	<pass name="doxyparse">
		<rule name="key">
			<color>doxygen-key</color>
			<regex>(@|\\)[\t ]*\w+</regex>
		</rule>
		<rule name="in-out">
			<color>doxygen-in-out</color>
			<regex>\[(in|in,out|out)\]</regex>
		</rule>
		<rule name="function input">
			<color>inputFunction</color>
			<regex>\b_\w+\b</regex>
		</rule>
	</pass>
	<pass name="TODO">
		<rule name="function input">
			<color>SYNTAX_ERROR</color>
			<regex>TODO[ \t]*:.*</regex>
		</rule>
	</pass>
</EdnLang>
