/**
 *  Author: Adam Rosenfield
 *  http://adamrosenfield.com/
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, version 3 of the License.
 *
 *  This program 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 General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

dp.sh.Brushes.Lisp = function()
{
    var keywords = 'block car cdr catch cons defun do eq eql equal equalp eval-when flet format go if labels lambda let load-time-value locally macrolet multiple-value-call nil progn progv quote require return-from setq symbol-macrolet t tagbody the throw unwind'

    this.regexList = [
        { regex: new RegExp(';.*$', 'gm'), css: 'comment' },
        { regex: dp.sh.RegexLib.DoubleQuotedString, css: 'string' },
        { regex: new RegExp(this.GetKeywords(keywords), 'gm'), css: 'keyword' },
        { regex: new RegExp('[()]', 'g'), css: 'delim' },
        { regex: new RegExp('\'[^ \\t\\r\\n()]*', 'g'), css: 'symbol' }
    ];

    this.CssClass = 'dp-lisp';
    this.Style = '.dp-lisp .delim { font-weight: bold; }' +
                 '.dp-lisp .symbol { color: #000a70; }';
}

dp.sh.Brushes.Lisp.prototype = new dp.sh.Highlighter();
dp.sh.Brushes.Lisp.Aliases = ['lisp', 'elisp', 'emacs-lisp', 'common-lisp', 'scheme'];
