// file : xsd-frontend/traversal/compositors.hxx // copyright : Copyright (c) 2006-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX #define XSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX #include #include namespace XSDFrontend { namespace Traversal { // // struct ContainsParticle: Edge { ContainsParticle () { } ContainsParticle (NodeBase& n) { node_traverser (n); } virtual void traverse (Type&); }; // // struct ContainsCompositor: Edge { ContainsCompositor () { } ContainsCompositor (NodeBase& n) { node_traverser (n); } virtual void traverse (Type&); }; // // struct Compositor : Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; // // struct All : Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; // // struct Choice : Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; // // struct Sequence : Node { virtual void traverse (Type&); virtual void pre (Type&); virtual void contains (Type&); virtual void contains (Type&, EdgeDispatcher&); virtual void post (Type&); }; } } #endif // XSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX