1 Introduction
2 Interface
3 Scanner
4 Parser
5 Analyser
6 Tangle
7 Weave
8 Shell
9 Commands
10 Glossary
11 References

FunnelWeb Reference Manual

4.14 Macros Are Static

In FunnelWeb, the actions of macro definition  and macro expansion  occur during two separate phases (parser and tangle) and cannot be interleaved. As a result, the FunnelWeb macro facility is completely static. It is not possible for one macro to define another while the first macro is being expanded; each must be defined statically. It is not possible to define a macro to even assist in the definition of other macros. Because the scanner, parser, analyser, and tangler phases are all invoked sequentially, there is no room for feedback of definitions between different levels (e.g. the user cannot define a macro for the vskip pragma).

This lack of power is fully intentional. By totally excluding the more incomprehensible ways in which a general purpose macro preprocessor can be used, FunnelWeb provides definite guarantees to the reader of its input files:

  • FunnelWeb guarantees that a piece of text does not contain a macro call unless it contains the special character followed by < or #.
  • FunnelWeb allows calls to be made to macros that are defined later in the input file.

Prev Up Up

Webmaster    Copyright © Ross N. Williams 1992,1999. All rights reserved.