diff options
Diffstat (limited to 'libxsd-frontend/xsd-frontend/generators')
-rw-r--r-- | libxsd-frontend/xsd-frontend/generators/dependencies.cxx | 70 | ||||
-rw-r--r-- | libxsd-frontend/xsd-frontend/generators/dependencies.hxx | 32 |
2 files changed, 0 insertions, 102 deletions
diff --git a/libxsd-frontend/xsd-frontend/generators/dependencies.cxx b/libxsd-frontend/xsd-frontend/generators/dependencies.cxx deleted file mode 100644 index 55e7ae8..0000000 --- a/libxsd-frontend/xsd-frontend/generators/dependencies.cxx +++ /dev/null @@ -1,70 +0,0 @@ -// file : xsd-frontend/generators/dependencies.cxx -// copyright : Copyright (c) 2006-2014 Code Synthesis Tools CC -// 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; - } - } -} diff --git a/libxsd-frontend/xsd-frontend/generators/dependencies.hxx b/libxsd-frontend/xsd-frontend/generators/dependencies.hxx deleted file mode 100644 index 5a7624f..0000000 --- a/libxsd-frontend/xsd-frontend/generators/dependencies.hxx +++ /dev/null @@ -1,32 +0,0 @@ -// file : xsd-frontend/generators/dependencies.hxx -// copyright : Copyright (c) 2006-2014 Code Synthesis Tools CC -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef XSD_FRONTEND_GENERATORS_DEPENDENCIES_HXX -#define XSD_FRONTEND_GENERATORS_DEPENDENCIES_HXX - -#include <vector> - -#include <xsd-frontend/types.hxx> - -#include <xsd-frontend/semantic-graph/elements.hxx> // Path -#include <xsd-frontend/semantic-graph/schema.hxx> - -namespace XSDFrontend -{ - namespace Generators - { - // Return the list of included/imported schema paths (transitively and - // including the main schema file) which can then be used to produce - // make dependencies, etc. - // - class Dependencies - { - public: - std::vector<SemanticGraph::Path> - generate (SemanticGraph::Schema&, SemanticGraph::Path const&); - }; - } -} - -#endif // XSD_FRONTEND_GENERATORS_DEPENDENCIES_HXX |