// file : xsd-frontend/traversal/compositors.hxx // author : Boris Kolpackov // copyright : Copyright (c) 2006-2010 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&, EdgeDispatcherBase&); virtual Void post (Type&); }; // // struct All : Node { virtual Void traverse (Type&); virtual Void pre (Type&); virtual Void contains (Type&); virtual Void contains (Type&, EdgeDispatcherBase&); virtual Void post (Type&); }; // // struct Choice : Node { virtual Void traverse (Type&); virtual Void pre (Type&); virtual Void contains (Type&); virtual Void contains (Type&, EdgeDispatcherBase&); virtual Void post (Type&); }; // // struct Sequence : Node { virtual Void traverse (Type&); virtual Void pre (Type&); virtual Void contains (Type&); virtual Void contains (Type&, EdgeDispatcherBase&); virtual Void post (Type&); }; } } #endif // XSD_FRONTEND_TRAVERSAL_COMPOSITORS_HXX