Acme::Ook - the Ook! programming language


Acme-Ook documentation  | view source Contained in the Acme-Ook distribution.

Index


NAME

Top

Acme::Ook - the Ook! programming language

SYNOPSIS

Top

    ook ook.ook

or

    use Acme::Ook;
    my $Ook = Acme::Ook->new;
    $Ook->Ook($Ook);

DESCRIPTION

Top

As described in http://www.dangermouse.net/esoteric/ook.html

    Since the word "ook" can convey entire ideas, emotions, and
    abstract thoughts depending on the nuances of inflection, Ook!
    has no need of comments. The code itself serves perfectly well to
    describe in detail what it does and how it does it. Provided you
    are an orang-utan.

Here's for example how to print a file in reverse order:

    Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook! Ook? Ook!
    Ook? Ook. Ook! Ook! Ook! Ook? Ook. Ook. Ook! Ook.
    Ook? Ook. Ook! Ook! Ook? Ook!

The language specification can be found from the above URL.

Despite the above, the interpreter does understand comments, the #-until-end-of-line kind.

MODULE

Top

The Acme::Ook is the backend for the Ook interpreter.

Methods

new

The constructor. One optional argument, a string of Ook! that will be executed before any code supplied in Ook().

Ook

The interpreter. Compiles, optimises and executes the Ook! code. Takes one or more arguments, either filenames or IO globs, or no arguments, in which case the stdin is read.

compile

The compiler. Takes the same arguments as Ook(). Normally not used directly but instead via Ook() that also executes the code. Returns the intermediate code.

optimise

The optimiser. Takes the intermediate code from the compiler and optimises it slightly. Currently it creates better code for runs of repeated increment or decrement.

INTERPRETER

Top

The interpreter is the frontend to the Acme::Ook module. It is used as one would imagine: given one (or more) Ook! input files (or none, in which case stdin is expected to contain Ook!), the interpreter compiles and executes the Ook.

Command Line Options

There are three command line options:

-l

Some example programs look better if an extra newline is shown after the execution.

-O

Use the optimiser on the intermediate code.

-S

If you want to see the intermediate code.

BLACK MAGIC

To re-ook the Ook you can use the O? and O! class methods. Not that you should.

DIAGNOSTICS

Top

If your code doesn't look like proper Ook!, the interpreter will make its confusion known, similarly if an input file cannot be read.

AUTHOR, COPYRIGHT, LICENSE

Top

DISCLAIMER

Top

I never called anyone a monkey. Honest.


Acme-Ook documentation  | view source Contained in the Acme-Ook distribution.