# Style sheet for common-lisp # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # 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; either version 3, or (at your option) # any later version. # # 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; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.2 Akim Demaille # Beware of \", highlight defvar. style "Common Lisp" is written by "Juliusz Chroboczek " version 1.3 requires a2ps 4.12a documentation is "It is not very clear what should be considered as a `keyword' in" "Common Lisp. I like binders, control structures and declarations to" "be highlighted, but not assignments." "" "Names of defstructs are not highlighted because this would not work" "with defstruct options." end documentation # what's a sensible way of handling `:', `\' and `|' ? first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-%$+*&-/<=>@_!?.[]^{}~" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789-%$+*&-/<=>@_!?#.[]^{}~" keywords in Keyword_strong are block, catch, "case", ccase, ecase, typecase, etypecase, ctypecase, cond, define-modify-macro, define-setf-method, defstruct, destructuring-bind, do, do*, dolist, dotimes, eval-when, flet, labels, macrolet, if, lambda, let, let*, compiler-let, locally, multiple-value-bind, prog, prog*, prog1, prog2, progn, progv, return, return-from, tagbody, throw, unless, unwind-protect, when, loop, in-package, defpackage, declare, declaim, proclaim, multiple-value-prog1 end keywords optional keywords are lambda \lambda, "/=" \neq, "<=" \leq, ">=" \geq end keywords operators are # Protect `"' behind `\' (/\\\\(.)/ "\\" Plain, \1 Plain) end operators sequences are ";;;" Comment_strong, ";" Comment, "#|" Comment Comment "|#" Comment, (/\\(/ /(def(/ /constant|parameter|un|var|macro|generic|method|/ /type|class|setf/ /))/ /([ \t]+)/ "(" Plain, \1 Keyword_strong, \3 Plain) Label_strong /[)[:space:]]/ Plain, C-string end sequences end style