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