/* Oberon brush is contributed by BohdanT */
dp.sh.Brushes.Oberon = function()
{
	var keywords =	
'ARRAY AWAIT BEGIN BY CONST CASE CODE DO DIV DEFINITION END ELSE ELSIF EXIT FALSE FOR '+ 
'FINALLY IF IN IS IMPORT IMPLEMENTS LOOP MOD MODULE NIL OR OF OBJECT PROCEDURE POINTER '+
'RECORD REPEAT RETURN REFINES THEN TRUE TO TYPE UNTIL VAR WHILE WITH';

	this.regexList = [
		{ regex: new RegExp('\\(\\*[\\s\\S]*?\\*\\)', 'gm'),		css: 'comment' },  			// multiline comments (* *)
		{ regex: new RegExp('{(?!\\$)[\\s\\S]*?}', 'gm'),			css: 'directive'},  			// multiline comments { }
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },  			// one line
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// strings
		{ regex: dp.sh.RegexLib.DoubleQuotedString,css:'string'},
		{ regex: new RegExp('\\b[\\d\\.]+\\b', 'g'),				css: 'number' },			// numbers 12345
		{ regex: new RegExp('\\b[\\d\\.]+\\H+\\b', 'g'),				css: 'number' },			// numbers 12345
		{ regex: new RegExp('\\b[\\d\\.]+\\X+\\b', 'g'),				css: 'number' },			// numbers 12345
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' }			// keyword
		];

	this.CssClass = 'dp-oberon';
	this.Style =	'.dp-delphi .number { color: blue; }' +
					'.dp-delphi .directive { color: #008284; }' +
					'.dp-delphi .vars { color: #000; }';
}

dp.sh.Brushes.Oberon.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Oberon.Aliases	= ['oberon'];

