diff options
Diffstat (limited to 'static-files/journal/prettify/lang-lisp.js')
-rw-r--r-- | static-files/journal/prettify/lang-lisp.js | 103 |
1 files changed, 14 insertions, 89 deletions
diff --git a/static-files/journal/prettify/lang-lisp.js b/static-files/journal/prettify/lang-lisp.js index 60cf97d..2f18c96 100644 --- a/static-files/journal/prettify/lang-lisp.js +++ b/static-files/journal/prettify/lang-lisp.js @@ -1,93 +1,18 @@ -// Copyright (C) 2008 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + Copyright (C) 2008 Google Inc. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -/** - * @fileoverview - * Registers a language handler for Common Lisp and related languages. - * - * - * To use, include prettify.js and this file in your HTML page. - * Then put your code in an HTML tag like - * <pre class="prettyprint lang-lisp">(my lisp code)</pre> - * The lang-cl class identifies the language as common lisp. - * This file supports the following language extensions: - * lang-cl - Common Lisp - * lang-el - Emacs Lisp - * lang-lisp - Lisp - * lang-scm - Scheme - * - * - * I used http://www.devincook.com/goldparser/doc/meta-language/grammar-LISP.htm - * as the basis, but added line comments that start with ; and changed the atom - * production to disallow unquoted semicolons. - * - * "Name" = 'LISP' - * "Author" = 'John McCarthy' - * "Version" = 'Minimal' - * "About" = 'LISP is an abstract language that organizes ALL' - * | 'data around "lists".' - * - * "Start Symbol" = [s-Expression] - * - * {Atom Char} = {Printable} - {Whitespace} - [()"\''] - * - * Atom = ( {Atom Char} | '\'{Printable} )+ - * - * [s-Expression] ::= [Quote] Atom - * | [Quote] '(' [Series] ')' - * | [Quote] '(' [s-Expression] '.' [s-Expression] ')' - * - * [Series] ::= [s-Expression] [Series] - * | - * - * [Quote] ::= '' !Quote = do not evaluate - * | - * - * - * I used <a href="http://gigamonkeys.com/book/">Practical Common Lisp</a> as - * the basis for the reserved word list. - * - * - * @author mikesamuel@gmail.com - */ + http://www.apache.org/licenses/LICENSE-2.0 -PR.registerLangHandler( - PR.createSimpleLexer( - [ - ['opn', /^\(|\[/, null, ''], - ['clo', /^\)|\]/, null, ''], - // A line comment that starts with ; - [PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'], - // Whitespace - [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], - // A double quoted, possibly multi-line, string. - [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] - ], - [ - [PR.PR_KEYWORD, /^(?:block|c[ad]+r|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|loop|with--*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?|define--*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?|for|in|from|to|fn|defn|def)\b/, null], - [PR.PR_LITERAL, - /^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], - // A single quote or a colon possibly followed by a word that optionally ends with - // = ! or ?. - [PR.PR_LITERAL, - /^(\'|\:)(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], - // A word that optionally ends with = ! or ?. - [PR.PR_PLAIN, - /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], - // A printable non-space non-special character - [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\\\';]+/] - ]), - ['cl', 'el', 'lisp', 'scm']); + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|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)\b/, +null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); |