Web processors for c, c++, fortran, ratfor, and tex
ftangle -|
| [[-option] ...] src_file[.web] [change_file[.ch]]
fweave --|
(This man page is obsolete and is no longer maintained; please see `info fweb' for up-to-date and detailed tree-structured information.)
FWEB is an extension of Knuth's WEB system to handle the languages C, C++, Fortran (both Fortran-77 and Fortran-90), Ratfor, and TeX. The philosophy of WEB and all details about using FWEB may be found in the user manual fweb.tex, available on-line as the texinfo (GNU hypertext system) entry `info FWEB'. See also
http://w3.pppl.gov/~krommes/fweb_toc.html.
An initialization file named .fweb (Unix sytems) or fweb.ini (personal computers) may be placed in your home directory. (For Unix systems, that is the value of $HOME. The name can be overridden by the environment variable FWEB_INI.) In this file can be placed any option that is allowed on the command line (one option per line). If the option begins with a hyphen, it is processed before the command line; if it begins with an ampersand, it is processed after the command line (rarely necessary); if it begins with neither, it is interpreted as a file name and processed after the command line.
A style file patterned after the utility makeindex and named fweb.sty may be placed in your current directory. (The directory can be overridden by the environment variable FWEB_STYLE_DIR.) This file is used to customize the appearance of the index and many other parameters controlling the operation of the processors. See the documentation for detailed discussion.
The following list just provides a very brief summary of the command-line options. Please refer to the texinfo entry for more details.
FWEB Options
filename
The first file name identifies the FWEB source file. (If the name does not contain a period, the extension .web is added automatically.) If a second file name is present, it identifies the change file. (If that name does not contain a period, the extension .ch is added automatically.) For an alternative approach to processing extensions, see the -e option.
-1
Turn on brief debugging mode for FWEAVE.
-2
Turn on verbose debugging mode for FWEAVE.
-@
Display information about control codes.
-A
Turn on ASCII translations.
-B
Turn off audible beeps.
-b
Number do and if blocks in woven Fortran and Ratfor output.
-Cn
Set the color mode to n, where n is 0 (no color), 1 (ANSI color), 2 (bilevel), 3 (trilevel), or 4 (user-defined).
-c
Set the global language to C.
-c++
Set the global language to C++.
-D[letters]
Display information about reserved words of the current language (beginning with [letters] if present).
-d[nnnnn]
Convert unnumbered do...enddo constructions to standard Fortran.
-Ec
Change the delimiter of a file-name extension to c.
-e
Turn on automatic file-name completion, using the style-file parameters ext.web, ext.ch, ext.hweb, and ext.hch.
-F
Compare output files with old versions.
-f
Turn off module references for functions, macro names, etc.
-H
Scan #include files for typedef and/or class declarations.
-h
A brief message about where to get help.
-Idirectory
Append a directory to the list of directories to be searched for include files.
-i
Read include files named by the @I command, but don't print contents.
-i!
Don't even read include files named by the @I command.
-j
Inhibit multiple includes of the same file.
-k
Recognize lower-case versions of Fortran/Ratfor I/O keywords such as BLOCKSIZE.
-Ll
Select language l.
-l[mmm[:nnn]]
Echo the input lines between mmm and nnn.
-mid[=text]
Define an FWEB macro.
-m4
Understand (for formatting purposes) the commands of the m4 preprocessor.
-m;
Automatically append pseudo-semicolons to the end of WEB macro definitions. (Not recommended.)
-n
Set the global language to Fortran-77.
-n9
Set the global language to Fortran-90.
-n;
For Fortran-77, supply semicolons automatically (default).
-n:
In Fortran, place statement labels on separate lines.
-nb
Number the do's and if's in Fortran.
-nC
Throw away all commet lines.
-np
Print semicolons in woven Fortran output.
-n\
Use free-form syntax for Fortran-90; continue lines with backslashes.
-n&
As above, but continue lines with ampersands.
-n/
In Fortran, make '//' denote the start of a short comment instead of concatenation. (Use '\/' for concatenation.)
-n!
In Fortran, make '!' denote the start of a short comment instead of the logical negation.
-n)
In Fortran, reverse array indices.
-o
Turn off FWEAVE's mechanisms for overloading operators.
-Pletter
Select the TeX processor, where letter is either 'T' for TeX or 'L' for LaTeX. The default is LaTeX. Note well that Plain TeX is no longer supported!
-pstyleentry
Buffer up a style-file entry, to be processed just before the local style file is read.
-r
Set the global language to Ratfor-77.
-r9
Set the global language to Ratfor-90.
-rb
Number the do's and if's in Ratfor.
-rk[letters]
Suppress comments about particular Ratfor statement expansions.
-rK[letters]
Include comments about particular Ratfor statement expansions.
-r;
For Ratfor, turn on the auto-semi mode and assume the ``obviously continued'' syntax. (Not recommended.)
-r/
In Ratfor, make '//' denote the start of a short comment instead of concatenation. (Use '\/' for concatenation.)
-r!
In Ratfor, make '!' denote the start of a short comment instead of the logical negation.
-r)
In Ratfor, reverse array indices.
-s
Print statistics about memory usage.
-sm[nnn]
As above, but also display the dynamic memory allocations as they occur.
-T
Miscellaneous flag-setting commands for ftangle; see texinfo entry.
-tln[{...}]
Truncate identifiers of language l to be of length n, after optionally filtering out the characters listed between the braces.
-U
Convert reserved output tokens to lower case.
-uid
Undefine a predefined or command-line macro.
-v
Make all comments verbatim.
-W@flag
Set module warning flag [0 for no warnings, or the logical OR of 1 (never used) and/or 2 (multiple uses)].
-W1
Completely cross-reference single-character identifiers.
-W[
Turn on special processing of bracketed array indices.
-WH
Turn on processing of bracketed array indices.
-Wd
Don't print @d or @D statements in woven output.
-Wf
Don't print @f statements in woven output.
-WF
Don't print @F statements in woven output.
-Wl
Don't print @l statements in woven output.
-Wm
Don't print @m or @M statements in woven output.
-Wv
Don't print @v statements in woven output.
-Ww
Don't print @w or @W statements in woven output.
-w[file_name]
Print `\input file_name' instead of `\input fwebmac.sty' at beginning of tex output file. With no argument, print nothing.
-X[letters]
Print selected cross-reference information; the opposite of '-x'.
-x[letters]
Reduce or eliminate cross-reference information. The optional letters can be one of 'c', 'i', 'm', or '*', referring respectively to the table of contents, index, module list, or all cross-reference information.
-ya[a][nnnn]
Override default for dynamic memory allocation. If nnnn is omitted, then simply query the default. The command '-y' with no argument queries everything.
-Z[letters]
Display default values of style-file parameters (starting with letters if present).
-z[file_name]
Override default style-file name.
-.
Don't recognize dot constants in Fortran and Ratfor.
-\
Explicitly escape continued strings.
-(
Continue parenthesized strings with backslashes.
-:[nnnnn]
Set the starting automatic statement number for \Fortran and \Ratfor.
->[l=][name]
Redirect output.
-=
Same as above (and easier to type).
-#
Turn off comments about line numbers and modules in woven output.
-+
Don't interpret the compound assignment operators in Fortran and Ratfor.
-/
In Fortran and Ratfor, make '//' denote the start of a short comment instead of concatenation. (Use '\/' for concatenation.)
-!
In Fortran and Ratfor, make '!' denote the start of a short comment instead of logical negation.
Further documentation can be obtained from texinfo, available online through the info browser, either via emacs or stand-alone (menu item fweb), by saying `ftangle -h' or in printed form by saying (from the top-level FWEB installation directory, if it is available) `lpr Manual/fweb.ps' or `texi2dvi Manual/fweb.texinfo'.
$HOME/.fweb
- Optional initialization file (supplied by user).
./fweb.sty
- Optional style file for configuring the style of an individual document (supplied by user).
FWEB_INCLUDES
- Colon-delimited list of directories to be searched for include files.
FWEB_INI
- Name of the initialization file in user's home directory.
FWEB_STYLE_DIR
- Directory in which the style file resides.
Please send bug reports and suggestions to [email protected]. FWEB is a spare-time activity, so response may be slow and messages may not be acknowledged individually. However, your input is very useful and much appreciated.
FWEB was written by John A. Krommes, Princeton University. It is a substantial revision and update (more than 50% new) of version 0.5 of Silvio Levy's CWEB, which in turn was based on Donald Knuth's original Pascal WEB. The latter was designed for documenting and maintaining TeX.