+ struct BlockModifier: Visitor
+ {
+ bool remove_node;
+ std::vector<RefPtr<ProgramSyntax::Node> > insert_nodes;
+
+ BlockModifier();
+
+ void flatten_block(ProgramSyntax::Block &);
+ void apply_and_increment(ProgramSyntax::Block &, std::list<RefPtr<ProgramSyntax::Node> >::iterator &);
+ using Visitor::visit;
+ virtual void visit(ProgramSyntax::Block &);
+ };
+