dp.sh.Brushes.Servoy = function()
{
	var keywords =	'abstract boolean break byte case catch char class const continue debugger ' +
					'default delete do else enum export extends final finally float for ' +
					'Function if implements import in instanceof interface package return super switch ' +
					'this throw throws transient try typeof var void while with';
	
	var servoy =	'application controller currentcontroller databaseManager elements forms foundset ' +
					'globals history i18n plugins security ServoyException utils';
	
	var special =	'null undefined NaN';
	
	var devnotes =	'TODO MEMO';
	
	this.regexList = [
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },			// one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },			// multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// single quoted strings
		{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'number' },// numbers
		{ regex: new RegExp('\&lt;(?:=)*|&gt;(?:=)*|!(?:=)*|[[]|]|(?:==)', 'gm'), css: 'keyword'},// comparison, square []
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' },			// keywords
		{ regex: new RegExp(this.GetKeywords(servoy), 'gm'),		css: 'servoy' },			// servoy words
		{ regex: new RegExp(this.GetKeywords(special), 'gm'),		css: 'special' },			// special red words
		{ regex: new RegExp('//[TODO,MEMO].*$', 'gm'),				css: 'devnotes' },			// todo developer notes
		{ regex: new RegExp('[*-]|[+]|=[^=]|[/][^/*]', 'gm'),		css: 'special' },			// operators
		{ regex: new RegExp('[(){}]', 'gm'),						css: 'string' }				// brackets () {}
		];

	this.CssClass = 'dp-servoy';
}

dp.sh.Brushes.Servoy.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Servoy.Aliases	= ['servoy'];

