Package COM.INFORMATIMAGO.COMMON-LISP.LISP-SEXP.SOURCE-FORM

This package exports functions to parse and manipulate
Common Lisp sources as lisp forms (such as in macros).

Copyright Pascal J. Bourguignon 2003 - 2016
This package is provided under the GNU Affero General Public License.
See the source file for details.
auxiliary-parameter
class
An auxiliary parameter.
Class precedence list: AUXILIARY-PARAMETER PARAMETER-WITH-INITFORM PARAMETER STANDARD-OBJECT T
Class init args: NAME INITFORM

BOA-LAMBDA-LIST

body-parameter
class
A &BODY parameter.
Class precedence list: BODY-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME

DECLARATIONS-HASH-TABLE

DESTRUCTURING-LAMBDA-LIST

ENSURE-PARAMETER-KEYWORD

environment-parameter
class
An &ENVIRONMENT parameter.
Class precedence list: ENVIRONMENT-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME
(extract-body body)
function
RETURN: The list of body forms.

NOTE:   This parses the body as a lambda body.
        It's better to use PARSE-BODY directly.
(extract-declarations body &optional allow-docstring)
function
RETURN: The list of declaration forms.

NOTE:   This parses the body as a lambda body.
        It's better to use PARSE-BODY directly.
(extract-documentation body)
function
RETURN: The documentation string found in BODY, or NIL if none is present.

CLHS:   3.4.11 Syntactic Interaction of Documentation Strings and
        Declarations

        In a number of situations, a documentation string can appear
        amidst a series of declare expressions prior to a series of
        forms.

        In that case, if a string S appears where a documentation
        string is permissible and is not followed by either a declare
        expression or a form then S is taken to be a form; otherwise,
        S is taken as a documentation string. The consequences are
        unspecified if more than one such documentation string is
        present.

NOTE:   This parses the body as a lambda body.
        It's better to use PARSE-BODY directly.

EXTRACT-METHOD-BODY

EXTRACT-METHOD-DDL

EXTRACT-METHOD-DECLARATIONS

EXTRACT-METHOD-DOCUMENTATION

EXTRACT-METHOD-LAMBDA-LIST

EXTRACT-METHOD-QUALIFIERS

generic-keyword-parameter
class
A generic keyword parameter.
Class precedence list: GENERIC-KEYWORD-PARAMETER PARAMETER-WITH-KEYWORD GENERIC-OPTIONAL-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME KEYWORD

GENERIC-LAMBDA-LIST

generic-optional-parameter
class
An optional parameter in generic lambda-lists.
Class precedence list: GENERIC-OPTIONAL-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME
keyword-parameter
class
A keyword parameter.
Class precedence list: KEYWORD-PARAMETER PARAMETER-WITH-KEYWORD OPTIONAL-PARAMETER PARAMETER-WITH-INITFORM PARAMETER STANDARD-OBJECT T
Class init args: NAME INITFORM INDICATOR KEYWORD
lambda-list
class
An abstract lambda-list.
Class precedence list: LAMBDA-LIST STANDARD-OBJECT T
Class init args: LAMBDA-LIST

LAMBDA-LIST-ALLOW-OTHER-KEYS-P

LAMBDA-LIST-ALLOWED-KEYWORDS

LAMBDA-LIST-AUXILIARY-PARAMETERS

LAMBDA-LIST-AUXILIARY-PARAMETERS-P

LAMBDA-LIST-BODY-PARAMETER

LAMBDA-LIST-BODY-PARAMETER-P

LAMBDA-LIST-ENVIRONMENT-PARAMETER

LAMBDA-LIST-ENVIRONMENT-PARAMETER-P

LAMBDA-LIST-KEY-P

LAMBDA-LIST-KEYWORD-PARAMETERS

LAMBDA-LIST-KIND

LAMBDA-LIST-MANDATORY-PARAMETER-COUNT

LAMBDA-LIST-MANDATORY-PARAMETERS

LAMBDA-LIST-MANDATORY-PARAMETERS-P

