SyntaxHighlighter.brushes.UScript = function()
{
	// Copyright 2009 Grzegorz 'Raven' Zawadzki : http://turniej.unreal.pl/portfolio

	var datatypes = 
	'int name float byte array string vector rotator color sound texture material font pawn actor staticmesh mesh '+
	'ELightType ENetRole EPhysics EPhysics ENetMode EDrawType ERenderStyle ESoundSlot EMusicTransition ELightEffect';

	var functions = 
	'spawn forEach Rand Min Max Clamp Abs Sin Cos Tan Atan Exp Loge Sqrt Square '+
	'FRand FMin FMax FClamp LerpSmerp VSize '+
	'Normal Invert VRand MirrorVectorByNormal GetAxes '+
	'GetUnAxes RotRand OrthoRotation Normalize Len InStr Mid Left Right Caps Chr Asc Log '+
	'Warn Localize GotoState IsInState GetStateName StaticSaveConfig ResetConfig RandRange '+
	'ClassIsChildOf IsA Enable Disable GetPropertyText SetPropertyText GetEnum DynamicLoadObject SaveConfig';
	
	var keywords =	
	'class event function var const enum struct operator preoperator postoperator extends '+
	'native private editconst noexport config globalconfig static final bool skip defaultproperties '+
	'return out coerce optional nativereplication abstract transient export editinline replication '+
	'unreliable if then else reliable while break latent simulated true false local for switch case '+
	'localized exportstructs input forEach exec new state ignores collapsecategories hidecategories '+
	'placeable continue do until none self vector rotator structdefaultproperties super nousercreate '+
	'nativereplication within perobjectconfig dependson cacheexempt hidedropdown parseconfig '+
	'dontcollapsecategories editinlinenew instanced showcategories intristic notplaceable pointer '+
	'default duplicatetransient noimport protected public interp ';
	
	var preprocess =
	'`define `if `isdefined `else `endif `include `notdefined `undefine '+
	'`process `require `undef `error `warn `log `ifdef `ifndef `write `import `namespace `remove.start `remove.end `elsif';
	
	//var operators	= '! == != && ^^ || *= /= += -= ++ -- - + * / >> << >>> < > >= <= & ^ ~= % **';

	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
		{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// strings
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// strings
		{ regex: /^ *#.*/gm,						css: 'preprocessor' },
		{ regex: new RegExp(this.getKeywords(datatypes), 'gm'),		css: 'color1 bold' },
		{ regex: new RegExp(this.getKeywords(functions), 'gm'),		css: 'functions bold' },
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword bold' },
		{ regex: new RegExp(this.getKeywords(preprocess), 'gm'),	css: 'preprocessor' }
		];
};

SyntaxHighlighter.brushes.UScript.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.UScript.aliases= ['uc','unrealscript','uscript'];
