X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=api.lisp;fp=api.lisp;h=0000000000000000000000000000000000000000;hb=15694e94b48c2d8c7f9598fa5fcdaf451b7931c6;hp=0e291b209689f9891c4b1d6c5bbba46b1c39539e;hpb=a5621a5bf235313916f437a55d9998418ee26f5a;p=lml2.git diff --git a/api.lisp b/api.lisp deleted file mode 100644 index 0e291b2..0000000 --- a/api.lisp +++ /dev/null @@ -1,99 +0,0 @@ -;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- -;;;; ************************************************************************* -;;;; FILE IDENTIFICATION -;;;; -;;;; Name: api.lisp -;;;; Purpose: Macros for generating API documentation -;;;; Programmer: Kevin M. Rosenberg based on Matthew Danish's code -;;;; Date Started: Nov 2002 -;;;; -;;;; $Id: api.lisp,v 1.1 2003/06/20 04:12:29 kevin Exp $ -;;;; -;;;; This file, part of LML, is Copyright (c) 2002 by Kevin M. Rosenberg -;;;; and Copyright (c) 2002 Matthew Danish -;;;; -;;;; LML users are granted the rights to distribute and use this software -;;;; as governed by the terms of the GNU General Public License v2 -;;;; (http://www.gnu.org/licenses/gpl.html) -;;;; ************************************************************************* - -(in-package #:lml) - -;;; Copyright (c) 2002 Matthew Danish. -;;; All rights reserved. - -;;; Redistribution and use in source and binary forms, with or without -;;; modification, are permitted provided that the following conditions -;;; are met: -;;; 1. Redistributions of source code must retain the above copyright -;;; notice, this list of conditions and the following disclaimer. -;;; 2. Redistributions in binary form must reproduce the above copyright -;;; notice, this list of conditions and the following disclaimer in the -;;; documentation and/or other materials provided with the distribution. -;;; 3. The name of the author may not be used to endorse or promote products -;;; derived from this software without specific prior written permission. -;;; -;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -;;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -;;; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -;;; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -;;; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -;;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -;;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -;;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -;;; For an example, see Matthew Danish's cl-ftp documentation at -;;; http://www.mapcar.org/~mrd/cl-sql/ - -(defmacro api-list (&body body) - `(ul ,@(loop for item in body collect `(li ,item)))) - -(defun stringify (x) - (let ((*print-case* :downcase)) - (if (null x) - "()" - (format nil "~A" x)))) - -(defmacro with-class-info ((class-name superclasses &rest slot-docs) &body other-info) - `(p (i "Class ") (b ,(stringify class-name)) - (i " derived from ") ,(stringify superclasses) " -- " (br) - (i "Initargs:") (br) - (ul - ,@(loop for (slot-name slot-desc slot-default) in slot-docs collect - `(li (tt ,(format nil ":~A" slot-name)) - " -- " ,slot-desc " -- " (i "Default: ") - ,(if (eql slot-default :n/a) - "Not specified" - (format nil "~S" slot-default))))) - ,@other-info)) - -(defmacro with-macro-info ((macro-name &rest lambda-list) &body other-info) - `(p (i "Macro ") (b ,(stringify macro-name)) " " - (tt ,(stringify lambda-list)) (br) - ,@other-info)) - -(defmacro with-function-info ((function-name &rest lambda-list) &body other-info) - `(p (i "Function ") (b ,(stringify function-name)) " " - (tt ,(stringify lambda-list)) - (br) ,@other-info)) - -(defmacro with-condition-info ((condition-name supers &rest slot-docs) &body other-info) - `(p (i "Condition ") (b ,(stringify condition-name)) - (i " derived from ") ,(stringify supers) " -- " (br) - (i "Slots:") (br) - (ul - ,@(loop for (slot-name slot-desc slot-reader slot-initarg slot-default) in slot-docs collect - `(li (tt ,(stringify slot-name)) - " -- " ,slot-desc " -- " (i " Default: ") - ,(if (eql slot-default :n/a) - "Not specified" - (format nil "~S" slot-default))))) - ,@other-info)) - -(defmacro with-functions (&rest slots) - `(progn ,@(loop for (fn description . args) in slots collect - `(with-function-info (,fn ,@(if args args - '(connection-variable))) - ,description))))