The ook Reference Manual

Table of Contents

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

The ook Reference Manual

This is the ook Reference Manual, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 04:22:28 2018 GMT+0.


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

1 Introduction

OOK!

A Common Lisp compiler and decompiler for the programming language OOK!.

It is well known that orangutans grok Lisp.

Author

Marco "Wizzard" Antoniotti, 2015-2018

License

This library is put in the Public Domain


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 ook

Author

Marco ’Wizzard’ Antoniotti

License

Public Domain

Description

A CL compiler and enviroment for literate Orangutans.

Source

ook.asd (file)

Components

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

3 Files

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


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

3.1 Lisp


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

3.1.1 ook.asd

Location

ook.asd

Systems

ook (system)


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

3.1.2 ook/ook-package.lisp

Parent

ook (system)

Location

ook-package.lisp

Packages

ook


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

3.1.3 ook/ook.lisp

Dependency

ook-package.lisp (file)

Parent

ook (system)

Location

ook.lisp

Exported Definitions
Internal Definitions

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

4 Packages

Packages are listed by definition order.


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

4.1 ook

Source

ook-package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

5 Definitions

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


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

5.1 Exported definitions


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

5.1.1 Constants

Constant: monkey?!?

You are in trouble if you call him ’monkey’!

Package

ook

Source

ook.lisp (file)


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

5.1.2 Functions

Function: gently-ask-the-librarian OOKS &optional RUN

ACTUALLY, the main request for interpretation of OOKS.

Naturally, to be asked gently.

It compiles the OOKS and executes them if the optional RUN parameter is T;
it returns the compiled function that contains the OOKS. The function
can then be reused as needed.

Arguments and Values:

OOKS : some ’ooks’.
RUN : a generalized boolean, default is T.
result : a compiled function taking no arguments.

Examples:

cl-prompt> (ook? #P"bottles.ook")

Notes:

The compiler (which eventually calls the <strong>CL</strong> <code>compile</code> function) may take a long time. Whether this is due to the size of
the TAGBODY generated or whether the Librarian has run out of bananas
and went looking for them in the Unseen University kitchen, it is
unknown, but, surely, somewhat magical.

See Also:

OOK? OOK.

Package

ook

Source

ook.lisp (file)

Function: koo OOKS &optional LIBRARY-STREAM

The Ook decompiler.

Takes the LAMBDA generated by the compiler and wirtes out the programs in a format readable by an orangutan (or by a well fed and drunk wizard, unless he is asleep, which will be the case most of the time when well fed and drunk).

I am repeating this because KOO is called by OOK! (the decompiler) and wizards have been known to require more than a repetition of whatever it is said (especially during Faculty Meetings.)

See Also:

OOK!

Package

ook

Source

ook.lisp (file)

Function: ook! OOKS &optional LIBRARY-STREAM

The Ook decompiler.

Takes the LAMBDA generated by the compiler and wirtes out the programs in a format readable by an orangutan (or by a well fed and drunk wizard, unless he is asleep, which will be the case most of the time when well fed and drunk).

See Also:

KOO

Package

ook

Source

ook.lisp (file)

Function: ook? OOKS

The main request for interpretation of OOKS.

Or to peel a banana. Works as well. It is actually a wrapper for gently asking the Librarian for some information.

See Also:

GENTLY-ASK-THE-LIBRARIAN

Package

ook

Source

ook.lisp (file)


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

5.1.3 Generic functions

Generic Function: ook. OOKS

The OOK compiler entry point.

This generic function just wraps the actual compiler, which expects a list of - you guessed it - ’ooks’.

Arguments and Values:

OOKS : see the methods’ descriptions.
result : a lambda-expression taking no arguments.

Package

ook

Source

ook.lisp (file)

Methods
Method: ook. OOKS

You are in trouble! This method says ’monkey?!?.

Method: ook. (OOKS list)

OOKS is a list of OOKs to be compiled pair by pair.

The result is a LAMBDA of no arguments that contains the compiled program (essentially a giant TAGBODY).

Method: ook. (OOKS stream)

Compiles the OOKS from the (banana) STREAM.

Method: ook. (OOKS pathname)

The pathname containing the OOKS is opened and its content read.

Method: ook. (OOKS string)

Dispatches on a pathname containing the OOKS.


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

5.2 Internal definitions


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

5.2.1 Special variables

Special Variable: *index*

The library counter (counts more than banana peels).

Package

ook

Source

ook.lisp (file)

Special Variable: *library*

The place where library is located (can be ’unseen’).

Package

ook

Source

ook.lisp (file)

Special Variable: +ooks+

Need we say more?

Package

ook

Source

ook.lisp (file)


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

5.2.2 Functions

Function: make-library ()

Creates the memory where the progr... sorry, the ’ooks’, reside.

Package

ook

Source

ook.lisp (file)

Function: the-ooks OOKS
Package

ook

Source

ook.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   O  
Index Entry  Section

F
File, Lisp, ook.asd: The ook<dot>asd file
File, Lisp, ook/ook-package.lisp: The ook/ook-package<dot>lisp file
File, Lisp, ook/ook.lisp: The ook/ook<dot>lisp file

L
Lisp File, ook.asd: The ook<dot>asd file
Lisp File, ook/ook-package.lisp: The ook/ook-package<dot>lisp file
Lisp File, ook/ook.lisp: The ook/ook<dot>lisp file

O
ook.asd: The ook<dot>asd file
ook/ook-package.lisp: The ook/ook-package<dot>lisp file
ook/ook.lisp: The ook/ook<dot>lisp file

Jump to:   F   L   O  

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

A.2 Functions

Jump to:   F   G   K   M   O   T  
Index Entry  Section

F
Function, gently-ask-the-librarian: Exported functions
Function, koo: Exported functions
Function, make-library: Internal functions
Function, ook!: Exported functions
Function, ook?: Exported functions
Function, the-ooks: Internal functions

G
Generic Function, ook.: Exported generic functions
gently-ask-the-librarian: Exported functions

K
koo: Exported functions

M
make-library: Internal functions
Method, ook.: Exported generic functions
Method, ook.: Exported generic functions
Method, ook.: Exported generic functions
Method, ook.: Exported generic functions
Method, ook.: Exported generic functions

O
ook!: Exported functions
ook.: Exported generic functions
ook.: Exported generic functions
ook.: Exported generic functions
ook.: Exported generic functions
ook.: Exported generic functions
ook.: Exported generic functions
ook?: Exported functions

T
the-ooks: Internal functions

Jump to:   F   G   K   M   O   T  

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

A.3 Variables

Jump to:   *   +  
C   M   S  
Index Entry  Section

*
*index*: Internal special variables
*library*: Internal special variables

+
+ooks+: Internal special variables

C
Constant, monkey?!?: Exported constants

M
monkey?!?: Exported constants

S
Special Variable, *index*: Internal special variables
Special Variable, *library*: Internal special variables
Special Variable, +ooks+: Internal special variables

Jump to:   *   +  
C   M   S  

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

A.4 Data types

Jump to:   O   P   S  
Index Entry  Section

O
ook: The ook system
ook: The ook package

P
Package, ook: The ook package

S
System, ook: The ook system

Jump to:   O   P   S