calculus(1)
NAME
calculus - algebraic type system tool
SYNOPSIS
calculus [ options ] input-file ... [ output ]
DESCRIPTION
calculus translates a specification of an algebraic type system, inputfile, 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 out
- put 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 -d option.
- -Tfile Specifies a template file which is used to generate an output
- file output.
- -a Causes calculus to 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 calculus to generate disk reading and writing routines
- designed to add persistence to the generated type system.
- -i Indicates to calculus that input is a simple input file.
- -o Causes calculus to 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 calculus to generate printing routines designed for use
- in the debugging of programs written using the type system.
- -r Indicates to calculus that input is the output of a previous -w
- option.
- -t Causes calculus to 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 calculus print its version number.
- -w Causes calculus to output a dump of the input algebra into out
- put, which in this instance is an output file.
- -x Causes calculus to suppress the vector and vector pointer con
- structs in its output.