summaryrefslogtreecommitdiff
path: root/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp')
-rw-r--r--ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp b/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp
new file mode 100644
index 00000000000..7bd824ce683
--- /dev/null
+++ b/ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp
@@ -0,0 +1,95 @@
+// file : Example/Introspection/Traversal/SyntaxTree.hpp
+// author : Boris Kolpackov <boris@kolpackov.net>
+// copyright : Copyright (c) 2002-2003 Boris Kolpackov
+// license : http://kolpackov.net/license.html
+
+#ifndef SYNTAX_TREE_HPP
+#define SYNTAX_TREE_HPP
+
+#include <vector>
+
+#include "Utility/Introspection/Introspection.hpp"
+
+namespace SyntaxTree
+{
+ //
+ //
+ //
+
+ struct Node : virtual Utility::Introspection::Object
+ {
+ Node ()
+ {
+ type_info (static_type_info ());
+ }
+
+ static Utility::Introspection::TypeInfo const&
+ static_type_info ();
+ };
+
+ //
+ //
+ //
+
+ struct Declaration : virtual Node
+ {
+ Declaration ()
+ {
+ type_info (static_type_info ());
+ }
+
+ static Utility::Introspection::TypeInfo const&
+ static_type_info ();
+ };
+
+ typedef
+ std::vector<Declaration*>
+ DeclarationList;
+
+ //
+ //
+ //
+ struct Scope : virtual Declaration
+ {
+ Scope ()
+ {
+ type_info (static_type_info ());
+ }
+
+ static Utility::Introspection::TypeInfo const&
+ static_type_info ();
+
+ DeclarationList content_;
+ };
+
+ //
+ //
+ //
+ struct InterfaceDecl : virtual Declaration
+ {
+ InterfaceDecl ()
+ {
+ type_info (static_type_info ());
+ }
+
+ static Utility::Introspection::TypeInfo const&
+ static_type_info ();
+ };
+
+ //
+ //
+ //
+ struct InterfaceDef : virtual InterfaceDecl, virtual Scope
+ {
+ InterfaceDef ()
+ {
+ type_info (static_type_info ());
+ }
+
+ static Utility::Introspection::TypeInfo const&
+ static_type_info ();
+ };
+}
+
+#endif // SYNTAX_TREE_HPP
+//$Id$