// file : libxsd-frontend/traversal/compositors.hxx // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef LIBXSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX #define LIBXSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX #include #include #include namespace XSDFrontend { namespace Traversal { // // struct LIBXSD_FRONTEND_SYMEXPORT ContainsParticle: Edge { ContainsParticle () { } ContainsParticle (NodeBase& n) { node_traverser (n); } virtual void traverse (Type&); }; // // struct LIBXSD_FRONTEND_SYMEXPORT ContainsCompositor: Edge { ContainsCompositor () { } ContainsCompositor (NodeBase& n) { node_traverser (n); } virtual void traverse (Type&); }; // // struct LIBXSD_FRONTEND_SYMEXPORT Compositor: Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; // // struct LIBXSD_FRONTEND_SYMEXPORT All: Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; // // struct LIBXSD_FRONTEND_SYMEXPORT Choice: Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; // // struct LIBXSD_FRONTEND_SYMEXPORT Sequence: Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; } } #endif // LIBXSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX