diff options
Diffstat (limited to 'libxsd-frontend/xsd-frontend/traversal/enumeration.cxx')
| -rw-r--r-- | libxsd-frontend/xsd-frontend/traversal/enumeration.cxx | 90 | 
1 files changed, 90 insertions, 0 deletions
| diff --git a/libxsd-frontend/xsd-frontend/traversal/enumeration.cxx b/libxsd-frontend/xsd-frontend/traversal/enumeration.cxx new file mode 100644 index 0000000..124606f --- /dev/null +++ b/libxsd-frontend/xsd-frontend/traversal/enumeration.cxx @@ -0,0 +1,90 @@ +// file      : xsd-frontend/traversal/enumeration.cxx +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC +// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#include <xsd-frontend/traversal/enumeration.hxx> + +namespace XSDFrontend +{ +  namespace Traversal +  { +    // Enumeration +    // +    void Enumeration:: +    traverse (Type& e) +    { +      pre (e); +      name (e); +      inherits (e); +      names (e); +      post (e); +    } + +    void Enumeration:: +    pre (Type&) +    { +    } + +    void Enumeration:: +    name (Type&) +    { +    } + +    void Enumeration:: +    inherits (Type& e) +    { +      inherits (e, *this); +    } + +    void Enumeration:: +    inherits (Type& e, EdgeDispatcher& d) +    { +      if (e.inherits_p ()) +        d.dispatch (e.inherits ()); +    } + +    void Enumeration:: +    post (Type&) +    { +    } + + +    // Enumerator +    // +    void Enumerator:: +    traverse (Type& e) +    { +      pre (e); +      belongs (e); +      name (e); +      post (e); +    } + +    void Enumerator:: +    pre (Type&) +    { +    } + +    void Enumerator:: +    belongs (Type& e, EdgeDispatcher& d) +    { +      d.dispatch (e.belongs ()); +    } + +    void Enumerator:: +    belongs (Type& e) +    { +      belongs (e, edge_traverser ()); +    } + +    void Enumerator:: +    name (Type&) +    { +    } + +    void Enumerator:: +    post (Type&) +    { +    } +  } +} | 
