diff options
Diffstat (limited to 'ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp')
-rw-r--r-- | ACE/contrib/utility/Example/Introspection/Traversal/SyntaxTree.hpp | 95 |
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$ |