+ virtual void visit(FunctionDeclaration &);
+};
+
+class AssignmentCollector: private TraversingVisitor
+{
+private:
+ std::set<VariableDeclaration *> assigned_variables;
+
+public:
+ std::set<VariableDeclaration *> apply(Node &);
+
+private:
+ virtual void visit(Assignment &);