diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 | 
| commit | 4538829ab86b5a1cd4e845e7eab165029c9d6d46 (patch) | |
| tree | bbadf39aed0610c8f8f7b41fefff47773b8ac205 /libxsd-frontend/xsd-frontend/traversal/elements.hxx | |
| parent | 23d41842168ac1a1580111b9c5c73500ceee3d57 (diff) | |
| parent | aad5ad9bf0c02aa4e79bc6b7d6c934612fff4026 (diff) | |
Update upstream source from tag 'upstream/4.2.0'
Update to upstream version '4.2.0'
with Debian dir 1b38df7bbcf313223de3c50107ac0255090fe647
Diffstat (limited to 'libxsd-frontend/xsd-frontend/traversal/elements.hxx')
| -rw-r--r-- | libxsd-frontend/xsd-frontend/traversal/elements.hxx | 411 | 
1 files changed, 0 insertions, 411 deletions
diff --git a/libxsd-frontend/xsd-frontend/traversal/elements.hxx b/libxsd-frontend/xsd-frontend/traversal/elements.hxx deleted file mode 100644 index bd1dd70..0000000 --- a/libxsd-frontend/xsd-frontend/traversal/elements.hxx +++ /dev/null @@ -1,411 +0,0 @@ -// file      : xsd-frontend/traversal/elements.hxx -// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC -// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef XSD_FRONTEND_TRAVERSAL_ELEMENTS_HXX -#define XSD_FRONTEND_TRAVERSAL_ELEMENTS_HXX - -#include <cutl/compiler/traversal.hxx> - -#include <xsd-frontend/types.hxx> -#include <xsd-frontend/semantic-graph/elements.hxx> - -namespace XSDFrontend -{ -  namespace Traversal -  { -    using namespace cutl; - -    typedef compiler::dispatcher<SemanticGraph::Node> NodeDispatcher; -    typedef compiler::dispatcher<SemanticGraph::Edge> EdgeDispatcher; - -    // -    // -    struct NodeBase: NodeDispatcher, EdgeDispatcher -    { -      void -      edge_traverser (EdgeDispatcher& d) -      { -        EdgeDispatcher::traverser (d); -      } - -      EdgeDispatcher& -      edge_traverser () -      { -        return *this; -      } - -      using NodeDispatcher::dispatch; -      using EdgeDispatcher::dispatch; - -      using EdgeDispatcher::iterate_and_dispatch; -    }; - -    struct EdgeBase: EdgeDispatcher, NodeDispatcher -    { -      void -      node_traverser (NodeDispatcher& d) -      { -        NodeDispatcher::traverser (d); -      } - -      NodeDispatcher& -      node_traverser () -      { -        return *this; -      } - -      using EdgeDispatcher::dispatch; -      using NodeDispatcher::dispatch; - -      using NodeDispatcher::iterate_and_dispatch; -    }; - -    inline EdgeBase& -    operator>> (NodeBase& n, EdgeBase& e) -    { -      n.edge_traverser (e); -      return e; -    } - -    inline NodeBase& -    operator>> (EdgeBase& e, NodeBase& n) -    { -      e.node_traverser (n); -      return n; -    } - -    // -    // -    template <typename T> -    struct Node: compiler::traverser_impl<T, SemanticGraph::Node>, -                 virtual NodeBase -    { -      typedef T Type; -    }; - -    template <typename T> -    struct Edge: compiler::traverser_impl<T, SemanticGraph::Edge>, -                 virtual EdgeBase -    { -      typedef T Type; -    }; - -    // -    // Edges -    // - -    // -    // -    struct Names : Edge<SemanticGraph::Names> -    { -      Names () -      { -      } - -      Names (NodeBase& n) -      { -        node_traverser (n); -      } - -      virtual void -      traverse (Type& e) -      { -        dispatch (e.named ()); -      } -    }; - - -    // -    // -    struct Belongs : Edge<SemanticGraph::Belongs> -    { -      Belongs () -      { -      } - -      Belongs (NodeBase& n) -      { -        node_traverser (n); -      } - -      virtual void -      traverse (Type& e) -      { -        dispatch (e.type ()); -      } -    }; - -    // -    // Nodes -    // - -    // -    // -    struct Nameable : Node<SemanticGraph::Nameable> -    { -    }; - - -    // -    // -    template <typename T> -    struct ScopeTemplate : Node<T> -    { -    public: -      virtual void -      traverse (T& s) -      { -        names (s); -      } - -      template<typename X> -      void -      names (T& s, -             EdgeDispatcher& d, -             void (X::*pre_) (T&) = (void (ScopeTemplate<T>::*)(T&)) (0), -             void (X::*post_) (T&) = (void (ScopeTemplate<T>::*)(T&)) (0), -             void (X::*none_) (T&) = (void (ScopeTemplate<T>::*)(T&)) (0), -             void (X::*next_) (T&) = (void (ScopeTemplate<T>::*)(T&)) (0)) -      { -        X* this_ (dynamic_cast<X*> (this)); - -        typename T::NamesIterator b (s.names_begin ()), e (s.names_end ()); - -        if (b != e) -        { -          if (pre_) -            (this_->*pre_) (s); - -          //iterate_and_dispatch (b, e, d, *this_, next_, s); - -          for (; b != s.names_end ();) -          { -            d.dispatch (*b); - -            if (++b != s.names_end () && next_ != 0) -              (this_->*next_) (s); -          } - -          if (post_) -            (this_->*post_) (s); -        } -        else -        { -          if (none_) -            (this_->*none_) (s); -        } -      } - -      virtual void -      names (T& s, EdgeDispatcher& d) -      { -        names<ScopeTemplate<T> > (s, d); -      } - -      virtual void -      names (T& s) -      { -        names (s, -               *this, -               &ScopeTemplate<T>::names_pre, -               &ScopeTemplate<T>::names_post, -               &ScopeTemplate<T>::names_none, -               &ScopeTemplate<T>::names_next); -      } - -      virtual void -      names_pre (T&) -      { -      } - -      virtual void -      names_next (T&) -      { -      } - -      virtual void -      names_post (T&) -      { -      } - -      virtual void -      names_none (T&) -      { -      } -    }; - - -    // -    // -    typedef -    ScopeTemplate<SemanticGraph::Scope> -    Scope; - - -    // -    // -    struct Type : Node<SemanticGraph::Type> -    { -      virtual void -      traverse (SemanticGraph::Type&) = 0; -    }; - - -    // -    // -    struct Instance : Node<SemanticGraph::Instance> -    { -      virtual void -      traverse (Type&); - -      virtual void -      pre (Type&); - -      virtual void -      belongs (Type&, EdgeDispatcher&); - -      virtual void -      belongs (Type&); - -      virtual void -      post (Type&); -    }; - - -    // -    // -    struct Member : Node<SemanticGraph::Member> -    { -      virtual void -      traverse (Type&); - -      virtual void -      pre (Type&); - -      virtual void -      belongs (Type&, EdgeDispatcher&); - -      virtual void -      belongs (Type&); - -      virtual void -      post (Type&); -    }; - - -    // -    // -    struct Inherits : Edge<SemanticGraph::Inherits> -    { -      Inherits () -      { -      } - -      Inherits (NodeBase& n) -      { -        node_traverser (n); -      } - -      virtual void -      traverse (Type& e) -      { -        dispatch (e.base ()); -      } -    }; - - -    // -    // -    struct Extends : Edge<SemanticGraph::Extends> -    { -      Extends () -      { -      } - -      Extends (NodeBase& n) -      { -        node_traverser (n); -      } - -      virtual void -      traverse (Type& e) -      { -        dispatch (e.base ()); -      } -    }; - - -    // -    // -    struct Restricts : Edge<SemanticGraph::Restricts> -    { -      Restricts () -      { -      } - -      Restricts (NodeBase& n) -      { -        node_traverser (n); -      } - -      virtual void -      traverse (Type& e) -      { -        dispatch (e.base ()); -      } -    }; - - -    // -    // -    struct Argumented : Edge<SemanticGraph::Arguments> -    { -      Argumented () -      { -      } - -      Argumented (NodeBase& n) -      { -        node_traverser (n); -      } - -      virtual void -      traverse (Type& a) -      { -        dispatch (a.type ()); -      } -    }; - - -    /* -    // -    // -    struct Contains : Edge<SemanticGraph::Contains> -    { -      virtual void -      traverse (Type& e) -      { -        dispatch (e.element ()); -      } -    }; -    */ - -    // -    // -    typedef -    Node<SemanticGraph::AnyType> -    AnyType; - - -    // -    // -    typedef -    Node<SemanticGraph::AnySimpleType> -    AnySimpleType; -  } -} - -#include <xsd-frontend/traversal/elements.txx> - -#endif  // XSD_FRONTEND_TRAVERSAL_ELEMENTS_HXX  | 
