diff options
Diffstat (limited to 'xsd-frontend/semantic-graph/elements.cxx')
-rw-r--r-- | xsd-frontend/semantic-graph/elements.cxx | 178 |
1 files changed, 66 insertions, 112 deletions
diff --git a/xsd-frontend/semantic-graph/elements.cxx b/xsd-frontend/semantic-graph/elements.cxx index 25b4c83..36fb9a3 100644 --- a/xsd-frontend/semantic-graph/elements.cxx +++ b/xsd-frontend/semantic-graph/elements.cxx @@ -5,6 +5,8 @@ #include <algorithm> +#include <cutl/compiler/type-info.hxx> + #include <xsd-frontend/semantic-graph/elements.hxx> #include <xsd-frontend/semantic-graph/annotation.hxx> @@ -46,10 +48,7 @@ namespace XSDFrontend argumented_.erase (i); } - namespace RTTI = Cult::RTTI; - - using RTTI::Access; - using RTTI::TypeInfo; + using compiler::type_info; namespace { @@ -59,209 +58,178 @@ namespace XSDFrontend { EdgeInit () { - TypeInfo ti (typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (Edge)); + insert (ti); } - } edge_init_; - // Node // struct NodeInit { NodeInit () { - TypeInfo ti (typeid (Node)); - RTTI::insert (ti); + type_info ti (typeid (Node)); + insert (ti); } - } node_init_; - // Names // struct NamesInit { NamesInit () { - TypeInfo ti (typeid (Names)); - ti.add_base (Access::public_, true, typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (Names)); + ti.add_base (typeid (Edge)); + insert (ti); } - } names_init_; - // Nameable // struct NameableInit { NameableInit () { - TypeInfo ti (typeid (Nameable)); - ti.add_base (Access::public_, true, typeid (Node)); - RTTI::insert (ti); + type_info ti (typeid (Nameable)); + ti.add_base (typeid (Node)); + insert (ti); } - } nameable_init_; - // Scope // struct ScopeInit { ScopeInit () { - TypeInfo ti (typeid (Scope)); - ti.add_base (Access::public_, true, typeid (Nameable)); - RTTI::insert (ti); + type_info ti (typeid (Scope)); + ti.add_base (typeid (Nameable)); + insert (ti); } - } scope_init_; - // Type // struct TypeInit { TypeInit () { - TypeInfo ti (typeid (Type)); - ti.add_base (Access::public_, true, typeid (Nameable)); - RTTI::insert (ti); + type_info ti (typeid (Type)); + ti.add_base (typeid (Nameable)); + insert (ti); } - } type_init_; - // Instance // struct InstanceInit { InstanceInit () { - TypeInfo ti (typeid (Instance)); - ti.add_base (Access::public_, true, typeid (Nameable)); - RTTI::insert (ti); + type_info ti (typeid (Instance)); + ti.add_base (typeid (Nameable)); + insert (ti); } - } instance_init_; - // Belongs // struct BelongsInit { BelongsInit () { - TypeInfo ti (typeid (Belongs)); - ti.add_base (Access::public_, true, typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (Belongs)); + ti.add_base (typeid (Edge)); + insert (ti); } - } belongs_init_; - - // Inherits // struct InheritsInit { InheritsInit () { - TypeInfo ti (typeid (Inherits)); - ti.add_base (Access::public_, true, typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (Inherits)); + ti.add_base (typeid (Edge)); + insert (ti); } - } inherits_init_; - // Extends // struct ExtendsInit { ExtendsInit () { - TypeInfo ti (typeid (Extends)); - ti.add_base (Access::public_, true, typeid (Inherits)); - RTTI::insert (ti); + type_info ti (typeid (Extends)); + ti.add_base (typeid (Inherits)); + insert (ti); } - } extends_init_; - // Restricts // struct RestrictsInit { RestrictsInit () { - TypeInfo ti (typeid (Restricts)); - ti.add_base (Access::public_, true, typeid (Inherits)); - RTTI::insert (ti); + type_info ti (typeid (Restricts)); + ti.add_base (typeid (Inherits)); + insert (ti); } - } restricts_init_; - // BelongsToNamespace // struct BelongsToNamespaceInit { BelongsToNamespaceInit () { - TypeInfo ti (typeid (BelongsToNamespace)); - ti.add_base (Access::public_, true, typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (BelongsToNamespace)); + ti.add_base (typeid (Edge)); + insert (ti); } - } belongs_to_namespace_init_; - // Member // struct MemberInit { MemberInit () { - TypeInfo ti (typeid (Member)); - ti.add_base (Access::public_, true, typeid (Instance)); - RTTI::insert (ti); + type_info ti (typeid (Member)); + ti.add_base (typeid (Instance)); + insert (ti); } - } member_init_; - // Specialization // struct SpecializationInit { SpecializationInit () { - TypeInfo ti (typeid (Specialization)); - ti.add_base (Access::public_, true, typeid (Type)); - RTTI::insert (ti); + type_info ti (typeid (Specialization)); + ti.add_base (typeid (Type)); + insert (ti); } - } specialization_init_; - // Arguments // struct ArgumentsInit { ArgumentsInit () { - TypeInfo ti (typeid (Arguments)); - ti.add_base (Access::public_, true, typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (Arguments)); + ti.add_base (typeid (Edge)); + insert (ti); } - } arguments_init_; - /* // Contains // @@ -269,64 +237,50 @@ namespace XSDFrontend { ContainsInit () { - TypeInfo ti (typeid (Contains)); - ti.add_base (Access::public_, true, typeid (Edge)); - RTTI::insert (ti); + type_info ti (typeid (Contains)); + ti.add_base (typeid (Edge)); + insert (ti); } - } contains_init_; - // Container // struct ContainerInit { ContainerInit () { - TypeInfo ti (typeid (Container)); - ti.add_base (Access::public_, true, typeid (Node)); - RTTI::insert (ti); + type_info ti (typeid (Container)); + ti.add_base (typeid (Node)); + insert (ti); } - } container_init_; */ - // AnyType // - namespace + struct AnyTypeInit { - struct AnyTypeInit + AnyTypeInit () { - AnyTypeInit () - { - TypeInfo ti (typeid (AnyType)); - ti.add_base (Access::public_, true, typeid (SemanticGraph::Type)); - RTTI::insert (ti); - } - - } any_type_init_; - } - + type_info ti (typeid (AnyType)); + ti.add_base (typeid (SemanticGraph::Type)); + insert (ti); + } + } any_type_init_; // AnySimpleType // - namespace + struct AnySimpleTypeInit { - struct AnySimpleTypeInit + AnySimpleTypeInit () { - AnySimpleTypeInit () - { - TypeInfo ti (typeid (AnySimpleType)); - ti.add_base (Access::public_, true, typeid (Type)); - RTTI::insert (ti); - } - - } any_simple_type_init_; - } + type_info ti (typeid (AnySimpleType)); + ti.add_base (typeid (Type)); + insert (ti); + } + } any_simple_type_init_; } - // Instance // Type& Instance:: |