class ExpressionNode { void ExpressionNode::Traverse (CodeGenerator& eg) { eg.Visit(this); ListIterator<ProgramNode*> i(_children); for (i.First(); !i.IsDone(); i.Next()) { i.Currentltem()->Traverse(eg); } }};