void TraversingVisitor::visit(Block &block)
{
+ if(&block!=current_block)
+ enter(block);
SetForScope<Block *> set_block(current_block, &block);
for(NodeList<Statement>::iterator i=block.body.begin(); i!=block.body.end(); ++i)
(*i)->visit(*this);
void TraversingVisitor::visit(FunctionDeclaration &func)
{
+ enter(func.body);
+ SetForScope<Block *> set_block(current_block, &func.body);
for(NodeArray<VariableDeclaration>::iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i)
(*i)->visit(*this);
func.body.visit(*this);
void TraversingVisitor::visit(Iteration &iter)
{
+ enter(iter.body);
+ SetForScope<Block *> set_block(current_block, &iter.body);
if(iter.init_statement)
iter.init_statement->visit(*this);
if(iter.condition)