<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language _name="Vala" version="1.0" _section="Sources" mimetypes="text/x-vala">
	
	<escape-char>\</escape-char>

	<string _name = "String" style = "String" end-at-line-end = "TRUE">
		<start-regex>&quot;</start-regex>
		<end-regex>&quot;</end-regex>
	</string>

	<string _name = "String 2" style = "String" end-at-line-end = "TRUE">
		<start-regex>&apos;</start-regex>
		<end-regex>&apos;</end-regex>
	</string>

	<string _name = "Multiline String" style = "String" end-at-line-end = "FALSE">
		<start-regex>@&quot;([^&quot;]|&quot;&quot;)*</start-regex>
		<end-regex>&quot;</end-regex>
	</string>

	<line-comment _name = "Line Comment" style= "Comment">
		<start-regex>//</start-regex>
	</line-comment>

	<block-comment _name = "Block Comment" style = "Comment">
		<start-regex>/\*</start-regex>
        	<end-regex>\*/</end-regex>
	</block-comment>
	
	<keyword-list _name = "Keywords" style = "Keyword" case-sensitive="TRUE">
		<keyword>callback</keyword>
		<keyword>class</keyword>
		<keyword>enum</keyword>
		<keyword>flags</keyword>
		<keyword>interface</keyword>
		<keyword>namespace</keyword>
		<keyword>signal</keyword>
		<keyword>struct</keyword>
		<keyword>using</keyword>
		<!--modifiers -->
		<keyword>abstract</keyword>
		<keyword>const</keyword>
		<keyword>extern</keyword>
		<keyword>lock</keyword>
		<keyword>out</keyword>
		<keyword>override</keyword>
		<keyword>private</keyword>
		<keyword>protected</keyword>
		<keyword>public</keyword>
		<keyword>ref</keyword>
		<keyword>static</keyword>
		<keyword>virtual</keyword>
		<keyword>volatile</keyword>
		<keyword>weak</keyword>
		<!-- others -->
		<keyword>base</keyword>
		<keyword>break</keyword>
		<keyword>case</keyword>
		<keyword>catch</keyword>
		<keyword>construct</keyword>
		<keyword>continue</keyword>
		<keyword>default</keyword>
		<keyword>do</keyword>
		<keyword>else</keyword>
		<keyword>false</keyword>
		<keyword>finally</keyword>
		<keyword>for</keyword>
		<keyword>foreach</keyword>
		<keyword>get</keyword>
		<keyword>if</keyword>
		<keyword>in</keyword>
		<keyword>is</keyword>
		<keyword>new</keyword>
		<keyword>null</keyword>
		<keyword>return</keyword>
		<keyword>set</keyword>
		<keyword>sizeof</keyword>
		<keyword>switch</keyword>
		<keyword>this</keyword>
		<keyword>throw</keyword>
		<keyword>throws</keyword>
		<keyword>true</keyword>
		<keyword>try</keyword>
		<keyword>typeof</keyword>
		<keyword>value</keyword>
		<keyword>var</keyword>
		<keyword>void</keyword>
		<keyword>while</keyword>
	</keyword-list>

	<keyword-list _name = "Primitives" style = "Data Type" case-sensitive="TRUE">
		<keyword>bool</keyword>
		<keyword>char</keyword>
		<keyword>double</keyword>
		<keyword>float</keyword>
		<keyword>int</keyword>
		<keyword>int16</keyword>
		<keyword>int32</keyword>
		<keyword>int64</keyword>
		<keyword>long</keyword>
		<keyword>short</keyword>
		<keyword>string</keyword>
		<keyword>uchar</keyword>
		<keyword>uint</keyword>
		<keyword>uint16</keyword>
		<keyword>uint32</keyword>
		<keyword>uint64</keyword>
		<keyword>ulong</keyword>
		<keyword>unichar</keyword>
		<keyword>ushort</keyword>
	</keyword-list>
</language>
