dp.sh.Brushes.Scala = function()
{
	var keywords =	'abstract case catch class def do else extends false final '+
			'finally for forSome if implicit import lazy match new null '+
			'object override package private protected requires return sealed '+
			'super this throw trait try true type val var while with yield';

	var keyops =	'[_:=><%#@]+';

	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' },		// strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,								css: 'string' },		// strings
		{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'number' },		// numbers
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),					css: 'keyword' },		// scala keyword
		{ regex: new RegExp(keyops, 'gm'),					css: 'keyword' },		// scala keyword
		{ regex: new RegExp('(?!\\@interface\\b)\\@[\\$\\w]+\\b', 'g'),			css: 'annotation' }	// annotation @anno
		];

	this.CssClass = 'dp-sc';
	this.Style =	'.dp-sc .annotation { color: #646464; }' +
					'.dp-sc .number { color: #C00000; }';

}

dp.sh.Brushes.Scala.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Scala.Aliases	= ['scala'];
