dp.sh.Brushes.C = function()
{
	var keywords =	'and and_eq asm auto bitand bitor bool break case catch char class compl ' +
			'const const_cast continue default delete do double dynamic_cast else ' +
			'enum explicit export extern false float for friend goto if inline int long mutable ' +
			'namespace new not not_eq operator or or_eq private protected public register ' +
			'reinterpret_cast return short signed sizeof static static_cast struct switch template this ' +
			'throw true try typedef typeid typename union unsigned using virtual void ' +
			'volatile wchar_t while xor xor_eq';

	this.regexList = [
		{ regex: new RegExp('#.*$', 'gm'), css: 'preprocessor' },			// comments
		{ 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' }		// java keyword
		];

	this.CssClass = 'dp-c';
}

dp.sh.Brushes.C.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.C.Aliases	= ['c'];

