//! Implements the macro expansion using a Flex scanner and a Bison parser
classMacroDriver
{
friendclassMacroValue;
private:
set<constMacroValue*>values;
//! Environment: maps macro variables to their values
map<string,MacroValue*>env;
map<string,constMacroValue*>env;
//! Stack used to keep track of (possibly nested) loops
//! First element is loop variable name, second is the array over which iteration is done, and third is subscript to be used by next call of iter_loop() (beginning with 0) */