FWEB has the ability to work with more than one source language during a single run. The language in effect at the beginning of the first section defines the global language. Further language changes within a section have scope local to that section.
Usually, ‘language’ means a compiler language like FORTRAN or C. These languages will be “pretty-printed” by FWEAVE. Pretty-printing can be inhibited by turning on the N mode (globally, with the command-line option ‘-N’; locally, with ‘@N’) or by selecting the VERBATIM ‘language’; in both of these cases, the input text is echoed literally to the output of both FTANGLE and FWEAVE.
‘Language’ is a stronger concept than ‘mode’. For example, when a language is selected, the extension of the tangled output file is changed appropriately—for example, if test.web contains C code (that is, contains the command ‘@c’), test.web tangles into test.c (compressing blanks and otherwise (deliberately) making the tangled output relatively unreadable) and FWEAVE pretty-prints using the C syntax. Turning on the N mode does not affect the language; FTANGLE copies the source code literally into test.c (no blank compression or other modifications), and FWEAVE typesets the source code within a verbatim environment (no pretty-printing). When the VERBATIM language is selected, the N mode is turned on automatically, but FTANGLE writes its output to a file with a special default extension that can be customized in the style file. See Miscellaneous params.
• Setting the language | Setting the language. | |
Special hints and considerations for each language. | ||
---|---|---|
• C | C | |
• C++ | C++. | |
• Fortran | Fortran–77 and Fortran–90. | |
• Ratfor | RATional FORtran. | |
• TeX | TeX. | |
• Verbatim | Literal mode. |