aboutsummaryrefslogtreecommitdiff
path: root/xsd-frontend/generators/dependencies.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsd-frontend/generators/dependencies.cxx')
-rw-r--r--xsd-frontend/generators/dependencies.cxx69
1 files changed, 0 insertions, 69 deletions
diff --git a/xsd-frontend/generators/dependencies.cxx b/xsd-frontend/generators/dependencies.cxx
deleted file mode 100644
index b210b23..0000000
--- a/xsd-frontend/generators/dependencies.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-// file : xsd-frontend/generators/dependencies.cxx
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <xsd-frontend/semantic-graph.hxx>
-#include <xsd-frontend/traversal.hxx>
-
-#include <xsd-frontend/generators/dependencies.hxx>
-
-namespace XSDFrontend
-{
- typedef std::vector<SemanticGraph::Path> Paths;
-
- namespace
- {
- // Go into included/imported (but not implied) schemas while making
- // sure we don't process the same stuff more than once.
- //
- struct Uses: Traversal::Uses
- {
- Uses (Paths& p): paths_ (p) {}
-
- virtual void
- traverse (Type& u)
- {
- if (u.is_a<SemanticGraph::Implies> ())
- return;
-
- SemanticGraph::Schema& s (u.schema ());
-
- if (!s.context ().count ("xsd-frontend-dependencies-seen"))
- {
- s.context ().set ("xsd-frontend-dependencies-seen", true);
-
- // While the edge contains the exact path that was found in the
- // schema, the schema node itself has the reative to the including
- // or importing schema path, which is what we want.
- //
- paths_.push_back (s.file ());
- Traversal::Uses::traverse (u);
- }
- }
-
- private:
- Paths& paths_;
- };
- }
-
- namespace Generators
- {
- Paths Dependencies::
- generate (SemanticGraph::Schema& s, SemanticGraph::Path const& p)
- {
- Paths r;
- r.push_back (p);
-
- Traversal::Schema schema;
- Uses uses (r);
-
- schema >> uses >> schema;
-
- // Some twisted schemas do recusive inclusions.
- //
- s.context ().set ("xsd-frontend-dependencies-seen", true);
-
- schema.dispatch (s);
- return r;
- }
- }
-}