Glossary

Analyser: A component of the FunnelWeb program that checks the macro table created by the parser for errors. For example, the analyser checks to see if any macro without a @Z has not been called.

Argument: A string delimited by blanks appearing on the FunnelWeb command line. Arguments are used to control options.

Directive: A FunnelWeb special sequence or cooperating group of special sequences that do not form part of a macro definition. A directive can take the form of a pragma.

Documentation: Descriptive text.

Documentation file: An output file, produced by the Weave component of FunnelWeb, that contains typesetter commands. When fed into the appropriate typesetter program, the result is a typeset image of the input file.

Free text: The text in an input file that remains if one were to remove macro definitions and directives.

FunnelWeb: This word has a number of different meanings all pertaining to the FunnelWeb system of programming. 1) The entire system of programming as in ``Maybe FunnelWeb can help.'' 2) The computer program that implements the system as in ``Run it through FunnelWeb and see what comes out.'' 3) The language implemented by the FunnelWeb program as in ``I wrote the program in FunnelWeb.'' or ``I wrote the program in Ada using FunnelWeb.''.

FunnelWeb file: A file whose contents are written in the FunnelWeb language.

FunnelWeb language: The language in which FunnelWeb input files are written.

FunnelWeb proper: Usually, when FunnelWeb is invoked, it processes a single input file and then terminates. However, it also has a command language mode in which it is possible to invoke ``FunnelWeb'' many times. This leads to confusion between ``FunnelWeb'' the outer program and ``FunnelWeb'' the inner program. To avoid this confusion, the inner FunnelWeb is sometimes referred to as ``FunnelWeb proper''.

FW: An abbreviation for ``FunnelWeb'' that is used wherever appropriate.

Include file: A file read in by FunnelWeb as the result of an include pragma (@i filename).

Input file: Any file read in by FunnelWeb. The phrase ``the input file'' refers to the root input file (specified using the +F option).

Journal file: An output file containing a copy of the output sent to the user's console during an invocation of FunnelWeb. In other systems, this file is sometimes called a ``log file''.

Listing file: An output file summarizing the result of processing an input file.

Macro: A binding of a name to a string.

Macro definition: A construct appearing in a FunnelWeb file that binds a name to a text string. A FunnelWeb file consists of a series of macro definitions surrounded by documentary text.

Mapper: A component of the FunnelWeb program that reads in the input file and creates a copy of it in memory.

Option: An parameter internal to the FunnelWeb program which can be controlled by command line arguments or pragmas.

Output file: Any file written by FunnelWeb. This includes listing, journal, product, and documentation files. (Warning: During most of FunnelWeb's development the term ``output file'' was also used to refer to what are now called ``product files''. This turned out to be extremely confusing and so the term ``product file'' was invented to distinguish the generic from the specific. However, as this was a late modification, you may find some occurrences of the old use of ``output file''.).

Parser: A component of the FunnelWeb program that processes the token list generated by the scanner and produces a macro table and a document list. The parser mainly analyses the input file at the syntactic level, but also does some lightweight semantic checking too.

Pragma: Single-line directives that appears in FunnelWeb files. Pragmas control everything from maximum input line length to typesetter dependence. A pragma line starts with ``@p''.

Printed documentation: Sheets of paper resulting from actually typesetting and printing a documentation file.

Product file: An output file, generated by the Tangle component of FunnelWeb, that contains the expansion of the macros in the input file. Note: Other names considered for this were: generated file, expanded file, result file, program file, and tangle file.

Scanner: A component of the FunnelWeb program that scans a copy of the input file in memory and generates a line list and a token list to be fed to the parser. The scanner processes the input at the lexical level.

Script: A file containing FunnelWeb shell commands.

Shell: A command language interpreter built into the FunnelWeb program. The interpreter allows the user to invoke FunnelWeb proper many times during a single invocation of the FunnelWeb program.

Special character: A distinguished character in a FunnelWeb input file that introduces a special sequence. By default the special character is ``@''. However, it can be changed using the ``@='' special sequence.

Special sequence: A special sequence is a construct introduced by the special character. Special sequences are used to define a structure in a FunnelWeb input file that exists at a higher level to the surrounding text. A FunnelWeb input file may be considered to be a sequence of text and special sequences.

Tangle: This is the name for the component of FunnelWeb that generates one or more product files containing the expansion of macros in the input file.

Typesetting directive: A FunnelWeb directive whose sole effect is to modify the way in which the input file is represented in the documentation file.

Weave: This is the name for the component of FunnelWeb that generates a documentation file containing typesetting commands representing the input file.