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