The docparser Reference Manual

Table of Contents

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

The docparser Reference Manual

This is the docparser Reference Manual, version 0.1, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 03:49:21 2018 GMT+0.


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

1 Introduction

docparser

Build Status Coverage Status Quicklisp badge

Extract documentation from Common Lisp systems. Used in the Codex documentation generator and Quickdocs.

Overview

Documentation generators generally implement their own (ad hoc, informally-specified, etc.) version of docstring extraction, and as a result, every documentation generator extracts a different subset of documentation.

docparser isn't yet another documentation generator: it is a library for extracting documentation from Common Lisp systems in a structured manner so you can build a documentation generator on top of it. It parses systems and returns a set of objects representing packages, variables, functions, classes, etc. and their docstrings. It is designed to extract as much information from systems as possible, and let documentation generators choose what to keep and discard. This minimizes duplication of effort and separates docstring extraction from generation.

docparser has classes to represent every documentable Common Lisp construct:

Additionally, docparser has custom subclasses to represent the documentation of CFFI definitions:

This improves API documentation generation for foreign library wrappers. Note that, when parsing documentation, docparser catches and ignores foreign library loading errors, so documentation can be generated even in a machine that can't properly load the library. This is useful for documenting libraries with complex external dependencies.

Usage

To extract documentation from a system (which will be Quickloaded automatically), do this:

(docparser:parse :my-system-name)

This returns an index, which is basically a store of documentation nodes. For a quick overview of what's in it, use the dump function:

CL-USER> (docparser:dump (docparser:parse :cl-yaml))
; some compilation output
Package "YAML.ERROR" with docstring "YAML errors."
  #<condition yaml-error>
  #<condition parsing-error>
  #<condition unsupported-float-value>
Package "YAML.FLOAT" with docstring "Handle IEEE floating point values."
  #<variable *float-strategy*>
  #<variable *sbcl-nan-value*>
  #<function not-a-number NIL>
  #<function positive-infinity NIL>
  #<function negative-infinity NIL>
Package "YAML.SCALAR" with docstring "Parser for scalar values."
...

To search for nodes by name or type, you use the query function:

CL-USER> (defparameter *index* (docparser:parse :cl-yaml))
; some compilation output
*INDEX*

CL-USER> (docparser:query *index* :package-name "CL-YAML")
#(#<generic function parse (INPUT &KEY MULTI-DOCUMENT-P)>
  #<method parse ((INPUT STRING) &KEY MULTI-DOCUMENT-P)>
  #<method parse ((INPUT PATHNAME) &KEY MULTI-DOCUMENT-P)>
  #<function emit (VALUE STREAM)> #<function emit-to-string (VALUE)>)

CL-USER> (docparser:query *index* :package-name "CL-YAML"
                                  :symbol-name "PARSE")
#(#<generic function parse (INPUT &KEY MULTI-DOCUMENT-P)>
  #<method parse ((INPUT STRING) &KEY MULTI-DOCUMENT-P)>
  #<method parse ((INPUT PATHNAME) &KEY MULTI-DOCUMENT-P)>)

