dp.sh.Brushes.Lisp = function()
{
	var keywords =	'cond if when for each all while let let* progn prog1 ' +
                        'reading writing selectq ecase case loop upto below '   +
                        'setq setf incr incf decf lambda labels idx-bloop '     +
                        'idx-dloop idx-eloop idx-biloop idx-diloop idx-eiloop ' +
                        'defun defmacro de mapcar eval-when load nil';
       
        var userfuncs = 'matrix float-matrix idx-ptr idx-srg idx-mods idx-dims '+
                        'cinline';
        var highlighted = keywords; // + ' ' + userfuncs;
		
	this.regexList = [
{ regex: new RegExp(';.*$', 'gm'),				css: 'comment' },			// one line comments
{ regex: new RegExp('(["]{1,3})(?:[\\s\\S])*?\\1', 'g'),        css: 'string' },                        // single and triple quoted strings
{ regex: new RegExp('#\\|[\\s\\S]*?\\|#', 'g'),			css: 'comment' },			// multiline comments
{ regex: new RegExp(this.GetKeywords(highlighted), 'igm'),        css: 'keyword' },
        // keywords
{ regex: new RegExp('\\*[^)\\s]+\\*', 'g'),		        css: 'vars' },			        // globals
{ regex: new RegExp('\\+[^)\\s]+\\+', 'g'),		        css: 'vars' },			        // constants
{ regex: new RegExp('\\:[^)\\s]+', 'g'),		        css: 'vars' },			        // keys
{ regex: new RegExp('<[^)\\s]+>', 'g'),	               	        css: 'vars' }			        // parameters
                          ];

	this.CssClass = 'dp-lisp';
}

dp.sh.Brushes.Lisp.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Lisp.Aliases	= ['lisp', 'lush', 'cl'];
