dp.sh.Brushes.ActionScript = function()
{
	var keywords =	'abstract boolean break byte case catch char const continue debugger ' +
					'default delete do double else enum export extends false final finally float ' +
					'for function goto if implements import in instanceof int interface long native ' +
					'new null private protected public return short static super switch ' +
					'synchronized this throw throws transient true try typeof volatile while with';
					
	var definitions = 'var class package';
	
	var types = 'Array Boolean Number Object int unit String void Event';

	this.regexList = [
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'as_comment' },			// one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'as_comment' },			// multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'as_string' },			// double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'as_string' },			// single quoted strings
		{ regex: new RegExp('^\\s*#.*', 'gm'),						css: 'as_preprocessor' },		// preprocessor tags like #region and #endregion
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'as_keyword' },			// keywords
		{ regex: new RegExp(this.GetKeywords(definitions), 'gm'),	css: 'as_definition' },			// definition
		{ regex: new RegExp(this.GetKeywords(types), 'gm'),			css: 'as_type' }			// type
		];

	this.CssClass = 'dp-c';
}

dp.sh.Brushes.ActionScript.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.ActionScript.Aliases	= ['as', 'actionscript'];
