aboutsummaryrefslogtreecommitdiff
path: root/xsd-frontend/semantic-graph/elements.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsd-frontend/semantic-graph/elements.cxx')
-rw-r--r--xsd-frontend/semantic-graph/elements.cxx178
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::