SyntaxHighlighter.brushes.Cpp = function()
{
	var datatypes =
	'char bool BOOL double float int ' +
	'long short id void';

	var keywords = 
	'IBAction IBOutlet SEL YES NO readwrite readonly nonatomic nil NULL ' +
	'super self copy ' +
	'break case catch class const copy __finally __exception __try ' +
	'const_cast continue private public protected __declspec ' + 
	'default delete deprecated dllexport dllimport do dynamic_cast ' + 
	'else enum explicit extern if for friend goto inline ' + 
	'mutable naked namespace new noinline noreturn nothrow ' + 
	'register reinterpret_cast return selectany ' + 
	'sizeof static static_cast struct switch template this ' + 
	'thread throw true false try typedef typeid typename union ' + 
	'using uuid virtual volatile whcar_t while';

	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLineCComments,				css: 'comment' },
		{ regex: SyntaxHighlighter.regexLib.multiLineCComments,					css: 'comment' },
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,					css: 'string' },
		{ SyntaxHighlighter.regexLib.singleQuotedString,					css: 'string' },
		{ regex: new RegExp('^ *#.*', 'gm'),						css: 'preprocessor' },
		{ regex: new RegExp(this.getKeywords(datatypes), 'gm'),		css: 'datatypes' },
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },
		{ regex: new RegExp('\\bNS\\w+\\b', 'g'),					css: 'keyword' },
		{ regex: new RegExp('@\\w+\\b', 'g'),						css: 'keyword' }
		];

	this.CssClass = 'dp-objc';
	this.Style =	'.dp-objc .datatypes { color: #2E8B57; font-weight: bold;           	}';
}

SyntaxHighlighter.brushes.Cpp.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Cpp.aliases	= ['obj-c', 'objc', 'cpp'];

