virtual void visit(VariableDeclaration &);
};
+/** Collects dependencies of a function. This includes global variables,
+interface blocks, other functions and types. */
+class DependencyCollector: private TraversingVisitor
+{
+private:
+ std::set<Node *> dependencies;
+ std::set<Node *> locals;
+
+public:
+ std::set<Node *> apply(FunctionDeclaration &);
+
+private:
+ virtual void visit(VariableReference &);
+ virtual void visit(InterfaceBlockReference &);
+ virtual void visit(FunctionCall &);
+ virtual void visit(VariableDeclaration &);
+};
+
} // namespace SL
} // namespace GL
} // namespace Msp