summaryrefslogtreecommitdiff
path: root/libxsd-frontend/xsd-frontend/traversal/compositors.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsd-frontend/xsd-frontend/traversal/compositors.hxx')
-rw-r--r--libxsd-frontend/xsd-frontend/traversal/compositors.hxx136
1 files changed, 136 insertions, 0 deletions
diff --git a/libxsd-frontend/xsd-frontend/traversal/compositors.hxx b/libxsd-frontend/xsd-frontend/traversal/compositors.hxx
new file mode 100644
index 0000000..e81460b
--- /dev/null
+++ b/libxsd-frontend/xsd-frontend/traversal/compositors.hxx
@@ -0,0 +1,136 @@
+// file : xsd-frontend/traversal/compositors.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// 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 <xsd-frontend/traversal/elements.hxx>
+#include <xsd-frontend/semantic-graph/compositors.hxx>
+
+namespace XSDFrontend
+{
+ namespace Traversal
+ {
+ //
+ //
+ struct ContainsParticle: Edge<SemanticGraph::ContainsParticle>
+ {
+ ContainsParticle ()
+ {
+ }
+
+ ContainsParticle (NodeBase& n)
+ {
+ node_traverser (n);
+ }
+
+ virtual Void
+ traverse (Type&);
+ };
+
+
+ //
+ //
+ struct ContainsCompositor: Edge<SemanticGraph::ContainsCompositor>
+ {
+ ContainsCompositor ()
+ {
+ }
+
+ ContainsCompositor (NodeBase& n)
+ {
+ node_traverser (n);
+ }
+
+ virtual Void
+ traverse (Type&);
+ };
+
+ //
+ //
+ struct Compositor : Node<SemanticGraph::Compositor>
+ {
+ virtual Void
+ traverse (Type&);
+
+ virtual Void
+ pre (Type&);
+
+ virtual Void
+ contains (Type&);
+
+ virtual Void
+ contains (Type&, EdgeDispatcherBase&);
+
+ virtual Void
+ post (Type&);
+ };
+
+
+ //
+ //
+ struct All : Node<SemanticGraph::All>
+ {
+ virtual Void
+ traverse (Type&);
+
+ virtual Void
+ pre (Type&);
+
+ virtual Void
+ contains (Type&);
+
+ virtual Void
+ contains (Type&, EdgeDispatcherBase&);
+
+ virtual Void
+ post (Type&);
+ };
+
+
+ //
+ //
+ struct Choice : Node<SemanticGraph::Choice>
+ {
+ virtual Void
+ traverse (Type&);
+
+ virtual Void
+ pre (Type&);
+
+ virtual Void
+ contains (Type&);
+
+ virtual Void
+ contains (Type&, EdgeDispatcherBase&);
+
+ virtual Void
+ post (Type&);
+ };
+
+
+ //
+ //
+ struct Sequence : Node<SemanticGraph::Sequence>
+ {
+ 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