expander notes: o expander.tcl is an objectified version of the expansion algorithm used in expand and Spinster. Goals - Multiple expanders can be used at one time - Handling of batch or incremental input - Support for user-settable brackets - Support for context stack. o Next: add and test incremental expansion. Things done: 11/23/2001 x Added the evalcmd command; this allows the application to specify a different means of evaluating macros than the default "uplevel #0". Things done: 11/3/2001 x Added a couple of more tests for the nested expander problem I fixed the other day. x Finished the man page for the current version. x Time to zip it up and send it off to Andreas. Things done: 10/31/2001 x Updated the list of possible error modes to match the list in Expand 2.1 x Added tests for each of the error modes to expander.test. x Created a modified version of Expand 2.1 that uses expander; it was able to process the Ex Libris website without error. x Found an error: if an expander is used to expand text which contains a call to another expander, the two get confused--because of the "::expander::This" variable. - It works for the recordkeeper, because a recordkeeper method can never execute a method for a different recordkeeper. - What if Methods saved the old This, and restored it at the end? - Tried it; it works! All existing tests pass. Things done: 10/30/2001 x Wrote more tests; found and fixed bracket restoration bug in expander. Things done: 10/25/2001 x Wrote tests for the lb, rb, and errmode commands. x Added the reset command. x Wrote tests for the reset command. x Added the context stack commands, and wrote tests for them. Things done: 10/24/2001 x Copied recordkeeper code and docs as a template. x Implemented the lb, rb, and errmode accessor methods.