CL-USER> (docparser:query *index* :package-name "CL-YAML"
                                  :symbol-name "PARSE"
                                  :class 'docparser:generic-function-node)
#(#<generic function parse (INPUT &KEY MULTI-DOCUMENT-P)>)

If you don't know what the index contains, you can go through it using the do-packages and do-nodes macros:

CL-USER> (docparser:do-packages (package *index*)
           (format t "~&In package: ~A." (docparser:package-index-name package))
           (docparser:do-nodes (node package)
             (print (class-of node))))
In package: YAML.ERROR.
#<STANDARD-CLASS DOCPARSER:CONDITION-NODE>
#<STANDARD-CLASS DOCPARSER:CONDITION-NODE>
#<STANDARD-CLASS DOCPARSER:CONDITION-NODE>
In package: YAML.FLOAT.
#<STANDARD-CLASS DOCPARSER:VARIABLE-NODE>
#<STANDARD-CLASS DOCPARSER:VARIABLE-NODE>
#<STANDARD-CLASS DOCPARSER:FUNCTION-NODE>
#<STANDARD-CLASS DOCPARSER:FUNCTION-NODE>
#<STANDARD-CLASS DOCPARSER:FUNCTION-NODE>
...

Extending

You can extend docparser in two ways: Adding new parsers and new classes. Adding new classes probably won't be very useful unless you also modify the client of your extension to use them. Adding new parsers that instantiate existing documentation classes, however, can be very useful.

For instance, you could have a parser that extracts information from a custom defwidget macro in a GUI framework, and creates an instance of class-node with a modified docstring.

Alternatively, if you're writing a documentation generator specific to this framework, you could create a subclass of class-node, widget-node, with extra slots for the added information.

To define a new parser, use the define-parser macro. As an example of use, this is the definition of the parser for defmacro forms:

(define-parser cl:defmacro (name (&rest args) &rest body)
  (let ((docstring (if (stringp (first body))
                       (first body)
                       nil)))
    (make-instance 'macro-node
                   :name name
                   :docstring docstring
                   :lambda-list args)))

License

Copyright (c) 2015 Fernando Borretti

Licensed under the MIT License.


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 docparser

Maintainer

Fernando Borretti <eudoxiahp@gmail.com>

Author

Fernando Borretti <eudoxiahp@gmail.com>

Home Page
Source Control

(:git "")

Bug Tracker
License

MIT

Description

Parse documentation from Common Lisp systems.

Long Description

# docparser

[![Build Status](https://travis-ci.org/eudoxia0/docparser.svg?branch=master)](https://travis-ci.org/eudoxia0/docparser)
[![Coverage Status](https://coveralls.io/repos/eudoxia0/docparser/badge.svg?branch=master)](https://coveralls.io/r/eudoxia0/docparser?branch=master) [![Quicklisp badge](http://quickdocs.org/badge/docparser.svg)](http://quickdocs.org/docparser/)

Extract documentation from Common Lisp systems. Used in the [Codex][codex]
documentation generator and [Quickdocs][qd].

# Overview

Documentation generators generally implement their own (ad hoc,
informally-specified, etc.) version of docstring extraction, and as a result,
every documentation generator extracts a different subset of documentation.

docparser isn’t yet another documentation generator: it is a library for
extracting documentation from Common Lisp systems in a structured manner so you
can build a documentation generator on top of it. It parses systems and returns
a set of objects representing packages, variables, functions, classes, etc. and
their docstrings. It is designed to extract as much information from systems as
possible, and let documentation generators choose what to keep and discard. This
minimizes duplication of effort and separates docstring extraction from
generation.

docparser has classes to represent every documentable Common Lisp construct:

* Functions
* Macros
* Generic functions
* Methods
* Special variables and constants
* Classes and class slots
* Structures
* Conditions
* Type definitions
* Packages

Additionally, docparser has custom subclasses to represent the documentation of
[CFFI][cffi] definitions:

* Foreign functions ([‘defcfun‘][defcfun]).
* Foreign type definitions ([‘defctype‘][defctype]).
* Foreign structure definition ([‘defcstruct‘][defcstruct]).
* Foreign union definitions ([‘defcunion‘][defcunion]).
* Enumerations ([‘defcenum‘][defcenum]).
* Bitfields ([‘defbitfield‘][defbitfield]).

This improves API documentation generation for foreign library wrappers. Note
that, when parsing documentation, docparser catches and ignores foreign library
loading errors, so documentation can be generated even in a machine that can’t
properly load the library. This is useful for documenting libraries with complex
external dependencies.

[codex]: https://github.com/CommonDoc/codex
[qd]: http://quickdocs.org/
[cffi]: https://github.com/cffi/cffi
[defcfun]: https://common-lisp.net/project/cffi/manual/cffi-manual.html#defcfun
[defctype]: https://common-lisp.net/project/cffi/manual/cffi-manual.html#defctype
[defcstruct]: https://common-lisp.net/project/cffi/manual/cffi-manual.html#defcstruct
[defcunion]: https://common-lisp.net/project/cffi/manual/cffi-manual.html#defcunion
[defcenum]: https://common-lisp.net/project/cffi/manual/cffi-manual.html#defcenum
[defbitfield]: https://common-lisp.net/project/cffi/manual/cffi-manual.html#defbitfield

# Usage

To extract documentation from a system (which will be Quickloaded
automatically), do this:

“‘lisp
(docparser:parse :my-system-name)
“‘

This returns an index, which is basically a store of documentation nodes. For a
quick overview of what’s in it, use the ‘dump‘ function:

“‘lisp
CL-USER> (docparser:dump (docparser:parse :cl-yaml))
; some compilation output
Package "YAML.ERROR" with docstring "YAML errors."
#<condition yaml-error>
#<condition parsing-error>
#<condition unsupported-float-value>
Package "YAML.FLOAT" with docstring "Handle IEEE floating point values."
#<variable *float-strategy*>
#<variable *sbcl-nan-value*>
#<function not-a-number NIL>
#<function positive-infinity NIL>
#<function negative-infinity NIL>
Package "YAML.SCALAR" with docstring "Parser for scalar values."
...
“‘

To search for nodes by name or type, you use the ‘query‘ function:

“‘lisp
CL-USER> (defparameter *index* (docparser:parse :cl-yaml))
; some compilation output
*INDEX*

CL-USER> (docparser:query *index* :package-name "CL-YAML")
#(#<generic function parse (INPUT &KEY MULTI-DOCUMENT-P)>
#<method parse ((INPUT STRING) &KEY MULTI-DOCUMENT-P)>
#<method parse ((INPUT PATHNAME) &KEY MULTI-DOCUMENT-P)>
#<function emit (VALUE STREAM)> #<function emit-to-string (VALUE)>)

CL-USER> (docparser:query *index* :package-name "CL-YAML"
:symbol-name "PARSE")
#(#<generic function parse (INPUT &KEY MULTI-DOCUMENT-P)>
#<method parse ((INPUT STRING) &KEY MULTI-DOCUMENT-P)>
#<method parse ((INPUT PATHNAME) &KEY MULTI-DOCUMENT-P)>)

CL-USER> (docparser:query *index* :package-name "CL-YAML"
:symbol-name "PARSE"
:class ’docparser:generic-function-node)
#(#<generic function parse (INPUT &KEY MULTI-DOCUMENT-P)>)
“‘

If you don’t know what the index contains, you can go through it using the
‘do-packages‘ and ‘do-nodes‘ macros:

“‘lisp
CL-USER> (docparser:do-packages (package *index*)
(format t "~&In package: ~A." (docparser:package-index-name package))
(docparser:do-nodes (node package)
(print (class-of node))))
In package: YAML.ERROR.
#<STANDARD-CLASS DOCPARSER:CONDITION-NODE>
#<STANDARD-CLASS DOCPARSER:CONDITION-NODE>
#<STANDARD-CLASS DOCPARSER:CONDITION-NODE>
In package: YAML.FLOAT.
#<STANDARD-CLASS DOCPARSER:VARIABLE-NODE>
#<STANDARD-CLASS DOCPARSER:VARIABLE-NODE>
#<STANDARD-CLASS DOCPARSER:FUNCTION-NODE>
#<STANDARD-CLASS DOCPARSER:FUNCTION-NODE>
#<STANDARD-CLASS DOCPARSER:FUNCTION-NODE>
...
“‘

## Extending

You can extend docparser in two ways: Adding new parsers and new classes. Adding
new classes probably won’t be very useful unless you also modify the client of
your extension to use them. Adding new parsers that instantiate existing
documentation classes, however, can be very useful.

For instance, you could have a parser that extracts information from a custom
‘defwidget‘ macro in a GUI framework, and creates an instance of ‘class-node‘
with a modified docstring.

Alternatively, if you’re writing a documentation generator specific to this
framework, you could create a subclass of ‘class-node‘, ‘widget-node‘, with
extra slots for the added information.

To define a new parser, use the ‘define-parser‘ macro. As an example of use,
this is the definition of the parser for ‘defmacro‘ forms:

“‘lisp
(define-parser cl:defmacro (name (&rest args) &rest body)
(let ((docstring (if (stringp (first body))
(first body)
nil)))
(make-instance ’macro-node
:name name
:docstring docstring
:lambda-list args)))
“‘

# License

Copyright (c) 2015 Fernando Borretti

Licensed under the MIT License.

Version

0.1

Dependencies
Source

docparser.asd (file)

Component

src (module)


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

3 Modules

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


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

3.1 docparser/src

Parent

docparser (system)

Location

src/

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 docparser.asd

Location

docparser.asd

Systems

docparser (system)


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

4.1.2 docparser/src/package.lisp

Parent

src (module)

Location

src/package.lisp

Packages

docparser


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

4.1.3 docparser/src/nodes.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/nodes.lisp

Exported Definitions

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

4.1.4 docparser/src/equal.lisp

Dependency

nodes.lisp (file)

Parent

src (module)

Location

src/equal.lisp

Exported Definitions
Internal Definitions

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

4.1.5 docparser/src/core.lisp

Dependency

equal.lisp (file)

Parent

src (module)

Location

src/core.lisp

Exported Definitions
Internal Definitions

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

4.1.6 docparser/src/parsers.lisp

Dependency

core.lisp (file)

Parent

src (module)

Location

src/parsers.lisp

Exported Definitions

extract-docstring (function)

Internal Definitions

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

4.1.7 docparser/src/print.lisp

Dependency

parsers.lisp (file)

Parent

src (module)

Location

src/print.lisp

Exported Definitions

dump (function)


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

5 Packages

Packages are listed by definition order.


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

5.1 docparser

Parse documentation from ASDF systems.

Source

package.lisp (file)

Use List

common-lisp

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 Special variables

Special Variable: *store-form*

Whether or not to store, inside a node, the form it was parsed from.

Package

docparser

Source

core.lisp (file)


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

6.1.2 Macros

Macro: define-parser NAME (&rest LAMBDA-LIST) &body BODY

Define a parser.

Package

docparser

Source

core.lisp (file)

Macro: do-nodes (NODE PACKAGE-INDEX) &body BODY

Iterate over every node in a package index.

Package

docparser

Source

core.lisp (file)

Macro: do-packages (PACKAGE INDEX) &body BODY

Iterate over every package in the index.

Package

docparser

Source

core.lisp (file)


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

6.1.3 Functions

Function: dump INDEX

Print a tree of the contents of an index to the *standard-output*.

Package

docparser

Source

print.lisp (file)

Function: extract-docstring BODY

Extract the docstring from the body of a form.
Correctly handles bodies where the first form is a declaration.

Package

docparser

Source

parsers.lisp (file)

Function: parse SYSTEM-OR-LIST

Parse documentation from either a system name or a list of system names.

Package

docparser

Source

core.lisp (file)

Function: query INDEX &key PACKAGE-NAME SYMBOL-NAME CLASS

Find all documentation nodes in the index matching the constraints and returns them as a vector. package-name and symbol-name are strings, class is the symbol of a class name. If none are found, return NIL.

Package

docparser

Source

core.lisp (file)

Function: render-humanize SYMBOL

Render a symbol into a string in a human-friendly way.

Package

docparser

Source

nodes.lisp (file)

Function: slot-initform CLASS-SLOT-NODE

Return the initform for the slot.
Also returns a second boolean value indicating whether the slot has an initform, so an initform of NIL can be distinguished from not having an initform at all.

Package

docparser

Source

nodes.lisp (file)

Function: symbol-external-p SYMBOL

Whether or not a symbol is external.

Package

docparser

Source

nodes.lisp (file)

Function: symbol-package-name SYMBOL

Return the name of a package’s symbol.

Package

docparser

Source

nodes.lisp (file)


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

6.1.4 Generic functions

Generic Function: cffi-bitfield-masks OBJECT
Package

docparser

Methods
Method: cffi-bitfield-masks (CFFI-BITFIELD cffi-bitfield)

A list of masks (keywords).

Source

nodes.lisp (file)

Generic Function: cffi-enum-variants OBJECT
Package

docparser

Methods
Method: cffi-enum-variants (CFFI-ENUM cffi-enum)

A list of enum values (keywords).

Source

nodes.lisp (file)

Generic Function: cffi-function-return-type OBJECT
Package

docparser

Methods
Method: cffi-function-return-type (CFFI-FUNCTION cffi-function)

The function’s return type.

Source

nodes.lisp (file)

Generic Function: cffi-slot-type OBJECT
Package

docparser

Methods
Method: cffi-slot-type (CFFI-SLOT cffi-slot)

The slot’s type.

Source

nodes.lisp (file)

Generic Function: cffi-struct-slots OBJECT
Package

docparser

Methods
Method: cffi-struct-slots (CFFI-STRUCT cffi-struct)

A list of CFFI slots.

Source

nodes.lisp (file)

Generic Function: cffi-type-base-type OBJECT
Package

docparser

Methods
Method: cffi-type-base-type (CFFI-TYPE cffi-type)

The type’s base type.

Source

nodes.lisp (file)

Generic Function: cffi-union-variants OBJECT
Package

docparser

Methods
Method: cffi-union-variants (CFFI-UNION cffi-union)

A list of CFFI slots.

Source

nodes.lisp (file)

Generic Function: class-node-superclasses OBJECT
Package

docparser

Methods
Method: class-node-superclasses (CLASS-NODE class-node)

A list of the class’s superclasses (symbols).

Source

nodes.lisp (file)

Generic Function: node-docstring OBJECT
Package

docparser

Methods
Method: node-docstring (DOCUMENTATION-NODE documentation-node)

The node’s documentation.

Source

nodes.lisp (file)

Generic Function: node-form OBJECT
Generic Function: (setf node-form) NEW-VALUE OBJECT
Package

docparser

Methods
Method: node-form (NAME-NODE name-node)
Method: (setf node-form) NEW-VALUE (NAME-NODE name-node)

The original form.

Source

nodes.lisp (file)

Generic Function: node-name OBJECT
Package

docparser

Methods
Method: node-name (NAME-NODE name-node)

The symbol name of the operator, variable, or class.

Source

nodes.lisp (file)

Generic Function: node= A B

Test whether a and b are equal.

Package

docparser

Source

equal.lisp (file)

Methods
Method: node= (A cffi-bitfield) (B cffi-bitfield)
Method: node= (A cffi-enum) (B cffi-enum)
Method: node= (A cffi-union) (B cffi-union)
Method: node= (A cffi-struct) (B cffi-struct)
Method: node= (A cffi-slot) (B cffi-slot)
Method: node= (A cffi-type) (B cffi-type)
Method: node= (A cffi-function) (B cffi-function)
Method: node= (A class-node) (B class-node)
Method: node= (A struct-node) (B struct-node)
Method: node= (A class-slot-node) (B class-slot-node)
Method: node= (A method-node) (B method-node)
Method: node= (A generic-function-node) (B generic-function-node)
Method: node= (A function-node) (B function-node)
Method: node= (A operator-node) (B operator-node)
Method: node= (A documentation-node) (B documentation-node)
Method: node= (A name-node) (B name-node)
Method: node= A B

The default method.

Generic Function: operator-lambda-list OBJECT
Package

docparser

Methods
Method: operator-lambda-list (OPERATOR-NODE operator-node)

The operator’s lambda list.

Source

nodes.lisp (file)

Generic Function: operator-setf-p OBJECT
Package

docparser

Methods
Method: operator-setf-p (OPERATOR-NODE operator-node)

Whether the operator is a setf operation.

Source

nodes.lisp (file)

Generic Function: package-index-docstring OBJECT
Package

docparser

Methods
Method: package-index-docstring (PACKAGE-INDEX package-index)

The package’s docstring.

Source

core.lisp (file)

Generic Function: package-index-name OBJECT
Package

docparser

Methods
Method: package-index-name (PACKAGE-INDEX package-index)

The package’s name.

Source

core.lisp (file)

Generic Function: record-slots OBJECT
Package

docparser

Methods
Method: record-slots (CLASS-NODE class-node)

A list of slots.

Source

nodes.lisp (file)

Method: record-slots (STRUCT-NODE struct-node)

A list of slots.

Source

nodes.lisp (file)

Generic Function: slot-accessors OBJECT
Package

docparser

Methods
Method: slot-accessors (CLASS-SLOT-NODE class-slot-node)

automatically generated reader method

Source

nodes.lisp (file)

Generic Function: slot-allocation OBJECT
Package

docparser

Methods
Method: slot-allocation (CLASS-SLOT-NODE class-slot-node)

The slot’s allocation type.

Source

nodes.lisp (file)

Generic Function: slot-initarg OBJECT
Package

docparser

Methods
Method: slot-initarg (CLASS-SLOT-NODE class-slot-node)

The slot’s initarg.

Source

nodes.lisp (file)

Generic Function: slot-readers OBJECT
Package

docparser

Methods
Method: slot-readers (CLASS-SLOT-NODE class-slot-node)

automatically generated reader method

Source

nodes.lisp (file)

Generic Function: slot-type OBJECT
Package

docparser

Methods
Method: slot-type (CLASS-SLOT-NODE class-slot-node)

The slot’s type.

Source

nodes.lisp (file)

Generic Function: slot-writers OBJECT
Package

docparser

Methods
Method: slot-writers (CLASS-SLOT-NODE class-slot-node)

automatically generated reader method

Source

nodes.lisp (file)

Generic Function: variable-initial-value OBJECT
Package

docparser

Methods
Method: variable-initial-value (VARIABLE-NODE variable-node)

automatically generated reader method

Source

nodes.lisp (file)


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

6.1.5 Classes

Class: cffi-bitfield ()

A C bitfield.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: masks

A list of masks (keywords).

Type

(trivial-types:proper-list keyword)

Initargs

:masks

Readers

cffi-bitfield-masks (generic function)

Class: cffi-enum ()

A C enum.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: variants

A list of enum values (keywords).

Type

(trivial-types:proper-list keyword)

Initargs

:variants

Readers

cffi-enum-variants (generic function)

Class: cffi-function ()

A C function.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: return-type

The function’s return type.

Initargs

:return-type

Readers

cffi-function-return-type (generic function)

Class: cffi-node ()

The base class of all CFFI documentation nodes. Does not
inherit from documentation-node as not all sub-nodes have docstrings.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Class: cffi-slot ()

A struct or union slot.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

name-node (class)

Direct methods
Direct slots
Slot: type

The slot’s type.

Initargs

:type

Readers

cffi-slot-type (generic function)

Class: cffi-struct ()

A C structure.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: slots

A list of CFFI slots.

Type

(trivial-types:proper-list docparser:cffi-slot)

Initargs

:slots

Readers

cffi-struct-slots (generic function)

Class: cffi-type ()

A C type.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: base-type

The type’s base type.

Initargs

:base-type

Readers

cffi-type-base-type (generic function)

Class: cffi-union ()

A C union.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: variants

A list of CFFI slots.

Type

(trivial-types:proper-list docparser:cffi-slot)

Initargs

:variants

Readers

cffi-union-variants (generic function)

Class: class-node ()

A class.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

record-node (class)

Direct subclasses

condition-node (class)

Direct methods
Direct slots
Slot: superclasses

A list of the class’s superclasses (symbols).

Type

(trivial-types:proper-list symbol)

Initargs

:superclasses

Readers

class-node-superclasses (generic function)

Slot: slots

A list of slots.

Type

(trivial-types:proper-list docparser:class-slot-node)

Initargs

:slots

Readers

record-slots (generic function)

Class: class-slot-node ()

A class or structure slot.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

documentation-node (class)

Direct methods
Direct slots
Slot: accessors
Type

(trivial-types:proper-list symbol)

Initargs

:accessors

Readers

slot-accessors (generic function)

Slot: readers
Type

(trivial-types:proper-list symbol)

Initargs

:readers

Readers

slot-readers (generic function)

Slot: writers
Type

(trivial-types:proper-list symbol)

Initargs

:writers

Readers

slot-writers (generic function)

Slot: type

The slot’s type.

Initargs

:type

Readers

slot-type (generic function)

Slot: initarg

The slot’s initarg.

Initargs

:initarg

Readers

slot-initarg (generic function)

Slot: initform

The slot’s initform.

Initargs

:initform

Slot: allocation

The slot’s allocation type.

Type

keyword

Initargs

:allocation

Initform

:instance

Readers

slot-allocation (generic function)

Class: condition-node ()

A condition.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

class-node (class)

Direct methods

print-object (method)

Class: documentation-node ()

The base class of all documentable nodes.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

name-node (class)

Direct subclasses
Direct methods
Direct slots
Slot: node-docstring

The node’s documentation.

Type

(or null string)

Initargs

:docstring

Readers

node-docstring (generic function)

Class: function-node ()

A function.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

operator-node (class)

Direct subclasses

cffi-function (class)

Direct methods

node= (method)

Class: generic-function-node ()

A generic function.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

operator-node (class)

Direct methods

node= (method)

Class: index ()

Holds system documentation, and the internal package indices.

Package

docparser

Source

core.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: packages

A vector of package indices.

Type

(vector docparser:package-index)

Initform

(make-array 0 :adjustable t :element-type (quote docparser:package-index) :fill-pointer 0)

Readers

index-packages (generic function)

Writers

(setf index-packages) (generic function)

Class: macro-node ()

A macro.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

operator-node (class)

Class: method-node ()

A method.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

operator-node (class)

Direct methods
  • node= (method)
  • method-qualifiers (method)
Direct slots
Slot: qualifiers
Initargs

:qualifiers

Readers

method-qualifiers (generic function)

Class: name-node ()

The base class of nodes with symbol names.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

node (class)

Direct subclasses
Direct methods
Direct slots
Slot: form

The original form.

Initargs

:form

Readers

node-form (generic function)

Writers

(setf node-form) (generic function)

Slot: node-name

The symbol name of the operator, variable, or class.

Type

symbol

Initargs

:name

Readers

node-name (generic function)

Class: node ()

The base class of all nodes.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

name-node (class)

Class: operator-node ()

The base class of functions and macros.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

documentation-node (class)

Direct subclasses
Direct methods
Direct slots
Slot: lambda-list

The operator’s lambda list.

Initargs

:lambda-list

Readers

operator-lambda-list (generic function)

Slot: setfp

Whether the operator is a setf operation.

Type

boolean

Initargs

:setfp

Readers

operator-setf-p (generic function)

Class: package-index ()

Holds the documented objects in this package.

Package

docparser

Source

core.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name

The package’s name.

Type

string

Initargs

:name

Readers

package-index-name (generic function)

Slot: docstring

The package’s docstring.

Type

(or null string)

Initargs

:docstring

Readers

package-index-docstring (generic function)

Slot: nodes

A vector of documentation objects.

Type

(vector docparser:documentation-node)

Initform

(make-array 0 :adjustable t :element-type (quote docparser:documentation-node) :fill-pointer 0)

Readers

package-index-nodes (generic function)

Writers

(setf package-index-nodes) (generic function)

Class: record-node ()

The base class of all nodes representing record-like data type definitions (i.e. structures, classes).

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

documentation-node (class)

Direct subclasses
Class: struct-node ()

A structure.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

record-node (class)

Direct methods
Direct slots
Slot: slots

A list of slots.

Type

(trivial-types:proper-list docparser:struct-slot-node)

Initargs

:slots

Readers

record-slots (generic function)

Class: struct-slot-node ()

A structure’s slot.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

name-node (class)

Class: type-node ()

A type.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

operator-node (class)

Direct methods

print-object (method)

Class: variable-node ()

A variable.

Package

docparser

Source

nodes.lisp (file)

Direct superclasses

documentation-node (class)

Direct methods
Direct slots
Slot: variable-initial-value
Initargs

:initial-value

Readers

variable-initial-value (generic function)


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

6.2 Internal definitions


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

6.2.1 Special variables

Special Variable: *parsers*

A list of symbols to the functions used to parse their corresponding forms.

Package

docparser

Source

core.lisp (file)


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

6.2.2 Macros

Macro: define-equality (A B CLASS) &body BODY
Package

docparser

Source

equal.lisp (file)

Macro: with-ignored-errors () &body BODY

Catch and ignore certain errors.

Package

docparser

Source

core.lisp (file)


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

6.2.3 Functions

Function: add-node INDEX NODE

Add a node to an index, finding the proper package index.

Package

docparser

Source

core.lisp (file)

Function: add-package-index INDEX PACKAGE-INDEX
Package

docparser

Source

core.lisp (file)

Function: ensure-preload SYSTEM-NAME
Package

docparser

Source

core.lisp (file)

Function: find-nodes INDEX PACKAGE-PREDICATE NODE-PREDICATE

Return a vector of nodes satisfying node-predicate, in packages satisfying package-predicate.

Package

docparser

Source

core.lisp (file)

Function: find-package-index INDEX PACKAGE-NAME

Return the package-index with that name, or NIL.

Package

docparser

Source

core.lisp (file)

Function: load-system SYSTEM-NAME

Load an ASDF system by name.

Package

docparser

Source

core.lisp (file)

Function: node-exists-p INDEX NODE

Does the node exist in the package index.

Package

docparser

Source

core.lisp (file)

Function: parse-cffi-slot FORM
Package

docparser

Source

parsers.lisp (file)

Function: parse-form FORM

Parse a form into a node.

Package

docparser

Source

core.lisp (file)

Function: parse-package-definition FORM
Package

docparser

Source

core.lisp (file)

Function: parse-slot SLOT
Package

docparser

Source

parsers.lisp (file)

Function: parse-struct-slot SLOT
Package

docparser

Source

parsers.lisp (file)

Function: parse-system INDEX SYSTEM-NAME

Parse a system.

Package

docparser

Source

core.lisp (file)

Function: parse-var FORM
Package

docparser

Source

parsers.lisp (file)

Function: slot-or-nil OBJECT SLOT
Package

docparser

Source

equal.lisp (file)


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

6.2.4 Generic functions

Generic Function: index-packages OBJECT
Generic Function: (setf index-packages) NEW-VALUE OBJECT
Package

docparser

Methods
Method: index-packages (INDEX index)
Method: (setf index-packages) NEW-VALUE (INDEX index)

A vector of package indices.

Source

core.lisp (file)

Generic Function: package-index-nodes OBJECT
Generic Function: (setf package-index-nodes) NEW-VALUE OBJECT
Package

docparser

Methods
Method: package-index-nodes (PACKAGE-INDEX package-index)
Method: (setf package-index-nodes) NEW-VALUE (PACKAGE-INDEX package-index)

A vector of documentation objects.

Source

core.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   D   F   L   M  
Index Entry  Section

D
docparser.asd: The docparser<dot>asd file
docparser/src: The docparser/src module
docparser/src/core.lisp: The docparser/src/core<dot>lisp file
docparser/src/equal.lisp: The docparser/src/equal<dot>lisp file
docparser/src/nodes.lisp: The docparser/src/nodes<dot>lisp file
docparser/src/package.lisp: The docparser/src/package<dot>lisp file
docparser/src/parsers.lisp: The docparser/src/parsers<dot>lisp file
docparser/src/print.lisp: The docparser/src/print<dot>lisp file

F
File, Lisp, docparser.asd: The docparser<dot>asd file
File, Lisp, docparser/src/core.lisp: The docparser/src/core<dot>lisp file
File, Lisp, docparser/src/equal.lisp: The docparser/src/equal<dot>lisp file
File, Lisp, docparser/src/nodes.lisp: The docparser/src/nodes<dot>lisp file
File, Lisp, docparser/src/package.lisp: The docparser/src/package<dot>lisp file
File, Lisp, docparser/src/parsers.lisp: The docparser/src/parsers<dot>lisp file
File, Lisp, docparser/src/print.lisp: The docparser/src/print<dot>lisp file

L
Lisp File, docparser.asd: The docparser<dot>asd file
Lisp File, docparser/src/core.lisp: The docparser/src/core<dot>lisp file
Lisp File, docparser/src/equal.lisp: The docparser/src/equal<dot>lisp file
Lisp File, docparser/src/nodes.lisp: The docparser/src/nodes<dot>lisp file
Lisp File, docparser/src/package.lisp: The docparser/src/package<dot>lisp file
Lisp File, docparser/src/parsers.lisp: The docparser/src/parsers<dot>lisp file
Lisp File, docparser/src/print.lisp: The docparser/src/print<dot>lisp file

M
Module, docparser/src: The docparser/src module

Jump to:   D   F   L   M  

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

A.2 Functions

Jump to:   (  
A   C   D   E   F   G   I   L   M   N   O   P   Q   R   S   V   W  
Index Entry  Section

(
(setf index-packages): Internal generic functions
(setf index-packages): Internal generic functions
(setf node-form): Exported generic functions
(setf node-form): Exported generic functions
(setf package-index-nodes): Internal generic functions
(setf package-index-nodes): Internal generic functions

A
add-node: Internal functions
add-package-index: Internal functions

C
cffi-bitfield-masks: Exported generic functions
cffi-bitfield-masks: Exported generic functions
cffi-enum-variants: Exported generic functions
cffi-enum-variants: Exported generic functions
cffi-function-return-type: Exported generic functions
cffi-function-return-type: Exported generic functions
cffi-slot-type: Exported generic functions
cffi-slot-type: Exported generic functions
cffi-struct-slots: Exported generic functions
cffi-struct-slots: Exported generic functions
cffi-type-base-type: Exported generic functions
cffi-type-base-type: Exported generic functions
cffi-union-variants: Exported generic functions
cffi-union-variants: Exported generic functions
class-node-superclasses: Exported generic functions
class-node-superclasses: Exported generic functions

D
define-equality: Internal macros
define-parser: Exported macros
do-nodes: Exported macros
do-packages: Exported macros
dump: Exported functions

E
ensure-preload: Internal functions
extract-docstring: Exported functions

F
find-nodes: Internal functions
find-package-index: Internal functions
Function, add-node: Internal functions
Function, add-package-index: Internal functions
Function, dump: Exported functions
Function, ensure-preload: Internal functions
Function, extract-docstring: Exported functions
Function, find-nodes: Internal functions
Function, find-package-index: Internal functions
Function, load-system: Internal functions
Function, node-exists-p: Internal functions
Function, parse: Exported functions
Function, parse-cffi-slot: Internal functions
Function, parse-form: Internal functions
Function, parse-package-definition: Internal functions
Function, parse-slot: Internal functions
Function, parse-struct-slot: Internal functions
Function, parse-system: Internal functions
Function, parse-var: Internal functions
Function, query: Exported functions
Function, render-humanize: Exported functions
Function, slot-initform: Exported functions
Function, slot-or-nil: Internal functions
Function, symbol-external-p: Exported functions
Function, symbol-package-name: Exported functions

G
Generic Function, (setf index-packages): Internal generic functions
Generic Function, (setf node-form): Exported generic functions
Generic Function, (setf package-index-nodes): Internal generic functions
Generic Function, cffi-bitfield-masks: Exported generic functions
Generic Function, cffi-enum-variants: Exported generic functions
Generic Function, cffi-function-return-type: Exported generic functions
Generic Function, cffi-slot-type: Exported generic functions
Generic Function, cffi-struct-slots: Exported generic functions
Generic Function, cffi-type-base-type: Exported generic functions
Generic Function, cffi-union-variants: Exported generic functions
Generic Function, class-node-superclasses: Exported generic functions
Generic Function, index-packages: Internal generic functions
Generic Function, node-docstring: Exported generic functions
Generic Function, node-form: Exported generic functions
Generic Function, node-name: Exported generic functions
Generic Function, node=: Exported generic functions
Generic Function, operator-lambda-list: Exported generic functions
Generic Function, operator-setf-p: Exported generic functions
Generic Function, package-index-docstring: Exported generic functions
Generic Function, package-index-name: Exported generic functions
Generic Function, package-index-nodes: Internal generic functions
Generic Function, record-slots: Exported generic functions
Generic Function, slot-accessors: Exported generic functions
Generic Function, slot-allocation: Exported generic functions
Generic Function, slot-initarg: Exported generic functions
Generic Function, slot-readers: Exported generic functions
Generic Function, slot-type: Exported generic functions
Generic Function, slot-writers: Exported generic functions
Generic Function, variable-initial-value: Exported generic functions

I
index-packages: Internal generic functions
index-packages: Internal generic functions

L
load-system: Internal functions

M
Macro, define-equality: Internal macros
Macro, define-parser: Exported macros
Macro, do-nodes: Exported macros
Macro, do-packages: Exported macros
Macro, with-ignored-errors: Internal macros
Method, (setf index-packages): Internal generic functions
Method, (setf node-form): Exported generic functions
Method, (setf package-index-nodes): Internal generic functions
Method, cffi-bitfield-masks: Exported generic functions
Method, cffi-enum-variants: Exported generic functions
Method, cffi-function-return-type: Exported generic functions
Method, cffi-slot-type: Exported generic functions
Method, cffi-struct-slots: Exported generic functions
Method, cffi-type-base-type: Exported generic functions
Method, cffi-union-variants: Exported generic functions
Method, class-node-superclasses: Exported generic functions
Method, index-packages: Internal generic functions
Method, node-docstring: Exported generic functions
Method, node-form: Exported generic functions
Method, node-name: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, node=: Exported generic functions
Method, operator-lambda-list: Exported generic functions
Method, operator-setf-p: Exported generic functions
Method, package-index-docstring: Exported generic functions
Method, package-index-name: Exported generic functions
Method, package-index-nodes: Internal generic functions
Method, record-slots: Exported generic functions
Method, record-slots: Exported generic functions
Method, slot-accessors: Exported generic functions
Method, slot-allocation: Exported generic functions
Method, slot-initarg: Exported generic functions
Method, slot-readers: Exported generic functions
Method, slot-type: Exported generic functions
Method, slot-writers: Exported generic functions
Method, variable-initial-value: Exported generic functions

N
node-docstring: Exported generic functions
node-docstring: Exported generic functions
node-exists-p: Internal functions
node-form: Exported generic functions
node-form: Exported generic functions
node-name: Exported generic functions
node-name: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions
node=: Exported generic functions

O
operator-lambda-list: Exported generic functions
operator-lambda-list: Exported generic functions
operator-setf-p: Exported generic functions
operator-setf-p: Exported generic functions

P
package-index-docstring: Exported generic functions
package-index-docstring: Exported generic functions
package-index-name: Exported generic functions
package-index-name: Exported generic functions
package-index-nodes: Internal generic functions
package-index-nodes: Internal generic functions
parse: Exported functions
parse-cffi-slot: Internal functions
parse-form: Internal functions
parse-package-definition: Internal functions
parse-slot: Internal functions
parse-struct-slot: Internal functions
parse-system: Internal functions
parse-var: Internal functions

Q
query: Exported functions

R
record-slots: Exported generic functions
record-slots: Exported generic functions
record-slots: Exported generic functions
render-humanize: Exported functions

S
slot-accessors: Exported generic functions
slot-accessors: Exported generic functions
slot-allocation: Exported generic functions
slot-allocation: Exported generic functions
slot-initarg: Exported generic functions
slot-initarg: Exported generic functions
slot-initform: Exported functions
slot-or-nil: Internal functions
slot-readers: Exported generic functions
slot-readers: Exported generic functions
slot-type: Exported generic functions
slot-type: Exported generic functions
slot-writers: Exported generic functions
slot-writers: Exported generic functions
symbol-external-p: Exported functions
symbol-package-name: Exported functions

V
variable-initial-value: Exported generic functions
variable-initial-value: Exported generic functions

W
with-ignored-errors: Internal macros

Jump to:   (  
A   C   D   E   F   G   I   L   M   N   O   P   Q   R   S   V   W  

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

A.3 Variables

Jump to:   *  
A   B   D   F   I   L   M   N   P   Q   R   S   T   V   W  
Index Entry  Section

*
*parsers*: Internal special variables
*store-form*: Exported special variables

A
accessors: Exported classes
allocation: Exported classes

B
base-type: Exported classes

D
docstring: Exported classes

F
form: Exported classes

I
initarg: Exported classes
initform: Exported classes

L
lambda-list: Exported classes

M
masks: Exported classes

N
name: Exported classes
node-docstring: Exported classes
node-name: Exported classes
nodes: Exported classes

P
packages: Exported classes

Q
qualifiers: Exported classes

R
readers: Exported classes
return-type: Exported classes

S
setfp: Exported classes
Slot, accessors: Exported classes
Slot, allocation: Exported classes
Slot, base-type: Exported classes
Slot, docstring: Exported classes
Slot, form: Exported classes
Slot, initarg: Exported classes
Slot, initform: Exported classes
Slot, lambda-list: Exported classes
Slot, masks: Exported classes
Slot, name: Exported classes
Slot, node-docstring: Exported classes
Slot, node-name: Exported classes
Slot, nodes: Exported classes
Slot, packages: Exported classes
Slot, qualifiers: Exported classes
Slot, readers: Exported classes
Slot, return-type: Exported classes
Slot, setfp: Exported classes
Slot, slots: Exported classes
Slot, slots: Exported classes
Slot, slots: Exported classes
Slot, superclasses: Exported classes
Slot, type: Exported classes
Slot, type: Exported classes
Slot, variable-initial-value: Exported classes
Slot, variants: Exported classes
Slot, variants: Exported classes
Slot, writers: Exported classes
slots: Exported classes
slots: Exported classes
slots: Exported classes
Special Variable, *parsers*: Internal special variables
Special Variable, *store-form*: Exported special variables
superclasses: Exported classes

T
type: Exported classes
type: Exported classes

V
variable-initial-value: Exported classes
variants: Exported classes
variants: Exported classes

W
writers: Exported classes

Jump to:   *  
A   B   D   F   I   L   M   N   P   Q   R   S   T   V   W  

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

A.4 Data types

Jump to:   C   D   F   G   I   M   N   O   P   R   S   T   V  
Index Entry  Section

C
cffi-bitfield: Exported classes
cffi-enum: Exported classes
cffi-function: Exported classes
cffi-node: Exported classes
cffi-slot: Exported classes
cffi-struct: Exported classes
cffi-type: Exported classes
cffi-union: Exported classes
Class, cffi-bitfield: Exported classes
Class, cffi-enum: Exported classes
Class, cffi-function: Exported classes
Class, cffi-node: Exported classes
Class, cffi-slot: Exported classes
Class, cffi-struct: Exported classes
Class, cffi-type: Exported classes
Class, cffi-union: Exported classes
Class, class-node: Exported classes
Class, class-slot-node: Exported classes
Class, condition-node: Exported classes
Class, documentation-node: Exported classes
Class, function-node: Exported classes
Class, generic-function-node: Exported classes
Class, index: Exported classes
Class, macro-node: Exported classes
Class, method-node: Exported classes
Class, name-node: Exported classes
Class, node: Exported classes
Class, operator-node: Exported classes
Class, package-index: Exported classes
Class, record-node: Exported classes
Class, struct-node: Exported classes
Class, struct-slot-node: Exported classes
Class, type-node: Exported classes
Class, variable-node: Exported classes
class-node: Exported classes
class-slot-node: Exported classes
condition-node: Exported classes

D
docparser: The docparser system
docparser: The docparser package
documentation-node: Exported classes

F
function-node: Exported classes

G
generic-function-node: Exported classes

I
index: Exported classes

M
macro-node: Exported classes
method-node: Exported classes

N
name-node: Exported classes
node: Exported classes

O
operator-node: Exported classes

P
Package, docparser: The docparser package
package-index: Exported classes

R
record-node: Exported classes

S
struct-node: Exported classes
struct-slot-node: Exported classes
System, docparser: The docparser system

T
type-node: Exported classes

V
variable-node: Exported classes

Jump to:   C   D   F   G   I   M   N   O   P   R   S   T   V