ACC SHELL
# 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 2, 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 <jec@dcs.ed.ac.uk>"
version 1.3
requires a2ps 4.13
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
ACC SHELL 2018