The defenum Reference Manual

This is the defenum Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:15:51 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 defenum

The DEFENUM facility provides C++ and Java styled ’enum’ in Common Lisp.

Author

Marco Antoniotti

License

BSD

Source

defenum.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 defenum/defenum.asd

Source

defenum.asd.

Parent Component

defenum (system).

ASDF Systems

defenum.


3.1.2 defenum/defenum-package.lisp

Source

defenum.asd.

Parent Component

defenum (system).

Packages

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.


3.1.3 defenum/lambda-list-parsing.lisp

Dependency

defenum-package.lisp (file).

Source

defenum.asd.

Parent Component

defenum (system).

Internals

3.1.4 defenum/defenum.lisp

Dependencies
Source

defenum.asd.

Parent Component

defenum (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum

The package containing the DEFENUM reference implementation.

Source

defenum-package.lisp.

Nicknames
  • defenum
  • common-lisp.extensions.defenum
  • cl.ext.defenum
  • enum-types
Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: defenum (name (&rest tags-specs) &optional slots &rest options-and-methods)

The DEFENUM macro defines an extended enumerated type in the environment.

The extended enumerated types are called ’enums’ and are akin to
both C/C++ and Java (5.0 and later) enums. The main idea is to provide an enumerated type with symbolic tags and auxiliary
functionality in order to make this concept available in Common Lisp.

The DEFENUM macro is the entry point to the enum type’s definition.
The syntax accommodates both simple and sophisticated cases.

NAME names the enum type and eventually also a
function that maps ’tags’ to their ’implementation’. Tags can be
’simple’, i.e., symbolic, or ’structured’, in which case they are
actually structure objects that are themselves the ’range’ of an
implicit ’map’ with symbols in the ’domain’.

TAGS-SPECS is a list of tag specifications (tag-spec). A tag-spec has
the following (Common Lisp) syntax:

<pre>
tag-spec ::= SYMBOL
| (SYMBOL)
| (SYMBOL N)
| (SYMBOL (&rest args) &rest tag-methods)
| (SYMBOL N (&rest args) &rest tag-methods)
</pre>

Each SYMBOL is the symbolic tag. N is an integer constant. The first
three forms are the ’simple’ case, which corresponds to the
traditional C/C++ case. The other two cases correspond to
the ’structured’ case. ’args’ is a list of arguments to be passed
to the structured tag constructor. ’tag-methods’ is a list of method
specs similar to the ’enum methods’ specified in OPTIONS-AND-METHODS (see below) that will be EQL-specialized on the symbolic and associated fixnum
values; these method specifications admit a simplified lambda
argument list, which has an implicit first argument provided by DEFENUM.

SLOTS is a list of ’slot specifications’ like those in DEFSTRUCT.
Specifing any slot ensures that the implementation will generate a
number of specialized functions and methods that will be able to deal
with ’structured tags’. Each slot has a ’slot-name’ and is specified as read-only. Each slot has a reader named NAME-slot-name; all slots are automatically declared ’read only’.

OPTIONS-AND-METHODS is a list of ’options’ and ’enum methods’. The options are lists with a keyword in first position. The only option
recognized at this time is :DOCUMENTATION, with a second argument a
(doc) string, which will be associated to the enum type. The ’enum
methods’ specifications have the following form:

<pre>
enum-meth-spec ::= (:method M-NAME QUAL* ARGS &BODY M-BODY)
</pre>

M-NAME is the method name, QUAL is a method qualifier (zero or more),
ARGS is a specialized lambda-list, whose first argument is treated specially, and M-BODY is a normal method body. The first argument of
the lambda list is treated specially if it is specialized on T (cfr.,
not specialized) or it is specialized on the enum type NAME.
References to slot names in M-BODY are substituted with appropriate
calls to the slot reader functions.

Arguments and Values:

NAME : a SYMBOL.
TAG-SPECS : a list of ’enum tags’ specifications.
SLOTS : a list of ’slot specifications’.
OPTIONS-AND-METHODS : a list of ’options’ and (enum specific) ’methods’.

Examples:

cl-prompt> (defenum seasons (spring summer autumn winter))
#<ENUM SEASONS (SPRING SUMMER AUTUMN WINTER)>

cl-prompt> (seasons ’spring)
SPRING

cl-prompt> winter
3

cl-prompt> (seasons-p ’winter)
T

cl-prompt> (seasons winter) ; No quote.
WINTER

cl-prompt> (defenum operation
((PLUS () (:method evaluate (x y) (+ x y)))
(MINUS () (:method evaluate (x y) (- x y)))
(TIMES () (:method evaluate (x y) (* x y)))
(DIVIDE () (:method evaluate (x y) (/ x y))) ))
#<ENUM OPERATION (PLUS MINUS TIMES DIVIDE)>

cl-prompt> (typep ’divide ’operation)
T

cl-prompt> (evaluate times 2 pi)
6.283185307179586D0

cl-prompt> (evaluate ’plus 40 2)
42

cl-prompt> (defenum (colors (:initargs (r g b)))
((red (255 0 0))
(green (0 255 0))
(blue (0 0 255))
(white (255 255 255))
(black (0 0 0))
)
((r 0 :type (integer 0 255) :read-only t)
(g 0 :type (integer 0 255) :read-only t)
(b 0 :type (integer 0 255) :read-only t) )
(:documentation "The Colors Enum."))
#<ENUM COLORS (RED GREEN BLUE WHITE BLACK)>

cl-prompt> (colors-r red)
255

cl-prompt> (colors-g white)
255

cl-prompt> (documentation ’colors ’type)
"The Colors Enum."

cl-prompt> (previous-enum-tag ’colors ’green)
#<COLORS TAG RED>

cl-prompt> (previous-enum-tag ’colors *)
NIL

Notes:

The DEFENUM macro is inspired by Java ’enum’ classes; it offers
all the facilities of the Java version, while also retaining the C/C++
’enum tags are integers’ feature.

The use of the DEFENUM enumeration types has some limitations, due, of course, to Common Lisp’s slack typing and a few implementation choices.

The slot name references in the enum and tag methods are done via SYMBOL-MACROLET.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.


5.1.2 Ordinary functions

Reader: enum-name (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

name.

Function: find-enum (name &optional errorp environment)

Finds an enum with name NAME in the system.

FIND-ENUM behaves like FIND-CLASS. If ERRORP is true and no enum is found in the system an error is signaled. ENVIRONMENT is present for symmetry with FIND-CLASS and it is currently unused.

Arguments and Values:

NAME : a SYMBOL
ERRORP : a generalized boolean
ENVIRONMENT : an environment object (or NIL)
result : an ENUM instance or NIL.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: (setf find-enum) (name &optional errorp environment)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: next-enum-tag (e tag)

Given a tag designator TAG, returns the ’next’ tag in the enum E or NIL.

Arguments and Values:

enum : an enum designator (either an ENUM object or a SYMBOL).
tag : a tag designator (either a TAG object or a SYMBOL) or a FIXNUM. result : a tag designator or NIL.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: nth-enum-tag (n enum)

Returns the N-th tag in enum ENUM.

Arguments and Values:

N : a FIXNUM
ENUM : an enum designator (either an ENUM object or a SYMBOL). result1 : a tag designator.
result2 : whether a tag was actually found.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: previous-enum-tag (e tag)

Given a tag designator TAG, returns the ’previous’ tag in the enum E or NIL.

Arguments and Values:

enum : an enum designator (either an ENUM object or a SYMBOL). tag : a tag designator (either a TAG object or a SYMBOL) or a FIXNUM. result : a tag designator or NIL.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-name (e)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-of (e tag &optional errorp)

Returns the tag object designated by TAG in enum E.

Arguments and Values:

E : an enum designator (either an ENUM object or a SYMBOL).
TAG : a tag designator (either a TAG object or a SYMBOL) or a FIXNUM. ERRORP : a boolean.
RESULT : a tag designator.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-p (s)

Checks whether the argument is a valid tag for an enum.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tags (e)

Returns the tags of an enum.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.


5.1.3 Standalone methods

Method: print-object ((e enum) stream)
Source

defenum.lisp.

Method: print-object ((tag tag) stream)
Source

defenum.lisp.


5.1.4 Structures

Structure: enum

The (abstract) Enum Structure.

Every enum will be derived from this structure, which cannot be instantiated. All enums will be singletons and stored in an ’enum namespace’.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: name
Type

symbol

Readers

enum-name.

Writers

This slot is read-only.

Slot: tags
Type

list

Readers

enum-tags.

Writers

This slot is read-only.

Slot: constructor-arguments
Type

list

Readers

enum-constructor-arguments.

Writers

This slot is read-only.

Slot: length
Package

common-lisp.

Type

fixnum

Initform

0

Readers

enum-length.

Writers

This slot is read-only.

Slot: id-map
Initform

(make-hash-table :test (function eql))

Readers

enum-id-map.

Writers

(setf enum-id-map).


5.2 Internals


5.2.1 Special variables

Special Variable: *enums-namespace*

The ’enum namespace’.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.


5.2.2 Ordinary functions

Reader: %tag-enum (instance)
Writer: (setf %tag-enum) (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

enum.

Reader: %tag-name (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

name.

Function: %tag-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-defstruct (name enum-defstruct-name enum-defstruct-cons-name)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-deftype (name tags documentation)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-fixnum-method (name m)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-function (name)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-initialization (name symbolic-tags-p enum-defstruct-cons-name tag-defstruct-cons-name tags-specs)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-method (name m tag-defstruct-name slot-names slot-accessors)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-method-body (name self-variable slot-names slot-accessors m-body)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-method-redispatch-body (name method-name tag-self-var args)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-methods (name methods tag-defstruct-name tag-names tag-specs slots)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-predicate (name)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-tag-defstruct (enum-name tag-defstruct-name tag-defstruct-cons-name symbolic-tags-p initargs slots)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-tag-method (name m tag-defstruct-name tag)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-tag-methods (name m tag-defstruct-name tags-names tags-methods-table)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: build-enum-tag-slot-readers (name tags tag-defstruct-name slots)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: canonicalize-tags-specs (tags-specs)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: copy-destructuring-lambda-list (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-generic-function-lambda-list (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-lambda-list-item (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-lambda-list-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-macro-lambda-list (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-method-spec (sequence)

Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Alias for

copy-seq.

Function: copy-ordinary-lambda-list (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-specialized-lambda-list (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: copy-tag-spec (sequence)

Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Alias for

copy-seq.

Function: destructuring-lambda-list-allow-other-keys (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: destructuring-lambda-list-auxiliary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: destructuring-lambda-list-keyword-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: destructuring-lambda-list-optional-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: destructuring-lambda-list-ordinary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: destructuring-lambda-list-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: destructuring-lambda-list-rest-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Reader: enum-constructor-arguments (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

constructor-arguments.

Reader: enum-id-map (instance)
Writer: (setf enum-id-map) (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

id-map.

Reader: enum-length (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

length.

Function: enum-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Reader: enum-tags (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Target Slot

tags.

Function: generic-function-lambda-list-allow-other-keys (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: generic-function-lambda-list-auxiliary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: generic-function-lambda-list-keyword-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: generic-function-lambda-list-optional-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: generic-function-lambda-list-ordinary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: generic-function-lambda-list-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: generic-function-lambda-list-rest-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: get-tag-from-id (enum id)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: (setf get-tag-from-id) (enum id)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: lambda-list-item-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: lambda-list-var-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Reader: ll-allow-other-keys (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

allow-other-keys.

Reader: ll-auxiliary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

auxiliary-vars.

Reader: ll-keyword-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

keyword-vars.

Reader: ll-optional-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

optional-vars.

Reader: ll-ordinary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

ordinary-vars.

Reader: ll-rest-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

rest-var.

Reader: lli-form (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

form.

Reader: lli-item (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

item.

Reader: lli-kind (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

kind.

Function: lli-name (lli)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: llv-form (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: llv-item (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: llv-kind (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: llv-name (lli)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: macro-lambda-list-allow-other-keys (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: macro-lambda-list-auxiliary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Reader: macro-lambda-list-body-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

body-var.

Reader: macro-lambda-list-env-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

env-var.

Function: macro-lambda-list-keyword-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: macro-lambda-list-optional-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: macro-lambda-list-ordinary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: macro-lambda-list-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: macro-lambda-list-rest-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Reader: macro-lambda-list-whole-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Target Slot

whole-var.

Function: make-destructuring-lambda-list (&optional ordinary-vars optional-vars rest-var keyword-vars allow-other-keys auxiliary-vars)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: make-generic-function-lambda-list (&optional ordinary-vars optional-vars rest-var keyword-vars allow-other-keys auxiliary-vars)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: make-macro-lambda-list (&optional whole-var env-var ordinary-vars optional-vars rest-var body-var keyword-vars allow-other-keys auxiliary-vars)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: make-method-spec (name quals args &rest body)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: make-ordinary-lambda-list (&optional ordinary-vars optional-vars rest-var keyword-vars allow-other-keys auxiliary-vars)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: make-specialized-lambda-list (&optional ordinary-vars optional-vars rest-var keyword-vars allow-other-keys auxiliary-vars)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: make-tag-spec (tag id &optional args &rest methods)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: method-spec-args (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: method-spec-body (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: method-spec-method-keyword (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: method-spec-name (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: method-spec-quals (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: mkllitem (item kind &optional form)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: mkllvar (item kind &optional form)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: new-symbol (template &rest args)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: ordinary-lambda-list-allow-other-keys (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: ordinary-lambda-list-auxiliary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: ordinary-lambda-list-keyword-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: ordinary-lambda-list-optional-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: ordinary-lambda-list-ordinary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: ordinary-lambda-list-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: ordinary-lambda-list-rest-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: parse-method-spec (ms)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: pll (ll-type ll &optional recur)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-allow-other-keys (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-auxiliary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-keyword-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-optional-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-ordinary-vars (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: specialized-lambda-list-rest-var (instance)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: t_lambda-list-p (object)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Function: tag-enum (td &optional errorp)

Returns the enum type where the tag designator TD belongs.

If TD is not a tag in an enum and ERRORP is non-NIL, an error is signaled. Otherwise NIL is returned.

Arguments and Values:

TD : a ’tag designator’
ERRORP : a generalized boolean (default NIL).
result : the ENUM object or NULL

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-name-internal (e)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-spec-args (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-spec-id (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-spec-methods (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Function: tag-spec-tag (structure)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.


5.2.3 Generic functions

Generic Function: ll-recall (ll)

Produces an ’actual’ argument list using the lambda list variables.

This function is useful in order to write code transformers. It
produces a proper argument list suitable for use with APPLY.

Examples:

cl-prompt> (ll-recall (parse-ll :ordinary
’(a b &optional (c 42) &key (baz 42) &aux (foo 123)))) (A B C :BAZ BAZ ())

cl-prompt> (ll-recall (parse-ll :ordinary
’(a b &rest more)))
(A B MORE)

cl-prompt> (ll-recall (parse-ll :ordinary
’(a b &rest keys &key (foo 42))))
(A B :FOO FOO KEYS)

Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Methods
Method: ll-recall ((ll t_lambda-list))
Generic Function: ll-vars (ll)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Methods
Method: ll-vars ((ll macro-lambda-list))
Method: ll-vars ((ll destructuring-lambda-list))
Method: ll-vars ((lli lambda-list-item))
Method: ll-vars ((ll t_lambda-list))
Generic Function: parse-ll (lltype ll)
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Methods
Method: parse-ll ((lltype (eql :macro)) ll)
Method: parse-ll ((lltype (eql :destructuring)) ll)
Method: parse-ll ((lltype (eql :generic-function)) ll)
Method: parse-ll ((lltype (eql :specialized)) ll)
Method: parse-ll ((lltype (eql :ordinary)) ll)

5.2.4 Structures

Structure: destructuring-lambda-list
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

t_lambda-list.

Direct subclasses

macro-lambda-list.

Direct methods

ll-vars.

Structure: generic-function-lambda-list
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

t_lambda-list.

Structure: lambda-list-item
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

structure-object.

Direct subclasses

lambda-list-var.

Direct methods

ll-vars.

Direct slots
Slot: item
Type

(or symbol it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum::t_lambda-list list)

Readers

lli-item.

Writers

This slot is read-only.

Slot: kind
Type

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum::lambda-list-var-type

Initform

(quote it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum::&reqvar)

Readers

lli-kind.

Writers

This slot is read-only.

Slot: form
Type

(or symbol cons)

Readers

lli-form.

Writers

This slot is read-only.

Structure: lambda-list-var
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

lambda-list-item.

Structure: macro-lambda-list
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

destructuring-lambda-list.

Direct methods

ll-vars.

Direct slots
Slot: whole-var
Type

list

Readers

macro-lambda-list-whole-var.

Writers

This slot is read-only.

Slot: env-var
Type

list

Readers

macro-lambda-list-env-var.

Writers

This slot is read-only.

Slot: body-var
Type

list

Readers

macro-lambda-list-body-var.

Writers

This slot is read-only.

Structure: ordinary-lambda-list
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

t_lambda-list.

Structure: specialized-lambda-list
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

t_lambda-list.

Structure: t_lambda-list
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

lambda-list-parsing.lisp.

Direct superclasses

structure-object.

Direct subclasses
Direct methods
Direct slots
Slot: ordinary-vars
Type

list

Readers

ll-ordinary-vars.

Writers

This slot is read-only.

Slot: optional-vars
Type

list

Readers

ll-optional-vars.

Writers

This slot is read-only.

Slot: keyword-vars
Type

list

Readers

ll-keyword-vars.

Writers

This slot is read-only.

Slot: rest-var
Type

list

Readers

ll-rest-var.

Writers

This slot is read-only.

Slot: auxiliary-vars
Type

list

Readers

ll-auxiliary-vars.

Writers

This slot is read-only.

Slot: allow-other-keys
Type

boolean

Readers

ll-allow-other-keys.

Writers

This slot is read-only.

Structure: tag
Package

it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum.

Source

defenum.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: enum
Type

symbol

Readers

%tag-enum.

Writers

(setf %tag-enum).

Slot: name
Type

symbol

Readers

%tag-name.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
B   C   D   E   F   G   L   M   N   O   P   S   T  
Index Entry  Section

%
%tag-enum: Private ordinary functions
%tag-name: Private ordinary functions
%tag-p: Private ordinary functions

(
(setf %tag-enum): Private ordinary functions
(setf enum-id-map): Private ordinary functions
(setf find-enum): Public ordinary functions
(setf get-tag-from-id): Private ordinary functions

B
build-enum-defstruct: Private ordinary functions
build-enum-deftype: Private ordinary functions
build-enum-fixnum-method: Private ordinary functions
build-enum-function: Private ordinary functions
build-enum-initialization: Private ordinary functions
build-enum-method: Private ordinary functions
build-enum-method-body: Private ordinary functions
build-enum-method-redispatch-body: Private ordinary functions
build-enum-methods: Private ordinary functions
build-enum-predicate: Private ordinary functions
build-enum-tag-defstruct: Private ordinary functions
build-enum-tag-method: Private ordinary functions
build-enum-tag-methods: Private ordinary functions
build-enum-tag-slot-readers: Private ordinary functions

C
canonicalize-tags-specs: Private ordinary functions
copy-destructuring-lambda-list: Private ordinary functions
copy-generic-function-lambda-list: Private ordinary functions
copy-lambda-list-item: Private ordinary functions
copy-lambda-list-var: Private ordinary functions
copy-macro-lambda-list: Private ordinary functions
copy-method-spec: Private ordinary functions
copy-ordinary-lambda-list: Private ordinary functions
copy-specialized-lambda-list: Private ordinary functions
copy-tag-spec: Private ordinary functions

D
defenum: Public macros
destructuring-lambda-list-allow-other-keys: Private ordinary functions
destructuring-lambda-list-auxiliary-vars: Private ordinary functions
destructuring-lambda-list-keyword-vars: Private ordinary functions
destructuring-lambda-list-optional-vars: Private ordinary functions
destructuring-lambda-list-ordinary-vars: Private ordinary functions
destructuring-lambda-list-p: Private ordinary functions
destructuring-lambda-list-rest-var: Private ordinary functions

E
enum-constructor-arguments: Private ordinary functions
enum-id-map: Private ordinary functions
enum-length: Private ordinary functions
enum-name: Public ordinary functions
enum-p: Private ordinary functions
enum-tags: Private ordinary functions

F
find-enum: Public ordinary functions
Function, %tag-enum: Private ordinary functions
Function, %tag-name: Private ordinary functions
Function, %tag-p: Private ordinary functions
Function, (setf %tag-enum): Private ordinary functions
Function, (setf enum-id-map): Private ordinary functions
Function, (setf find-enum): Public ordinary functions
Function, (setf get-tag-from-id): Private ordinary functions
Function, build-enum-defstruct: Private ordinary functions
Function, build-enum-deftype: Private ordinary functions
Function, build-enum-fixnum-method: Private ordinary functions
Function, build-enum-function: Private ordinary functions
Function, build-enum-initialization: Private ordinary functions
Function, build-enum-method: Private ordinary functions
Function, build-enum-method-body: Private ordinary functions
Function, build-enum-method-redispatch-body: Private ordinary functions
Function, build-enum-methods: Private ordinary functions
Function, build-enum-predicate: Private ordinary functions
Function, build-enum-tag-defstruct: Private ordinary functions
Function, build-enum-tag-method: Private ordinary functions
Function, build-enum-tag-methods: Private ordinary functions
Function, build-enum-tag-slot-readers: Private ordinary functions
Function, canonicalize-tags-specs: Private ordinary functions
Function, copy-destructuring-lambda-list: Private ordinary functions
Function, copy-generic-function-lambda-list: Private ordinary functions
Function, copy-lambda-list-item: Private ordinary functions
Function, copy-lambda-list-var: Private ordinary functions
Function, copy-macro-lambda-list: Private ordinary functions
Function, copy-method-spec: Private ordinary functions
Function, copy-ordinary-lambda-list: Private ordinary functions
Function, copy-specialized-lambda-list: Private ordinary functions
Function, copy-tag-spec: Private ordinary functions
Function, destructuring-lambda-list-allow-other-keys: Private ordinary functions
Function, destructuring-lambda-list-auxiliary-vars: Private ordinary functions
Function, destructuring-lambda-list-keyword-vars: Private ordinary functions
Function, destructuring-lambda-list-optional-vars: Private ordinary functions
Function, destructuring-lambda-list-ordinary-vars: Private ordinary functions
Function, destructuring-lambda-list-p: Private ordinary functions
Function, destructuring-lambda-list-rest-var: Private ordinary functions
Function, enum-constructor-arguments: Private ordinary functions
Function, enum-id-map: Private ordinary functions
Function, enum-length: Private ordinary functions
Function, enum-name: Public ordinary functions
Function, enum-p: Private ordinary functions
Function, enum-tags: Private ordinary functions
Function, find-enum: Public ordinary functions
Function, generic-function-lambda-list-allow-other-keys: Private ordinary functions
Function, generic-function-lambda-list-auxiliary-vars: Private ordinary functions
Function, generic-function-lambda-list-keyword-vars: Private ordinary functions
Function, generic-function-lambda-list-optional-vars: Private ordinary functions
Function, generic-function-lambda-list-ordinary-vars: Private ordinary functions
Function, generic-function-lambda-list-p: Private ordinary functions
Function, generic-function-lambda-list-rest-var: Private ordinary functions
Function, get-tag-from-id: Private ordinary functions
Function, lambda-list-item-p: Private ordinary functions
Function, lambda-list-var-p: Private ordinary functions
Function, ll-allow-other-keys: Private ordinary functions
Function, ll-auxiliary-vars: Private ordinary functions
Function, ll-keyword-vars: Private ordinary functions
Function, ll-optional-vars: Private ordinary functions
Function, ll-ordinary-vars: Private ordinary functions
Function, ll-rest-var: Private ordinary functions
Function, lli-form: Private ordinary functions
Function, lli-item: Private ordinary functions
Function, lli-kind: Private ordinary functions
Function, lli-name: Private ordinary functions
Function, llv-form: Private ordinary functions
Function, llv-item: Private ordinary functions
Function, llv-kind: Private ordinary functions
Function, llv-name: Private ordinary functions
Function, macro-lambda-list-allow-other-keys: Private ordinary functions
Function, macro-lambda-list-auxiliary-vars: Private ordinary functions
Function, macro-lambda-list-body-var: Private ordinary functions
Function, macro-lambda-list-env-var: Private ordinary functions
Function, macro-lambda-list-keyword-vars: Private ordinary functions
Function, macro-lambda-list-optional-vars: Private ordinary functions
Function, macro-lambda-list-ordinary-vars: Private ordinary functions
Function, macro-lambda-list-p: Private ordinary functions
Function, macro-lambda-list-rest-var: Private ordinary functions
Function, macro-lambda-list-whole-var: Private ordinary functions
Function, make-destructuring-lambda-list: Private ordinary functions
Function, make-generic-function-lambda-list: Private ordinary functions
Function, make-macro-lambda-list: Private ordinary functions
Function, make-method-spec: Private ordinary functions
Function, make-ordinary-lambda-list: Private ordinary functions
Function, make-specialized-lambda-list: Private ordinary functions
Function, make-tag-spec: Private ordinary functions
Function, method-spec-args: Private ordinary functions
Function, method-spec-body: Private ordinary functions
Function, method-spec-method-keyword: Private ordinary functions
Function, method-spec-name: Private ordinary functions
Function, method-spec-quals: Private ordinary functions
Function, mkllitem: Private ordinary functions
Function, mkllvar: Private ordinary functions
Function, new-symbol: Private ordinary functions
Function, next-enum-tag: Public ordinary functions
Function, nth-enum-tag: Public ordinary functions
Function, ordinary-lambda-list-allow-other-keys: Private ordinary functions
Function, ordinary-lambda-list-auxiliary-vars: Private ordinary functions
Function, ordinary-lambda-list-keyword-vars: Private ordinary functions
Function, ordinary-lambda-list-optional-vars: Private ordinary functions
Function, ordinary-lambda-list-ordinary-vars: Private ordinary functions
Function, ordinary-lambda-list-p: Private ordinary functions
Function, ordinary-lambda-list-rest-var: Private ordinary functions
Function, parse-method-spec: Private ordinary functions
Function, pll: Private ordinary functions
Function, previous-enum-tag: Public ordinary functions
Function, specialized-lambda-list-allow-other-keys: Private ordinary functions
Function, specialized-lambda-list-auxiliary-vars: Private ordinary functions
Function, specialized-lambda-list-keyword-vars: Private ordinary functions
Function, specialized-lambda-list-optional-vars: Private ordinary functions
Function, specialized-lambda-list-ordinary-vars: Private ordinary functions
Function, specialized-lambda-list-p: Private ordinary functions
Function, specialized-lambda-list-rest-var: Private ordinary functions
Function, tag-enum: Private ordinary functions
Function, tag-name: Public ordinary functions
Function, tag-name-internal: Private ordinary functions
Function, tag-of: Public ordinary functions
Function, tag-p: Public ordinary functions
Function, tag-spec-args: Private ordinary functions
Function, tag-spec-id: Private ordinary functions
Function, tag-spec-methods: Private ordinary functions
Function, tag-spec-tag: Private ordinary functions
Function, tags: Public ordinary functions
Function, t_lambda-list-p: Private ordinary functions

G
Generic Function, ll-recall: Private generic functions
Generic Function, ll-vars: Private generic functions
Generic Function, parse-ll: Private generic functions
generic-function-lambda-list-allow-other-keys: Private ordinary functions
generic-function-lambda-list-auxiliary-vars: Private ordinary functions
generic-function-lambda-list-keyword-vars: Private ordinary functions
generic-function-lambda-list-optional-vars: Private ordinary functions
generic-function-lambda-list-ordinary-vars: Private ordinary functions
generic-function-lambda-list-p: Private ordinary functions
generic-function-lambda-list-rest-var: Private ordinary functions
get-tag-from-id: Private ordinary functions

L
lambda-list-item-p: Private ordinary functions
lambda-list-var-p: Private ordinary functions
ll-allow-other-keys: Private ordinary functions
ll-auxiliary-vars: Private ordinary functions
ll-keyword-vars: Private ordinary functions
ll-optional-vars: Private ordinary functions
ll-ordinary-vars: Private ordinary functions
ll-recall: Private generic functions
ll-recall: Private generic functions
ll-rest-var: Private ordinary functions
ll-vars: Private generic functions
ll-vars: Private generic functions
ll-vars: Private generic functions
ll-vars: Private generic functions
ll-vars: Private generic functions
lli-form: Private ordinary functions
lli-item: Private ordinary functions
lli-kind: Private ordinary functions
lli-name: Private ordinary functions
llv-form: Private ordinary functions
llv-item: Private ordinary functions
llv-kind: Private ordinary functions
llv-name: Private ordinary functions

M
Macro, defenum: Public macros
macro-lambda-list-allow-other-keys: Private ordinary functions
macro-lambda-list-auxiliary-vars: Private ordinary functions
macro-lambda-list-body-var: Private ordinary functions
macro-lambda-list-env-var: Private ordinary functions
macro-lambda-list-keyword-vars: Private ordinary functions
macro-lambda-list-optional-vars: Private ordinary functions
macro-lambda-list-ordinary-vars: Private ordinary functions
macro-lambda-list-p: Private ordinary functions
macro-lambda-list-rest-var: Private ordinary functions
macro-lambda-list-whole-var: Private ordinary functions
make-destructuring-lambda-list: Private ordinary functions
make-generic-function-lambda-list: Private ordinary functions
make-macro-lambda-list: Private ordinary functions
make-method-spec: Private ordinary functions
make-ordinary-lambda-list: Private ordinary functions
make-specialized-lambda-list: Private ordinary functions
make-tag-spec: Private ordinary functions
Method, ll-recall: Private generic functions
Method, ll-vars: Private generic functions
Method, ll-vars: Private generic functions
Method, ll-vars: Private generic functions
Method, ll-vars: Private generic functions
Method, parse-ll: Private generic functions
Method, parse-ll: Private generic functions
Method, parse-ll: Private generic functions
Method, parse-ll: Private generic functions
Method, parse-ll: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
method-spec-args: Private ordinary functions
method-spec-body: Private ordinary functions
method-spec-method-keyword: Private ordinary functions
method-spec-name: Private ordinary functions
method-spec-quals: Private ordinary functions
mkllitem: Private ordinary functions
mkllvar: Private ordinary functions

N
new-symbol: Private ordinary functions
next-enum-tag: Public ordinary functions
nth-enum-tag: Public ordinary functions

O
ordinary-lambda-list-allow-other-keys: Private ordinary functions
ordinary-lambda-list-auxiliary-vars: Private ordinary functions
ordinary-lambda-list-keyword-vars: Private ordinary functions
ordinary-lambda-list-optional-vars: Private ordinary functions
ordinary-lambda-list-ordinary-vars: Private ordinary functions
ordinary-lambda-list-p: Private ordinary functions
ordinary-lambda-list-rest-var: Private ordinary functions

P
parse-ll: Private generic functions
parse-ll: Private generic functions
parse-ll: Private generic functions
parse-ll: Private generic functions
parse-ll: Private generic functions
parse-ll: Private generic functions
parse-method-spec: Private ordinary functions
pll: Private ordinary functions
previous-enum-tag: Public ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods

S
specialized-lambda-list-allow-other-keys: Private ordinary functions
specialized-lambda-list-auxiliary-vars: Private ordinary functions
specialized-lambda-list-keyword-vars: Private ordinary functions
specialized-lambda-list-optional-vars: Private ordinary functions
specialized-lambda-list-ordinary-vars: Private ordinary functions
specialized-lambda-list-p: Private ordinary functions
specialized-lambda-list-rest-var: Private ordinary functions

T
tag-enum: Private ordinary functions
tag-name: Public ordinary functions
tag-name-internal: Private ordinary functions
tag-of: Public ordinary functions
tag-p: Public ordinary functions
tag-spec-args: Private ordinary functions
tag-spec-id: Private ordinary functions
tag-spec-methods: Private ordinary functions
tag-spec-tag: Private ordinary functions
tags: Public ordinary functions
t_lambda-list-p: Private ordinary functions


A.3 Variables

Jump to:   *  
A   B   C   E   F   I   K   L   N   O   R   S   T   W  
Index Entry  Section

*
*enums-namespace*: Private special variables

A
allow-other-keys: Private structures
auxiliary-vars: Private structures

B
body-var: Private structures

C
constructor-arguments: Public structures

E
enum: Private structures
env-var: Private structures

F
form: Private structures

I
id-map: Public structures
item: Private structures

K
keyword-vars: Private structures
kind: Private structures

L
length: Public structures

N
name: Public structures
name: Private structures

O
optional-vars: Private structures
ordinary-vars: Private structures

R
rest-var: Private structures

S
Slot, allow-other-keys: Private structures
Slot, auxiliary-vars: Private structures
Slot, body-var: Private structures
Slot, constructor-arguments: Public structures
Slot, enum: Private structures
Slot, env-var: Private structures
Slot, form: Private structures
Slot, id-map: Public structures
Slot, item: Private structures
Slot, keyword-vars: Private structures
Slot, kind: Private structures
Slot, length: Public structures
Slot, name: Public structures
Slot, name: Private structures
Slot, optional-vars: Private structures
Slot, ordinary-vars: Private structures
Slot, rest-var: Private structures
Slot, tags: Public structures
Slot, whole-var: Private structures
Special Variable, *enums-namespace*: Private special variables

T
tags: Public structures

W
whole-var: Private structures


A.4 Data types

Jump to:   D   E   F   G   I   L   M   O   P   S   T  
Index Entry  Section

D
defenum: The defenum system
defenum-package.lisp: The defenum/defenum-package․lisp file
defenum.asd: The defenum/defenum․asd file
defenum.lisp: The defenum/defenum․lisp file
destructuring-lambda-list: Private structures

E
enum: Public structures
enum-designator: Private types

F
File, defenum-package.lisp: The defenum/defenum-package․lisp file
File, defenum.asd: The defenum/defenum․asd file
File, defenum.lisp: The defenum/defenum․lisp file
File, lambda-list-parsing.lisp: The defenum/lambda-list-parsing․lisp file

G
generic-function-lambda-list: Private structures

I
it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum: The it․unimib․disco․ma․common-lisp․extensions․data-and-control-flow․defenum package

L
lambda-list-item: Private structures
lambda-list-parsing.lisp: The defenum/lambda-list-parsing․lisp file
lambda-list-type: Private types
lambda-list-var: Private structures
lambda-list-var-type: Private types

M
macro-lambda-list: Private structures

O
ordinary-lambda-list: Private structures

P
Package, it.unimib.disco.ma.common-lisp.extensions.data-and-control-flow.defenum: The it․unimib․disco․ma․common-lisp․extensions․data-and-control-flow․defenum package

S
specialized-lambda-list: Private structures
Structure, destructuring-lambda-list: Private structures
Structure, enum: Public structures
Structure, generic-function-lambda-list: Private structures
Structure, lambda-list-item: Private structures
Structure, lambda-list-var: Private structures
Structure, macro-lambda-list: Private structures
Structure, ordinary-lambda-list: Private structures
Structure, specialized-lambda-list: Private structures
Structure, tag: Private structures
Structure, t_lambda-list: Private structures
System, defenum: The defenum system

T
tag: Private structures
tag-designator: Private types
Type, enum-designator: Private types
Type, lambda-list-type: Private types
Type, lambda-list-var-type: Private types
Type, tag-designator: Private types
t_lambda-list: Private structures