/**
 * Code Syntax Highlighter for C++(Windows Platform).
 * Version 0.0.1
 * Copyright (C) 2006 Shin, YoungJin.
 * http://www.jiniya.net/lecture/techbox/test.html
 * 
 * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General 
 * Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) 
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied 
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to 
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
 */

dp.sh.Brushes.Cpp = function()
{
	var datatypes = 
	'INPUT OUTPUT input output int INT bool BOOL reg REG wire WIRE net NET loc LOC period PERIOD IOSTANDARD SLEW DRIVE';

	var keywords = 
	"parameter PARAMETER module MODULE begin BEGIN initial INITIAL always ALWAYS end END " +
	"posedge negedge POSEDGE NEGEDGE assign ASSIGN endmodule ENDMODULE " + 
	"default delete deprecated dllexport dllimport do dynamic_cast " + 
	"else enum explicit extern if for friend goto inline " + 
	"mutable naked namespace new noinline noreturn nothrow " + 
	"thread throw true false try typedef typeid typename union " + 
	"using uuid virtual void volatile whcar_t while";

	this.regexList = [
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },			// one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },			// multiline comments
		{ regex: new RegExp(this.GetKeywords(datatypes), 'gm'),		css: 'datatypes' },
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' }
		];

	this.CssClass = 'dp-cpp';
}

dp.sh.Brushes.Cpp.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Cpp.Aliases	= ['cpp', 'c', 'c++'];
