1.3 An Architectural Overview
These files need not all be generated on any particular FunnelWeb
run. Whether each output file appears, is controlled by command
FunnelWeb processes each input file in a sequence of phases. If an
error occurs during a phase, no subsequent phases are executed.
The phases are briefly described below.
reads the input file, expands and reads
in include files, scans the input stream, processes
pragmas and typesetter directives, and parses all the
FunnelWeb special sequences. The result is a list of
tokens that is handed to the parser.
reads the scanner s token list and parses
it, constructing a document list and a macro table.
which are passed to later phases.
examines the macro table generated by
the parser and performs a number of checks of the
macro structures that the parser could not make on its
single pass. For example, the analyser detects and
flags unused macros and recursive macros. The
analyser forms the final stage of FunnelWeb s
front end processing.
expands certain macros in the macro table to
generate one or more product files.
uses the document list to generate a
A single run through these phases constitutes a single invocation of
. Most invocations of the
will consist only of a single execution of FunnelWeb
proper. However, FunnelWeb also provides a command shell that
provides many useful commands, including a command to invoke
FunnelWeb proper. Discussion of the command shell is deferred
Copyright Ross N. Williams 1992,1999. All rights reserved.
http://www.ross.net/funnelweb/reference/intro_arch.html (2 of 2) [3/3/2000 10:49:26 PM]