The cl-annot Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-annot Reference Manual

This is the cl-annot Reference Manual, version 0.1, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 10:57:41 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

cl-annot

cl-annot is an general annotation library for Common Lisp.

cl-annot is tested under the following implementations:

Overview

Annotations is a special syntax for annotating and transforming forms. Annotations look like Python's decorator:

@annot
(defun foobar ()
  ...)

Any functions and macros can be annotations which takes one argument by default. For example, if you define the following function,

(defun trace (object)
  (print object)
  object)

you can use the function as an annotation like:

@trace (+ 1 2)

This expression prints 3 and returns 3. Internally, this expression will be regarded as (trace (+ 1 2)).

Standard annotation export exports the symbol of the given definition. For example,

@export
(defun foobar ()
  ...)

defines a function foobar and exports the symbol foobar. This equivalents to:

(progn
  (export 'foobar)
  (defun foobar ()
    ...))

Annotations help you to write the simple and declarative codes.

Usage

Just write the following code at the header of each files:

(annot:enable-annot-syntax)

After this code, @... syntax can be used.

Emacs Configuration

If you use Emacs, it is recommended to install misc/slime-annot.el which contains some features of annotations. After locating misc/slime-annot.el into your loadpath, write the following code into your .emacs.

(require 'slime-annot)

Standard Annotations

Package: annot.std

This package contains very basic and useful annotations. You don't need to use-package this package.

Annotation: export

@export DEFINITION-FORM

export is a macro which adds an export form of the definition form. For example,

@export (defun f () ...)

is equivalent to

(progn
  (export 'f)
  (defun f () ...))

Annotation: ignore

@ignore VARIABLES

ignore is a macro which is equivalent to (declare (ignore ...)) form. For example,

@ignore v

is equivalent to

(declare (ignore v))

ignore can take a list of variables like:

@ignore (a b c)

Annotation: ignorable

@ignorable VARIABLES

Same as ignore annotation except that this is equivalent to

(declare (ignorable v))

Annotation: type

@type TYPESPEC NAME

type is a macro which is equivalent to (declare (type ...)) form. For example,

@type integer v

is equivalent to

(declare (type integer v))

Annotation: optimize

@optimize QUALITY

optimize is a macro which is equivalent to (declare (optimize ...)) form. For example,

@optimize (speed 3)

is equivalent to

(declare (optimize (speed 3)))

Annotation: inline

@inline NAME

inline is a macro which is equivalent to (proclaim (inline ...)) or (declare (inline ...)) form. If NAME is just a symbol, declaration will be used. If NAME is a definition form, proclamation will be used. For example,

@inline f

is equivalent to

(declare (inline f))

And

@inline
(defun f () ...)

is equivalent to

(proclam (inline f))
(defun f () ...)

Package: annot.eval-when

This package contains annotations eval-when special form.

Annotation: eval-when-compile

@eval-when-compile FORM

eval-when-compile is a macro which is equivalent to (eval-when (:compile-toplevel) ...). For example,

@eval-when-compile
(defun macro-util () ...)

is equivalent to

(eval-when-compile (:compile-toplevel)
  (defun macro-util () ...))

Annotation: eval-when-load

@eval-when-load FORM

Same as eval-when-compile except that this is equivalent to (eval-when (:load-toplevel) ...).

Annotation: eval-when-execute

@eval-when-execute FORM

Same as eval-when-compile except that this is equivalent to (eval-when (:execute) ...).

Annotation: eval-always

@eval-always FORM

eval-always is a macro which is equivalent to (eval-when (:compile-toplevel :load-toplevel :execute) ...).

Package: annot.doc

This package contains documentation annotations.

Annotation: doc

@doc DOCSTRING DEFINITION-FORM

doc is a macro which inserts documentation string into the definition form. For example,

@doc "docstring"
(defun f () ...)

is equivalent to

(defun f ()
  "docstring"
  ...)

Mixture of export annotation and doc annotation is allowed, means

@export
@doc "docstring"
(defun f () ...)

works as you expected.

Package: annot.class

This package contains annotations about classes.

Annotation: metaclass

@metaclass METACLASS CLASS-DEFINITION-FORM

metaclass embeds (:metaclsas METACLASS) into class-options of CLASS-DEFINITION-FORM. For example,

@metaclass persistent-class
(defclass foo ()
     ())

is equivalent to

(defclass foo ()
     ()
  (:metaclass persistent-class))

Annotation: export-slots

@export-slots CLASS-DEFINITION-FORM

export-slots adds (export ...) form for slots of CLASS-DEFINITION-FORM. For example,

@export-slots
(defclass foo ()
     (bar baz))

is equivalent to

(progn
  (export '(bar baz))
  (defclass foo ()
     (bar baz)))

It can also be used with defstruct as of the commit 9043a74815a028a7db664f2fd77a8b009c736df9 (8/31,2013).

Annotation: export-accessors

@export-accessors CLASS-DEFINITION-FORM

export-accessors adds (export ...) form for accessors (i.e. readers, writers and accessors) of CLASS-DEFINITION-FORM. For example,

@export-accessors
(defclass foo ()
     ((bar :reader bar-of)
      (bax :writer bax-of)
      (baz :accessor baz-of)))

is equivalent to

(progn
  (export '(bar-of bax-of baz-of))
  (defclass foo ()
     ((bar :reader bar-of)
      (bax :writer bax-of)
      (baz :accessor baz-of))))

It can also be used with defstruct as of the commit 9043a74815a028a7db664f2fd77a8b009c736df9 (8/31,2013).

Annotation: export-constructors

It can be used as of the commit 9043a74815a028a7db664f2fd77a8b009c736df9 (8/31,2013).

According to the {CLHS: Macro DEFSTRUCT}[http://www.lispworks.com/documentation/HyperSpec/Body/m_defstr.htm], defstruct can define more than one constructor, for example:

@export-constructors
(defstruct (s (:constructor abya a c)
              (:constructor abya2 a b c))
  a b c)

is equivalent to

(progn
  (export '(abya abya2))
  (defstruct (s (:constructor abya a c)
                (:constructor abya2 a b c)) a b c))

and it might have no constructor like this.

(defstruct (s (:constructor nil)) a b c)

Annotation: export-class and export-structure

export-class combines export, export-slots and export-accessors. export-structure also combines export-constructors in addition.

Package: annot.slot

This package contains annotations about slots.

Annotation: optional

@optional INITFORM SLOT-SPECIFIER

optional embeds :initarg SLOT-NAME and :initform INITFORM into SLOT-SPECIFIER. For example,

(defclass c ()
     (@optional nil
      foo))

is equivalent to

(defclass c ()
     ((foo :initarg :foo
           :initform nil)))

Annotation: required

@required SLOT-SPECIFIER

required embeds :initarg SLOT-NAME and :initform (annot.slot:required-argument SLOT-NAME) into SLOT-SPECIFIER so that MAKE-INSTANCE will raise errors when no argument for the slot given. For example,

(defclass c ()
     (@required
      foo))

is equivalent to

(defclass c ()
     ((foo :initarg :foo
           :initform (annot.slot:required-argument :foo))))

Writing Annotations

As I mentioned, any functions and macros can be annotations. Basically, if you have a function or a macro named annot, the following code

@annot (+ 1 2)

will be expanded like

(annot (+ 1 2))

Aliasing

You may use an alias for specifying annotations. This is useful when you want to use more general names as annotation names. Actually, annot.std uses this technique to overriding the meanings of symbols in common-lisp package. Here is how to alias:

(setf (annotation-real 'do) 'long-long-name)

Now you can use do as meaning long-long-name at annotations like:

@do ...

Multiple Arguments

By default, annotations can take only one argument. If you want to write an annotation taking two or more arguments, you need to specify a number of arguments into the annotation symbol like:

(use-package :annot.core)

(defun my-annot (x y) (+ x y))
(setf (annotation-arity 'my-annot) 2)

Now you can use this annotation like:

@my-annot 2 3
;; => 5

Inlining

In some cases, you want annotations to be expanded at read-time. You can do it by:

(setf (annotation-inline-p 'annot) t)

Be caseful to use feature.

Macro: defannotation

defannotation NAME LAMBDA-LIST (:alias ALIAS :arity ARITY :inline INLINE) &body BODY

defannotation is an utility macro for creating annotations. Here is an example:

(defannotation my-annot (x y)
    (:arity 2 :inline t)
  `(+ ,x ,y))

Annotation: annotation

annotation (:alias ALIAS :arity ARITY :inline INLINE) FUNCTION-DEFINITION-FORM

annotation is an annotation for creating annotations in a way of defannotation. Here is an example:

@annotation (:arity 2 :inline t)
(defmacro my-annot (x y)
  `(+ ,x ,y))

Copyright (C) 2011 Tomohiro Matsuyama <tomo@cx4a.org>


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 cl-annot

Author

Tomohiro Matsuyama

License

LLGPL

Description

Python-like Annotation Syntax for Common Lisp

Version

0.1

Dependency

alexandria

Source

cl-annot.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Next: , Previous: , Up: Modules   [Contents][Index]

3.1 cl-annot/src

Parent

cl-annot (system)

Location

src/

Components

Next: , Previous: , Up: Modules   [Contents][Index]

3.2 cl-annot/src/main

Parent

src (module)

Location

src/main/

Components

Previous: , Up: Modules   [Contents][Index]

3.3 cl-annot/src/lib

Dependency

main (module)

Parent

src (module)

Location

src/lib/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

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


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 cl-annot.asd

Location

cl-annot.asd

Systems

cl-annot (system)

Packages

cl-annot-asd


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 cl-annot/src/main/utils.lisp

Parent

main (module)

Location

src/main/utils.lisp

Packages

cl-annot.util

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 cl-annot/src/main/core.lisp

Dependency

utils.lisp (file)

Parent

main (module)

Location

src/main/core.lisp

Packages

cl-annot.core

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 cl-annot/src/main/expand.lisp

Dependency

core.lisp (file)

Parent

main (module)

Location

src/main/expand.lisp

Packages

cl-annot.expand

Exported Definitions
Internal Definitions

expand-annotation-form (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 cl-annot/src/main/syntax.lisp

Dependency

expand.lisp (file)

Parent

main (module)

Location

src/main/syntax.lisp

Packages

cl-annot.syntax

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 cl-annot/src/main/helper.lisp

Dependency

syntax.lisp (file)

Parent

main (module)

Location

src/main/helper.lisp

Packages

cl-annot.helper

Exported Definitions
Internal Definitions

set-annotation-options (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 cl-annot/src/main/annot.lisp

Dependency

helper.lisp (file)

Parent

main (module)

Location

src/main/annot.lisp

Packages

cl-annot


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 cl-annot/src/lib/std.lisp

Parent

lib (module)

Location

src/lib/std.lisp

Packages

cl-annot.std

Exported Definitions
Internal Definitions

%declare-list-or-symbol (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.9 cl-annot/src/lib/eval-when.lisp

Dependency

std.lisp (file)

Parent

lib (module)

Location

src/lib/eval-when.lisp

Packages

cl-annot.eval-when

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.10 cl-annot/src/lib/doc.lisp

Dependency

eval-when.lisp (file)

Parent

lib (module)

Location

src/lib/doc.lisp

Packages

cl-annot.doc

Exported Definitions

doc (macro)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.11 cl-annot/src/lib/class.lisp

Dependency

doc.lisp (file)

Parent

lib (module)

Location

src/lib/class.lisp

Packages

cl-annot.class

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.12 cl-annot/src/lib/slot.lisp

Dependency

class.lisp (file)

Parent

lib (module)

Location

src/lib/slot.lisp

Packages

cl-annot.slot

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 cl-annot-asd

Source

cl-annot.asd

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

5.2 cl-annot.util

Source

utils.lisp (file)

Nickname

annot.util

Use List

common-lisp

Used By List
Exported Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.3 cl-annot.core

Source

core.lisp (file)

Nickname

annot.core

Use List

common-lisp

Used By List
Exported Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.4 cl-annot.expand

Source

expand.lisp (file)

Nickname

annot.expand

Use List
Used By List

cl-annot.syntax

Exported Definitions

expand-annotation (function)

Internal Definitions

expand-annotation-form (function)


Next: , Previous: , Up: Packages   [Contents][Index]

5.5 cl-annot.syntax

Source

syntax.lisp (file)

Nickname

annot.syntax

Use List
Used By List

cl-annot.helper

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.6 cl-annot.helper

Source

helper.lisp (file)

Nickname

annot.helper

Use List
Used By List
Exported Definitions
Internal Definitions

set-annotation-options (function)


Next: , Previous: , Up: Packages   [Contents][Index]

5.7 cl-annot

Source

annot.lisp (file)

Nickname

annot

Use List

common-lisp


Next: , Previous: , Up: Packages   [Contents][Index]

5.8 cl-annot.std

Source

std.lisp (file)

Nickname

annot.std

Use List
Exported Definitions
Internal Definitions

%declare-list-or-symbol (function)


Next: , Previous: , Up: Packages   [Contents][Index]

5.9 cl-annot.eval-when

Source

eval-when.lisp (file)

Nickname

annot.eval-when

Use List

common-lisp

Exported Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.10 cl-annot.doc

Source

doc.lisp (file)

Nickname

annot.doc

Use List
Exported Definitions

doc (macro)


Next: , Previous: , Up: Packages   [Contents][Index]

5.11 cl-annot.class

Source

class.lisp (file)

Nickname

annot.class

Use List
Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.12 cl-annot.slot

Source

slot.lisp (file)

Nickname

annot.slot

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Macros

Macro: %annotation ANNOT &rest ARGS

Annotation Expansion Engine.

Package

cl-annot.core

Source

expand.lisp (file)

Macro: annotation OPTIONS FUNCTION-DEFINITION-FORM
Package

cl-annot.helper

Source

helper.lisp (file)

Macro: declaration* VARS

Shorthand for (DECLARE (DECLARATION ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: defannotation NAME LAMBDA-LIST OPTIONS &body BODY
Package

cl-annot.helper

Source

helper.lisp (file)

Macro: doc DOCSTRING DEFINITION-FORM

Add DOCSTRING documentation for DEFINITION-FORM.

Package

cl-annot.doc

Source

doc.lisp (file)

Macro: dynamic-extent* VARS

Shorthand for (DECLARE (DYNAMIC-EXTENT ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: enable-annot-syntax ()
Package

cl-annot.syntax

Source

syntax.lisp (file)

Macro: eval-always &body BODY
Package

cl-annot.eval-when

Source

eval-when.lisp (file)

Macro: eval-when-compile &body BODY
Package

cl-annot.eval-when

Source

eval-when.lisp (file)

Macro: eval-when-execute &body BODY
Package

cl-annot.eval-when

Source

eval-when.lisp (file)

Macro: eval-when-load &body BODY
Package

cl-annot.eval-when

Source

eval-when.lisp (file)

Macro: export* DEFINITION-FORM

Export the definition symbol of DEFINITION-FORM.

Package

cl-annot.std

Source

std.lisp (file)

Macro: export-accessors CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Macro: export-class CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Macro: export-constructors CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Macro: export-slots CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Macro: export-structure CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Macro: ftype* TYPESPEC NAME

Shorthand for (DECLARE (FTYPE ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: ignorable* VARS

Shorthand for (DECLARE (IGNORABLE ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: ignore* VARS

Shorthand for (DECLARE (IGNORE ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: inline* NAME

Shorthand for (DECLARE (INLINE ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: metaclass METACLASS CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Macro: notinline* NAME

Shorthand for (DECLARE (NOTINLINE ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: optimize* QUALITY

Shorthand for (DECLARE (OPTIMIZE ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: optional INIT-FORM SLOT-SPECIFIER0
Package

cl-annot.slot

Source

slot.lisp (file)

Macro: required SLOT-SPECIFIER0
Package

cl-annot.slot

Source

slot.lisp (file)

Macro: special* VARS

Shorthand for (DECLARE (SPECIAL ...)).

Package

cl-annot.std

Source

std.lisp (file)

Macro: type* TYPESPEC NAME

Shorthand for (DECLARE (TYPE ...)).

Package

cl-annot.std

Source

std.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Functions

Function: annotation-arity ANNOT

Return the number of arguments of ANNOT.

Package

cl-annot.core

Source

core.lisp (file)

Writer

(setf annotation-arity) (function)

Function: (setf annotation-arity) ARITY ANNOT
Package

cl-annot.core

Source

core.lisp (file)

Reader

annotation-arity (function)

Function: annotation-form ANNOT ARGS

Make an annotation-form with ANNOT and ARGS.

Package

cl-annot.core

Source

core.lisp (file)

Function: annotation-form-p FORM

Return non-nil if FORM is an annotation-form.

Package

cl-annot.core

Source

core.lisp (file)

Function: annotation-inline-p ANNOT

Return non-nil if ANNOT should be expanded on read-time.

Package

cl-annot.core

Source

core.lisp (file)

Writer

(setf annotation-inline-p) (function)

Function: (setf annotation-inline-p) INLINE-P ANNOT
Package

cl-annot.core

Source

core.lisp (file)

Reader

annotation-inline-p (function)

Function: annotation-real ANNOT

Return the real annotation of ANNOT.

Package

cl-annot.core

Source

core.lisp (file)

Writer

(setf annotation-real) (function)

Function: (setf annotation-real) REAL ANNOT
Package

cl-annot.core

Source

core.lisp (file)

Reader

annotation-real (function)

Function: annotation-syntax-reader STREAM CHAR
Package

cl-annot.syntax

Source

syntax.lisp (file)

Function: class-options CLASS-DEFINITION-FORM

Return class-options of CLASS-DEFINITION-FORM.

Package

cl-annot.util

Source

utils.lisp (file)

Function: definition-form-symbol DEFINITION-FORM

Return the symbol of DEFINITION-FORM.

Package

cl-annot.util

Source

utils.lisp (file)

Function: definition-form-type DEFINITION-FORM

Return the type of DEFINITION-FORM.

Package

cl-annot.util

Source

utils.lisp (file)

Function: expand-annotation ANNOT ARGS

Expand ANNOT. ARGS will be expanded prior to this form (call-by-value).

Package

cl-annot.expand

Source

expand.lisp (file)

Function: get-class-option NAME CLASS-DEFINITION-FORM

Return a value of NAME class-option of CLASS-DEFINITION-FORM.

Package

cl-annot.util

Source

utils.lisp (file)

Function: macroexpand-some FORM

Expand FORM once. The result form won’t be nil.

Package

cl-annot.util

Source

utils.lisp (file)

Function: macroexpand-until-normal-form FORM

Expand FORM until it brecomes normal-form.

Package

cl-annot.util

Source

utils.lisp (file)

Function: macrop SYMBOL

Return non-nil if SYMBOL is a macro.

Package

cl-annot.util

Source

utils.lisp (file)

Function: plist-get-all PLIST PROP

Return all values in PLIST named PROP.

Package

cl-annot.util

Source

utils.lisp (file)

Function: plist-member PLIST PROP

Return t if PLIST contains PROP as a property.

Package

cl-annot.util

Source

utils.lisp (file)

Function: progn-form-last PROGN-FORM

Return the last form of PROGN-FORM which should be evaluated at last. If macro forms seen, the macro forms will be expanded using MACROEXPAND-UNTIL-NORMAL-FORM.

Package

cl-annot.util

Source

utils.lisp (file)

Function: progn-form-replace-last LAST PROGN-FORM

Replace the last form of PROGN-FORM with LAST. If LAST is a function, the function will be called with the last form and used for replacing. If macro forms seen, the macro forms will be expanded using MACROEXPAND-UNTIL-NORMAL-FORM.

Package

cl-annot.util

Source

utils.lisp (file)

Function: replace-function-body FUNCTION FUNCTION-DEFINITION-FORM

Replace the body of FUNCTION-DEFINITION-FORM by calling FUNCTION with name, lambda-list and the body as arguments.

Package

cl-annot.util

Source

utils.lisp (file)

Function: replace-slot-specifiers FUNCTION CLASS-DEFINITION-FORM

Replace slot-specifiers of CLASS-DEFINITION-FORM with FUNCTION. The result value will be a class definition form also.

Package

cl-annot.util

Source

utils.lisp (file)

Function: slot-specifiers CLASS-DEFINITION-FORM

Return class-specifiers of CLASS-DEFINITION-FORM.

Package

cl-annot.util

Source

utils.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Macros

Macro: def-slot-annotation NAME ARGS &body BODY
Package

cl-annot.slot

Source

slot.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Functions

Function: %declare-list-or-symbol VARS SYM
Package

cl-annot.std

Source

std.lisp (file)

Function: %enable-annot-syntax ()
Package

cl-annot.syntax

Source

syntax.lisp (file)

Function: expand-annotation-form FORM

Expand annotation FORM if possible.

Package

cl-annot.expand

Source

expand.lisp (file)

Function: get-accessors-in-defclass CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Function: get-accessors-in-defstruct CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Function: get-conc-name CLASS-DEFINITION-FORM
Package

cl-annot.class

Source

class.lisp (file)

Function: read-annotation STREAM
Package

cl-annot.syntax

Source

syntax.lisp (file)

Function: read-annotation-arguments STREAM ARITY
Package

cl-annot.syntax

Source

syntax.lisp (file)

Function: required-argument NAME
Package

cl-annot.slot

Source

slot.lisp (file)

Function: set-annotation-options NAME OPTIONS
Package

cl-annot.helper

Source

helper.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L   M  
Index Entry  Section

C
cl-annot.asd: The cl-annot<dot>asd file
cl-annot/src: The cl-annot/src module
cl-annot/src/lib: The cl-annot/src/lib module
cl-annot/src/lib/class.lisp: The cl-annot/src/lib/class<dot>lisp file
cl-annot/src/lib/doc.lisp: The cl-annot/src/lib/doc<dot>lisp file
cl-annot/src/lib/eval-when.lisp: The cl-annot/src/lib/eval-when<dot>lisp file
cl-annot/src/lib/slot.lisp: The cl-annot/src/lib/slot<dot>lisp file
cl-annot/src/lib/std.lisp: The cl-annot/src/lib/std<dot>lisp file
cl-annot/src/main: The cl-annot/src/main module
cl-annot/src/main/annot.lisp: The cl-annot/src/main/annot<dot>lisp file
cl-annot/src/main/core.lisp: The cl-annot/src/main/core<dot>lisp file
cl-annot/src/main/expand.lisp: The cl-annot/src/main/expand<dot>lisp file
cl-annot/src/main/helper.lisp: The cl-annot/src/main/helper<dot>lisp file
cl-annot/src/main/syntax.lisp: The cl-annot/src/main/syntax<dot>lisp file
cl-annot/src/main/utils.lisp: The cl-annot/src/main/utils<dot>lisp file

F
File, Lisp, cl-annot.asd: The cl-annot<dot>asd file
File, Lisp, cl-annot/src/lib/class.lisp: The cl-annot/src/lib/class<dot>lisp file
File, Lisp, cl-annot/src/lib/doc.lisp: The cl-annot/src/lib/doc<dot>lisp file
File, Lisp, cl-annot/src/lib/eval-when.lisp: The cl-annot/src/lib/eval-when<dot>lisp file
File, Lisp, cl-annot/src/lib/slot.lisp: The cl-annot/src/lib/slot<dot>lisp file
File, Lisp, cl-annot/src/lib/std.lisp: The cl-annot/src/lib/std<dot>lisp file
File, Lisp, cl-annot/src/main/annot.lisp: The cl-annot/src/main/annot<dot>lisp file
File, Lisp, cl-annot/src/main/core.lisp: The cl-annot/src/main/core<dot>lisp file
File, Lisp, cl-annot/src/main/expand.lisp: The cl-annot/src/main/expand<dot>lisp file
File, Lisp, cl-annot/src/main/helper.lisp: The cl-annot/src/main/helper<dot>lisp file
File, Lisp, cl-annot/src/main/syntax.lisp: The cl-annot/src/main/syntax<dot>lisp file
File, Lisp, cl-annot/src/main/utils.lisp: The cl-annot/src/main/utils<dot>lisp file

L
Lisp File, cl-annot.asd: The cl-annot<dot>asd file
Lisp File, cl-annot/src/lib/class.lisp: The cl-annot/src/lib/class<dot>lisp file
Lisp File, cl-annot/src/lib/doc.lisp: The cl-annot/src/lib/doc<dot>lisp file
Lisp File, cl-annot/src/lib/eval-when.lisp: The cl-annot/src/lib/eval-when<dot>lisp file
Lisp File, cl-annot/src/lib/slot.lisp: The cl-annot/src/lib/slot<dot>lisp file
Lisp File, cl-annot/src/lib/std.lisp: The cl-annot/src/lib/std<dot>lisp file
Lisp File, cl-annot/src/main/annot.lisp: The cl-annot/src/main/annot<dot>lisp file
Lisp File, cl-annot/src/main/core.lisp: The cl-annot/src/main/core<dot>lisp file
Lisp File, cl-annot/src/main/expand.lisp: The cl-annot/src/main/expand<dot>lisp file
Lisp File, cl-annot/src/main/helper.lisp: The cl-annot/src/main/helper<dot>lisp file
Lisp File, cl-annot/src/main/syntax.lisp: The cl-annot/src/main/syntax<dot>lisp file
Lisp File, cl-annot/src/main/utils.lisp: The cl-annot/src/main/utils<dot>lisp file

M
Module, cl-annot/src: The cl-annot/src module
Module, cl-annot/src/lib: The cl-annot/src/lib module
Module, cl-annot/src/main: The cl-annot/src/main module

Jump to:   C   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
A   C   D   E   F   G   I   M   N   O   P   R   S   T  
Index Entry  Section

%
%annotation: Exported macros
%declare-list-or-symbol: Internal functions
%enable-annot-syntax: Internal functions

(
(setf annotation-arity): Exported functions
(setf annotation-inline-p): Exported functions
(setf annotation-real): Exported functions

A
annotation: Exported macros
annotation-arity: Exported functions
annotation-form: Exported functions
annotation-form-p: Exported functions
annotation-inline-p: Exported functions
annotation-real: Exported functions
annotation-syntax-reader: Exported functions

C
class-options: Exported functions

D
declaration*: Exported macros
def-slot-annotation: Internal macros
defannotation: Exported macros
definition-form-symbol: Exported functions
definition-form-type: Exported functions
doc: Exported macros
dynamic-extent*: Exported macros

E
enable-annot-syntax: Exported macros
eval-always: Exported macros
eval-when-compile: Exported macros
eval-when-execute: Exported macros
eval-when-load: Exported macros
expand-annotation: Exported functions
expand-annotation-form: Internal functions
export*: Exported macros
export-accessors: Exported macros
export-class: Exported macros
export-constructors: Exported macros
export-slots: Exported macros
export-structure: Exported macros

F
ftype*: Exported macros
Function, %declare-list-or-symbol: Internal functions
Function, %enable-annot-syntax: Internal functions
Function, (setf annotation-arity): Exported functions
Function, (setf annotation-inline-p): Exported functions
Function, (setf annotation-real): Exported functions
Function, annotation-arity: Exported functions
Function, annotation-form: Exported functions
Function, annotation-form-p: Exported functions
Function, annotation-inline-p: Exported functions
Function, annotation-real: Exported functions
Function, annotation-syntax-reader: Exported functions
Function, class-options: Exported functions
Function, definition-form-symbol: Exported functions
Function, definition-form-type: Exported functions
Function, expand-annotation: Exported functions
Function, expand-annotation-form: Internal functions
Function, get-accessors-in-defclass: Internal functions
Function, get-accessors-in-defstruct: Internal functions
Function, get-class-option: Exported functions
Function, get-conc-name: Internal functions
Function, macroexpand-some: Exported functions
Function, macroexpand-until-normal-form: Exported functions
Function, macrop: Exported functions
Function, plist-get-all: Exported functions
Function, plist-member: Exported functions
Function, progn-form-last: Exported functions
Function, progn-form-replace-last: Exported functions
Function, read-annotation: Internal functions
Function, read-annotation-arguments: Internal functions
Function, replace-function-body: Exported functions
Function, replace-slot-specifiers: Exported functions
Function, required-argument: Internal functions
Function, set-annotation-options: Internal functions
Function, slot-specifiers: Exported functions

G
get-accessors-in-defclass: Internal functions
get-accessors-in-defstruct: Internal functions
get-class-option: Exported functions
get-conc-name: Internal functions

I
ignorable*: Exported macros
ignore*: Exported macros
inline*: Exported macros

M
Macro, %annotation: Exported macros
Macro, annotation: Exported macros
Macro, declaration*: Exported macros
Macro, def-slot-annotation: Internal macros
Macro, defannotation: Exported macros
Macro, doc: Exported macros
Macro, dynamic-extent*: Exported macros
Macro, enable-annot-syntax: Exported macros
Macro, eval-always: Exported macros
Macro, eval-when-compile: Exported macros
Macro, eval-when-execute: Exported macros
Macro, eval-when-load: Exported macros
Macro, export*: Exported macros
Macro, export-accessors: Exported macros
Macro, export-class: Exported macros
Macro, export-constructors: Exported macros
Macro, export-slots: Exported macros
Macro, export-structure: Exported macros
Macro, ftype*: Exported macros
Macro, ignorable*: Exported macros
Macro, ignore*: Exported macros
Macro, inline*: Exported macros
Macro, metaclass: Exported macros
Macro, notinline*: Exported macros
Macro, optimize*: Exported macros
Macro, optional: Exported macros
Macro, required: Exported macros
Macro, special*: Exported macros
Macro, type*: Exported macros
macroexpand-some: Exported functions
macroexpand-until-normal-form: Exported functions
macrop: Exported functions
metaclass: Exported macros

N
notinline*: Exported macros

O
optimize*: Exported macros
optional: Exported macros

P
plist-get-all: Exported functions
plist-member: Exported functions
progn-form-last: Exported functions
progn-form-replace-last: Exported functions

R
read-annotation: Internal functions
read-annotation-arguments: Internal functions
replace-function-body: Exported functions
replace-slot-specifiers: Exported functions
required: Exported macros
required-argument: Internal functions

S
set-annotation-options: Internal functions
slot-specifiers: Exported functions
special*: Exported macros

T
type*: Exported macros

Jump to:   %   (  
A   C   D   E   F   G   I   M   N   O   P   R   S   T  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables


Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   P   S  
Index Entry  Section

C
cl-annot: The cl-annot system
cl-annot: The cl-annot package
cl-annot-asd: The cl-annot-asd package
cl-annot.class: The cl-annot<dot>class package
cl-annot.core: The cl-annot<dot>core package
cl-annot.doc: The cl-annot<dot>doc package
cl-annot.eval-when: The cl-annot<dot>eval-when package
cl-annot.expand: The cl-annot<dot>expand package
cl-annot.helper: The cl-annot<dot>helper package
cl-annot.slot: The cl-annot<dot>slot package
cl-annot.std: The cl-annot<dot>std package
cl-annot.syntax: The cl-annot<dot>syntax package
cl-annot.util: The cl-annot<dot>util package

P
Package, cl-annot: The cl-annot package
Package, cl-annot-asd: The cl-annot-asd package
Package, cl-annot.class: The cl-annot<dot>class package
Package, cl-annot.core: The cl-annot<dot>core package
Package, cl-annot.doc: The cl-annot<dot>doc package
Package, cl-annot.eval-when: The cl-annot<dot>eval-when package
Package, cl-annot.expand: The cl-annot<dot>expand package
Package, cl-annot.helper: The cl-annot<dot>helper package
Package, cl-annot.slot: The cl-annot<dot>slot package
Package, cl-annot.std: The cl-annot<dot>std package
Package, cl-annot.syntax: The cl-annot<dot>syntax package
Package, cl-annot.util: The cl-annot<dot>util package

S
System, cl-annot: The cl-annot system

Jump to:   C   P   S