| Allegro CL version 8.2 Unrevised from 8.1 to 8.2. 8.1 version |
Arguments: namespec lambda-list prop kind &optional def
This macro defines a handler for the declaration named by namespec. augment-environment uses the information provided by this macro when processing declarations.
The arguments are:
(inline inline)
or
(inline notinline)
. This classification allows
proper shadowing of declarations as they are propagated into inward
contours, so that for example a free inline declaration will shadow
any other notinline declaration by virtue of its presence as the
first declaration of the inline class to be found.
nil
can be
given for this argument, in which case declarations in the global
environment are ignored, and augment-environment to a global environment
silently ignores that declaration.
:variable
,
:function
, :both
, or
:declare
. It determines how the declaration is
treated, and the first value returned from the parsing function
defined by define-declaration.
nil
, a function is created with default
actions, which assumes the declaration is to be of the form
(decl name1 name2 ... nameN)
. If the body is
specified, it must return two values, according to the definition in
CLtL-2 p 213 (with the two exceptions that kind might be :both, which
follows the same rules for both :variable and :function, and also if
the kind is :declare, the list returned is a list of (list key value)
instead of the cons that is specified there, to ease the consistency
of the implementation).
See environments.htm for more information on environments.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.1 page.
Created 2010.1.21.
| Allegro CL version 8.2 Unrevised from 8.1 to 8.2. 8.1 version |