LAMBDA-LIST-OPTIONAL-PARAMETER-COUNT

LAMBDA-LIST-OPTIONAL-PARAMETERS

LAMBDA-LIST-OPTIONAL-PARAMETERS-P

(lambda-list-parameters lambda-list)
generic-function
An ordered list of the parameters or destructuring-lambda-list instances.
(lambda-list-rest-p self)
generic-function
RETURN: Whether &REST or &BODY parameters are present.

LAMBDA-LIST-REST-PARAMETER

LAMBDA-LIST-REST-PARAMETER-P

LAMBDA-LIST-WHOLE-PARAMETER

LAMBDA-LIST-WHOLE-PARAMETER-P

MACRO-LAMBDA-LIST

MAKE-ARGUMENT-LIST

MAKE-ARGUMENT-LIST-FORM

MAKE-FLAT-ARGUMENT-LIST

MAKE-FLAT-ARGUMENT-LIST-FORM

MAKE-HELP

MAKE-LAMBDA-LIST

(make-parameter-list ll)
generic-function
Return a list of all the symbols naming parameters in the lambda list.

METHOD-COMBINATION-LAMBDA-LIST

MODIFY-MACRO-LAMBDA-LIST

optional-parameter
class
An optional parameter.
    Note that while auxiliary-parameter and optional-parameter have the
    same initform attribute, an optional-parameter is a different kind from
    an auxiliary-parameter, semantically.
Class precedence list: OPTIONAL-PARAMETER PARAMETER-WITH-INITFORM PARAMETER STANDARD-OBJECT T
Class init args: NAME INITFORM INDICATOR

ORDINARY-LAMBDA-LIST

ORIGINAL-LAMBDA-LIST

parameter
class
A generic parameter.
Class precedence list: PARAMETER STANDARD-OBJECT T
Class init args: NAME

PARAMETER-INDICATOR

PARAMETER-INDICATOR-P

PARAMETER-INITFORM

PARAMETER-INITFORM-P

PARAMETER-KEYWORD

PARAMETER-KEYWORD-P

PARAMETER-LABEL

PARAMETER-LAMBDA-LIST-KEYWORD

PARAMETER-NAME

(parameter-parameter-list parameter)
generic-function
Return a list of symbols naming parameters for a parameter object.
In the case of &optional or &key parameters, the result may contain two symbols:
one for the parameter and one for the indicator.

PARAMETER-SPECIALIZER

PARAMETER-SPECIALIZER-P

(parameter-specifier parameter)
generic-function
Return a parameter specifier sexp, which can be used to build a lambda list.
(parse-body where body)
function
WHERE:          (member :lambda :locally :progn) specifies where the
                body is found, that is whether it may contains
                docstrings and declarations, or just declarations, or
                none.

BODY:           A list of forms.

RETURN:         Three values: a list containing one docstring or nil,
                a list of declarations, a list of forms.
(parse-lambda-list lambda-list &optional kind)
function
DO:      Parse a lambda-list of the specified kind.
KIND:    (MEMBER :ORDINARY :BOA :SPECIALIZED :MODIFY-MACRO :GENERIC
                 :MACRO :TYPE :DESTRUCTURING :SETF :METHOD-COMBINATION)
RETURN:  A lambda-list instance.

NOTE:    In the case of :macro, :destructuring lambda lists, some
         parameter lists may further contain destructuring-lambda-list
         instances instead of lambda-list-parameter instances.

PARSE-ORIGINAL-LAMBDA-LIST

rest-parameter
class
A &REST parameter.
Class precedence list: REST-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME

SETF-LAMBDA-LIST

SPECIALIZED-LAMBDA-LIST

specialized-parameter
class
A specialized parameter.
Class precedence list: SPECIALIZED-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME SPECIALIZER

TYPE-LAMBDA-LIST

whole-parameter
class
A &WHOLE parameter.
Class precedence list: WHOLE-PARAMETER PARAMETER STANDARD-OBJECT T
Class init args: NAME