virtual void visit(FunctionDeclaration &);
};
+class AssignmentCollector: private TraversingVisitor
+{
+private:
+ bool assignment_target = false;
+ std::set<Node *> assigned_variables;
+
+public:
+ std::set<Node *> apply(Node &);
+
+private:
+ virtual void visit(VariableReference &);
+ virtual void visit(InterfaceBlockReference &);
+ virtual void visit(UnaryExpression &);
+ virtual void visit(BinaryExpression &);
+ virtual void visit(Assignment &);
+};
+
} // namespace SL
} // namespace GL
} // namespace Msp