calculus1
Algebraic type system tool
Usage
calculus [options]
input-file ...
[output]
Overview
calculus translates a specification of an algebraic type system, input-file, into code representing that system. This takes the form of a number of files which are generated in the output directory, output. If no output directory is specified then the current working directory is used.
Input files and command-line options may be given in any order. Options always relate to the input files immediately following.
By default, C code implementing the type system is generated, however this may be changed by means of command-line options.
Options
-
-Aname -
Specifies that the algebra named name should be used by the output routines. Unless otherwise specified the last algebra input is used for output.
-
-Efile -
Specifies a file containing a list of extra types to
calculus. These are used, for example, to generate extra disk reading and writing routines in conjunction with the-doption.
-
-Tfile -
Specifies a template file which is used to generate an output file output.
-
-a -
Causes
calculusto generate extra statements in its C code which includes assertions about null pointers etc. and other code to help in writing programs using the tool.
-
-d -
Causes
calculusto generate disk reading and writing routines designed to add persistence to the generated type system.
-
-i -
Indicates to
calculusthat input is a simple input file.
-
-o -
Causes
calculusto output a pretty-print of the input algebra into output, which in this instance in an output file. If no output file is given then the standard output is used.
-
-p -
Causes
calculusto generate printing routines designed for use in the debugging of programs written using the type system.
-
-r -
Indicates to
calculusthat input is the output of a previous-woption.
-
-t -
Causes
calculusto generate #pragma token commands describing the type system. These are designed so that tcc(1) can apply extremely rigorous type checking to programs written using the type system.
-
-v -
Causes
calculusprint its version number.
-
-w -
Causes
calculusto output a dump of the input algebra into output, which in this instance is an output file.
-
-x -
Causes
calculusto suppress the vector and vector pointer constructs in its output.
Releases
Unchanged in 6 releases since Debian 2.2 (Potato).