+void NodeRemover::visit(InterfaceBlock &iface)
+{
+ if(to_remove->count(&iface))
+ {
+ remove_from_map(stage->interface_blocks, iface.interface+iface.name, iface);
+ if(!iface.instance_name.empty())
+ remove_from_map(stage->interface_blocks, "_"+iface.instance_name, iface);
+ }
+ SetFlag set_recursive(recursive_remove, recursive_remove || to_remove->count(&iface));
+ TraversingVisitor::visit(iface);
+}
+
+void NodeRemover::visit(FunctionDeclaration &func)
+{
+ if(to_remove->count(&func))
+ remove_from_map(stage->functions, func.name, func);
+ TraversingVisitor::visit(func);
+}
+