dp.sh.Brushes.PlSql = function()
{
	var funcs	=	'';

	var keywords =	'access add all alter and any as asc audit between by char check cluster column comment compress connect create ' +
    'current date decimal default delete desc distinct drop else exclusive exists file float for from grant group having identified ' +
	'immediate in increment index initial insert integer intersect into is level like lock long maxextents minus mlslabel mode modify ' +
    'noaudit nocompress not nowait null number of offline on online option or order pctfree prior privileges public raw rename resource ' +
    'revoke row rowid rownum rows select session set share size smallint start successful synonym sysdate table then to trigger uid union ' +
    'unique update user validate values varchar varchar2 view whenever where with ' +
    'array at authid avg begin binary_integer body boolean bulk case char_base close ' +
    'coalesce collect commit constant currval cursor day declare ' +
    'do elsif end exception execute exit extends extract false fetch forall function ' +
    'goto heap hour if indicator interface interval isolation java ' +
    'limited loop max min minute mod month natural naturaln new nextval nocopy nullif ' +
    'number_base ocirowid opaque open operator organization others out package partition pls_integer ' +
    'positive positiven pragma private procedure raise range real record ref release return reverse rollback ' +
    'rowtype savepoint second separate space sql sqlcode sqlerrm stddev subtype sum ' +
    'time timestamp timezone_region timezone_abbr timezone_minute timezone_hour true type ' +
    'use variance when while work write year zone';

	var operators =	'';

	this.regexList = [
		{ regex: new RegExp('--(.*)$', 'gm'),						css: 'comment' },			// one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },		   // multiline comments
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// single quoted strings
		{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'number' },		// numbers
		//{ regex: new RegExp(this.GetKeywords(funcs), 'gmi'),		css: 'func' },				// functions
		//{ regex: new RegExp(this.GetKeywords(operators), 'gmi'),	css: 'op' },				// operators and such
		{ regex: new RegExp(this.GetKeywords(keywords), 'gmi'),		css: 'keyword' }			// keyword
		];

	this.CssClass = 'dp-plsql';
	this.Style =	'.dp-plsql .func { color: #ff1493; }' +
					'.dp-plsql .op { color: #808080; }' +
					'.dp-plsql .number { color: #C00000; }';
}

dp.sh.Brushes.PlSql.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.PlSql.Aliases	= ['plsql'];
