EX13: This example is used to generate typeset documentation which is discussed in the tutorial in the FunnelWeb user's manual.


1. Table of Contents

1. Table of Contents
2. Macros for Moral Support
3. An Extremely Imperative Stack Abstraction
     3.1. Define the Stack
     3.2. Push the Stack
     3.3. Pop the Stack
     3.4. Rough the Stack Up a Bit


2. Macros for Moral Support

The following macro contain comments that provide moral support in the output code.

1. Programmer's Cheer[M]={
-- Shift to the left!
-- Shift to the right!
-- Pop up, push down!
-- Byte! Byte! Byte!
-- (From "The New Hacker's Dictionary").
}
This macro is invoked in definitions 6 and 8.

The next macro is similar but is distributed throughout the program.

2. Hacker's Cheer+={
-- Pointer to the left
}
This macro is defined in definitions 2, 3, 5, 7 and 9.
This macro is invoked in definition 10.


3. An Extremely Imperative Stack Abstraction


3.1. Define the Stack

3. Hacker's Cheer+={-- Pointer to the right
}
This macro is defined in definitions 2, 3, 5, 7 and 9.
This macro is invoked in definition 10.

4. Stack Type[Z]={type stack = record ... end; }
This macro is NEVER invoked.


3.2. Push the Stack

5. Hacker's Cheer+={-- Hack that code
}
This macro is defined in definitions 2, 3, 5, 7 and 9.
This macro is invoked in definition 10.

6. Push Procedure[Z]={procedure push(var b:stack; v:value);  Programmer's Cheer {...} }
This macro is NEVER invoked.


3.3. Pop the Stack

7. Hacker's Cheer+={-- Tight! Tight! Tight!
}
This macro is defined in definitions 2, 3, 5, 7 and 9.
This macro is invoked in definition 10.

8. Pop Procedure[Z]={procedure pop(var b:stack);  Programmer's Cheer {...} }
This macro is NEVER invoked.


3.4. Rough the Stack Up a Bit

9. Hacker's Cheer+={-- (RNW, 04-Jan-1991).
}
This macro is defined in definitions 2, 3, 5, 7 and 9.
This macro is invoked in definition 10.

10. Rough Procedure[Z]={procedure rough(var b:stack);  Hacker's Cheer {...} }
This macro is NEVER invoked.

11. File: dummy.txt={dummy
}
This macro is attached to an output file.


End Of File