CAESAR.ADT manual page
Table of Contents

Name

caesar.adt - translation of LOTOS abstract data types into C

Synopsis

caesar.adt [-cc options] [-comments] [-debug] [-english] [-error] [-external] [-force] [-french] [-functionality] [-indent] [-infix] [-iso] [-macro] [-map] [-more command] [-prefix] [-silent] [-trace] [-verbose] [-version] [-warning] filename[.lotos]

Description

caesar.adt is an abstract data type compiler for LOTOS. Taking as input filename.lotos which is a LOTOS program, caesar.adt produces a file filename.h containing the C types and functions that implement the LOTOS sorts and operations defined in filename.lotos. The generated file filename.h can be used in conjuction with caesar .

Options

-cc options
Pass options to the C compiler when it is invoked. options is a list of compiler options (enclosed in quotes or double quotes). These options are appended to the compiler options, if any, contained in the $CADP_CC environment variable (see ENVIRONMENT VARIABLES below). Not a default option.

-comments
Issue a warning message for each LOTOS sort or operation which is not properly labelled by a special comment of the form (*!...*). Not a default option.

-debug      
Generate extra C code that helps to debug uncomplete non-constructor definitions. When a C function aborts because the corresponding LOTOS operation is not completely defined by its equations, the name of the function and the actual values of its arguments are displayed. Not a default option.

-english
Print messages in English. Opposite of -french. This option overrides the $CADP_LANGUAGE environment variable (see ENVIRONMENT VARIABLES below).

-error      
A file, filename.err, is generated by caesar.adt. It contains detailed error diagnostics. When it terminates, caesar.adt displays the content of this file on the screen, using the $CADP/src/com/cadp_more command, unless -error option is set.

-external
Generate a skeleton file filename.t.proto and/or a skeleton file filename.f.proto if the LOTOS specification contains sorts and/or operations declared (*! external *). These skeleton files are incomplete, but form a basis for producing filename.t and filename.f. They have to be completed manually (at the places marked "...") with an implementation in C for external sorts and constructors, and/or operations. Also, it may be necessary to modify manually the order of C type declarations in order to avoid forward references. Not a default option.

Note: if filename.t.proto and/or filename.f.proto already exist in the current directory, caesar.adt will not overwrite them, because they might have been modified manually.

-force      
Force caesar.adt to regenerate filename.h even if not necessary. Not a default option. By default caesar.adt will attempt not to regenerate filename.h if this file already exists in the current directory, and if it has been modified more recently than:
(1) the corresponding LOTOS file (filename.lotos, filename.lot, or filename.l),
(2) than any LOTOS library transitively included (using the "library" clause) in this LOTOS file,
(3) than any C file included (using the "#include" clause) in filename.h itself,
(4) than the filename.t file if this file exists in the current directory, and
(5) than the filename.f file if this file exists in the current directory.

-french
Print messages in French. Opposite of -english. This option overrides the $CADP_LANGUAGE environment variable (see ENVIRONMENT VARIABLES below).

-functionality
Do not check functionality constraints (``exit'' and ``noexit''). Not a default option.

-indent
Do not format using the shell-script located in $CADP/src/com/cadp_indent the generated file filename.h, nor the files filename.f.proto and filename.t.proto generated by option -external. This option can be useful when the indent(1) program invoked by cadp_indent crashes with a core dump, although cadp_indent is designed to recover properly in such event. Not a default option.

-infix
Generate C code to print LOTOS binary operations in infix form when appropriate. Not a default option.

-iso      
Use the standard LOTOS semantics defined in ISO 8807, disabling several non-standard language enhancements implemented in caesar.adt. Namely, this option: (1) considers "i" and "I" as reserved keywords, thus preventing to declare any identifier named "i" or "I"; (2) enforces the standard (and seemingly questionable) semantics for flattening parameterized types, instead of the modified semantics proposed in the document "$CADP/doc/*/Garavel-Sighireanu-95.*". Not a default option.

-macro      
Prevent LOTOS non-constructor operations to be implemented by C macro-definitions (#define): all LOTOS non-constructor operations will be implemented as C functions instead. Not a default option.

-map      
Generate filename.map which gives correspondence between sort and operation names occuring in filename.lotos and C type and function names occuring in filename.h. Not a default option.

-more command
Use command to display the error messages, instead of "$CADP/src/com/cadp_more" which is the default. command is a shell command (preferably enclosed in quotes or double quotes) containing the pathname of the chosen pager, possibly followed by a list of options. Not a default option.

-prefix
Generate C code that prints LOTOS binary operations always in prefix form. Default option.

-silent
Execute silently. Opposite of -verbose. Default option is -verbose.

-trace      
Generate extra C code that traces all calls and returns for a selected set of C functions. This option also sets the -macro option. Not a default option.

-verbose
Report activities and progress, including errors, to the user's screen. Opposite of -silent. Default option is -verbose.

-version
Display the current version number of the software and stop. Not a default option.

-warning
Suppress all warning diagnostics, at the risk of leaving actual issues in the LOTOS specification undetected. Not a default option.

Environment Variables

$CADP_LANGUAGE
If this variable is set, its value determines the language in which diagnostic messages will be reported. Possible values are 'french' and 'english'. Incorrect values will be ignored silently. If this variable is unset, it is given the default value 'french'.

$CADP_CC
If this variable is set, its value determines the name of the C compiler that will be invoked by caesar.adt. See file $CADP/INSTALLATION for detailed information about this variable. If this variable is unset, the script-shell $CADP/src/com/cadp_cc will automatically determine the C compiler to be used by default.

$CADP_TMP
If this variable is set, its value determines the directory in which temporary files are created. If this variable is unset, it is given the default value '/tmp'.

$PAGER
If this variable is set, its value will be used by the script-shell $CADP/src/com/cadp_more to display any error messages or warnings.

Exit Status

When the source is erroneous, error messages are issued. Exit status is 0 if everything is alright, 1 otherwise.

Operands

filename.lotos
LOTOS specification (input)

filename.t
external C implementation for types (input)

filename.t.proto
skeleton for filename.t (output)

filename.f
external C implementation for functions (input)

filename.f.proto
skeleton for filename.f (output)

filename.h
C implementation (output)

filename.err
detailed error messages (output)

filename.map
ADT correspondence table (output)

libname.lib
user ADT library (input)

Files

$CADP/lib/libname.lib
predefined ADT library (input)

$CADP/src/com/cadp_cc
C compiler shell

$CADP/src/com/cadp_more
pager shell

$CADP/LICENSE
license file

$CADP_TMP/*.c
C code generated during type survey (temporary)

$CADP_TMP/*.x
binary code for type survey (temporary)

$CADP_TMP/*.tsv
results of type survey (temporary)

See Also

caesar , indent(1)

Additional information is available from the CADP Web page located at http://cadp.inria.fr

Directives for installation are given in file $CADP/INSTALLATION.

Recent changes and improvements to this software are reported and commented in file $CADP/HISTORY.

Bugs

Please report bugs to Hubert.Garavel@inria.fr


Table of Contents