ctangle program converts a CWEB
source document into a C program that may be compiled in the usual way.
The output file includes #line specifications so that debugging can be
done in terms of the CWEB source file.
cweave program converts the same CWEB file into a TeX file that may be
formatted and printed in the usual way.
It takes appropriate care of typographic details like page
layout and the use of indentation, italics, boldface, etc., and it supplies
extensive cross-index information that it gathers automatically.
CWEB allows you to prepare a single
document containing all the information that is needed both to produce
a compilable C program and to produce a well-formatted document
describing the program in as much detail as the writer may desire.
The user of CWEB ought to be familiar with TeX as well as C.
The command line should have one, two, or three names on it.
The first is taken as the CWEB file (and
.w is added if there is no extension).
If that file cannot be opened, the extension
.web is tried instead. (But
.w is recommended, since
.web usually implies Pascal.)
If there is a second name, it is a change file (and
.ch is added if there is no extension).
The change file overrides parts of the WEB file,
as described in the documentation.
If there is a third name, it overrides
the default name of the output file, which is ordinarily the same as
the name of the input file (but on the current directory) with the
Options in the command line may be either turned off with -
(if they are on by default) or turned on with + (if they are off by
In fact, the options are processed from left to right,
so a sequence like -f +f corresponds to +f (which is the default).
-b option suppresses the banner line that normally appears on your terminal
when ctangle or cweave begins.
-h option suppresses the happy message that normally appears if the processing
-p option suppresses progress reports (starred module numbers) as the processing
If you say
-bhp, you get nothing but error messages.
+s option prints statistics about memory usage at the end of a run
(assuming that the programs have been compiled with the -DSTAT switch).
There are three other options applicable to
-f means do not force a newline after every statement in the formatted output.
-e inhibits the enclosure of C material formatted by
cweave in brackets
Such brackets are normally inserted so that special hooks
can be used by
cweb-latex and similar programs.
-x means omit the index and table of contents.