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