diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2025-03-19 15:41:36 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2025-03-19 15:41:36 +0100 | 
| commit | 018e1ba581ec6f01f069a45ec4cf89f152b44d5f (patch) | |
| tree | 0e7dda4bb693a6714066fbe5efcd2f24ff7c1a65 /libxsd-frontend/xsd-frontend/semantic-graph/any.hxx | |
| parent | 1c188393cd2e271ed2581471b601fb5960777fd8 (diff) | |
remerge
Diffstat (limited to 'libxsd-frontend/xsd-frontend/semantic-graph/any.hxx')
| -rw-r--r-- | libxsd-frontend/xsd-frontend/semantic-graph/any.hxx | 85 | 
1 files changed, 85 insertions, 0 deletions
| diff --git a/libxsd-frontend/xsd-frontend/semantic-graph/any.hxx b/libxsd-frontend/xsd-frontend/semantic-graph/any.hxx new file mode 100644 index 0000000..8e42762 --- /dev/null +++ b/libxsd-frontend/xsd-frontend/semantic-graph/any.hxx @@ -0,0 +1,85 @@ +// file      : xsd-frontend/semantic-graph/any.hxx +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC +// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_ANY_HXX +#define XSD_FRONTEND_SEMANTIC_GRAPH_ANY_HXX + +#include <vector> + +#include <xsd-frontend/semantic-graph/elements.hxx> +#include <xsd-frontend/semantic-graph/particle.hxx> +#include <xsd-frontend/semantic-graph/namespace.hxx> + +namespace XSDFrontend +{ +  namespace SemanticGraph +  { +    class Any: public virtual Nameable, +               public virtual Particle +    { +      typedef std::vector<String> Namespaces; + +    public: +      typedef Namespaces::const_iterator NamespaceIterator; + +      NamespaceIterator +      namespace_begin () const +      { +        return namespaces_.begin (); +      } + +      NamespaceIterator +      namespace_end () const +      { +        return namespaces_.end (); +      } + +    public: +      bool +      prototype_p () +      { +        return prototype_ != 0; +      } + +      Any& +      prototype () +      { +        assert (prototype_ != 0); +        return *prototype_; +      } + +      void +      prototype (Any& a) +      { +        assert (prototype_ == 0); +        prototype_ = &a; +      } + +    public: +      Namespace& +      definition_namespace (); + +    public: +      Any (Path const& file, +           unsigned long line, +           unsigned long column, +           String const& namespaces); + +      Any (Path const& file, +           unsigned long line, +           unsigned long column, +           NamespaceIterator begin, +           NamespaceIterator end); + +      using Nameable::add_edge_right; +      using Particle::add_edge_right; + +    private: +      Any* prototype_; +      Namespaces namespaces_; +    }; +  } +} + +#endif  // XSD_FRONTEND_SEMANTIC_GRAPH_ANY_HXX | 
