aboutsummaryrefslogtreecommitdiff
path: root/xsd-frontend/semantic-graph
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-05-09 16:45:09 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-05-09 16:45:09 +0200
commitcf2783f792ee634ffbbb36311c9f69956b1d107e (patch)
treec4a4d4a30451a65c63f3e21e04ac238e5a8ed039 /xsd-frontend/semantic-graph
parent0bc53d3b22cedbe9e1f773e0a350280aef805eeb (diff)
Use standard containers instead of ones from libcult
Diffstat (limited to 'xsd-frontend/semantic-graph')
-rw-r--r--xsd-frontend/semantic-graph/any-attribute.hxx8
-rw-r--r--xsd-frontend/semantic-graph/any.hxx8
-rw-r--r--xsd-frontend/semantic-graph/complex.hxx2
-rw-r--r--xsd-frontend/semantic-graph/compositors.hxx17
-rw-r--r--xsd-frontend/semantic-graph/elements.cxx4
-rw-r--r--xsd-frontend/semantic-graph/elements.hxx244
-rw-r--r--xsd-frontend/semantic-graph/schema.hxx23
7 files changed, 61 insertions, 245 deletions
diff --git a/xsd-frontend/semantic-graph/any-attribute.hxx b/xsd-frontend/semantic-graph/any-attribute.hxx
index 366bc0b..be06a83 100644
--- a/xsd-frontend/semantic-graph/any-attribute.hxx
+++ b/xsd-frontend/semantic-graph/any-attribute.hxx
@@ -6,7 +6,7 @@
#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_ANY_ATTRIBUTE_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_ANY_ATTRIBUTE_HXX
-#include <cult/containers/vector.hxx>
+#include <vector>
#include <xsd-frontend/semantic-graph/elements.hxx>
#include <xsd-frontend/semantic-graph/namespace.hxx>
@@ -17,12 +17,10 @@ namespace XSDFrontend
{
class AnyAttribute: public virtual Nameable
{
- typedef
- Cult::Containers::Vector<WideString>
- Namespaces;
+ typedef std::vector<WideString> Namespaces;
public:
- typedef Namespaces::ConstIterator NamespaceIterator;
+ typedef Namespaces::const_iterator NamespaceIterator;
NamespaceIterator
namespace_begin () const
diff --git a/xsd-frontend/semantic-graph/any.hxx b/xsd-frontend/semantic-graph/any.hxx
index 5059ff4..fce77a4 100644
--- a/xsd-frontend/semantic-graph/any.hxx
+++ b/xsd-frontend/semantic-graph/any.hxx
@@ -6,7 +6,7 @@
#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_ANY_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_ANY_HXX
-#include <cult/containers/vector.hxx>
+#include <vector>
#include <xsd-frontend/semantic-graph/elements.hxx>
#include <xsd-frontend/semantic-graph/particle.hxx>
@@ -19,12 +19,10 @@ namespace XSDFrontend
class Any: public virtual Nameable,
public virtual Particle
{
- typedef
- Cult::Containers::Vector<WideString>
- Namespaces;
+ typedef std::vector<WideString> Namespaces;
public:
- typedef Namespaces::ConstIterator NamespaceIterator;
+ typedef Namespaces::const_iterator NamespaceIterator;
NamespaceIterator
namespace_begin () const
diff --git a/xsd-frontend/semantic-graph/complex.hxx b/xsd-frontend/semantic-graph/complex.hxx
index 7fd9e54..106a549 100644
--- a/xsd-frontend/semantic-graph/complex.hxx
+++ b/xsd-frontend/semantic-graph/complex.hxx
@@ -9,8 +9,6 @@
#include <xsd-frontend/semantic-graph/elements.hxx>
#include <xsd-frontend/semantic-graph/compositors.hxx>
-#include <cult/containers/vector.hxx>
-
namespace XSDFrontend
{
namespace SemanticGraph
diff --git a/xsd-frontend/semantic-graph/compositors.hxx b/xsd-frontend/semantic-graph/compositors.hxx
index f646640..f7aed8f 100644
--- a/xsd-frontend/semantic-graph/compositors.hxx
+++ b/xsd-frontend/semantic-graph/compositors.hxx
@@ -6,7 +6,7 @@
#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_COMPOSITORS_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_COMPOSITORS_HXX
-#include <cult/containers/list.hxx>
+#include <list>
#include <xsd-frontend/semantic-graph/elements.hxx>
#include <xsd-frontend/semantic-graph/particle.hxx>
@@ -84,17 +84,12 @@ namespace XSDFrontend
//
class Compositor: public virtual Particle
{
- typedef
- Cult::Containers::List<ContainsParticle*>
- ContainsList;
+ typedef std::list<ContainsParticle*> ContainsList;
public:
+ typedef pointer_iterator<ContainsList::iterator> ContainsIterator;
typedef
- Bits::PointerIterator<ContainsList::Iterator>
- ContainsIterator;
-
- typedef
- Bits::PointerIterator<ContainsList::ConstIterator>
+ pointer_iterator<ContainsList::const_iterator>
ContainsConstIterator;
ContainsIterator
@@ -170,7 +165,7 @@ namespace XSDFrontend
contains_.push_front (&e);
else
{
- ContainsList::Iterator i (after.base ());
+ ContainsList::iterator i (after.base ());
contains_.insert (++i, &e);
}
}
@@ -178,7 +173,7 @@ namespace XSDFrontend
Void
remove_edge_left (ContainsParticle& e)
{
- for (ContainsList::Iterator i (contains_.begin ());
+ for (ContainsList::iterator i (contains_.begin ());
i != contains_.end (); ++i)
{
if (*i == &e)
diff --git a/xsd-frontend/semantic-graph/elements.cxx b/xsd-frontend/semantic-graph/elements.cxx
index 36fb9a3..4a4e30c 100644
--- a/xsd-frontend/semantic-graph/elements.cxx
+++ b/xsd-frontend/semantic-graph/elements.cxx
@@ -29,7 +29,7 @@ namespace XSDFrontend
Void Type::
remove_edge_left (Arguments& a)
{
- ArgumentsSet::Iterator i (arguments_.find (&a));
+ ArgumentsSet::iterator i (arguments_.find (&a));
assert (i != arguments_.end ());
arguments_.erase (i);
}
@@ -41,7 +41,7 @@ namespace XSDFrontend
{
// The number of entries should be small so linear search will do.
//
- Argumented::Iterator i (
+ Argumented::iterator i (
std::find (argumented_.begin (), argumented_.end (), &a));
assert (i != argumented_.end ());
diff --git a/xsd-frontend/semantic-graph/elements.hxx b/xsd-frontend/semantic-graph/elements.hxx
index 2d01c91..2b9ce06 100644
--- a/xsd-frontend/semantic-graph/elements.hxx
+++ b/xsd-frontend/semantic-graph/elements.hxx
@@ -6,6 +6,11 @@
#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_ELEMENTS_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_ELEMENTS_HXX
+#include <set>
+#include <map>
+#include <list>
+#include <vector>
+#include <utility> // std::pair
#include <iosfwd>
#include <boost/filesystem/path.hpp>
@@ -13,158 +18,28 @@
#include <boost/filesystem/exception.hpp>
#include <cutl/container/graph.hxx>
+#include <cutl/container/pointer-iterator.hxx>
+#include <cutl/compiler/context.hxx>
#include <cult/types.hxx>
-#include <cult/containers/set.hxx>
-#include <cult/containers/map.hxx>
-#include <cult/containers/list.hxx>
-#include <cult/containers/pair.hxx>
-#include <cult/containers/vector.hxx>
-
-#include <cutl/compiler/context.hxx>
-
namespace XSDFrontend
{
namespace SemanticGraph
{
using namespace cutl;
- using namespace Cult::Types;
-
- namespace Bits
- {
- //@@ Should end up in Cult::Meta
- //
- template <typename X>
- struct strip_pointer
- {
- typedef X Type;
- };
-
- template <typename X>
- struct strip_pointer<X*>
- {
- typedef X Type;
- };
-
- template <typename I>
- struct PointerIterator
- {
- typedef
- typename strip_pointer<typename I::Value>::Type
- Value;
+ using container::pointer_iterator;
- typedef I BaseIterator;
- typedef Value& Reference;
- typedef Value* Pointer;
-
- PointerIterator ()
- : i_ () // i_ can be of a pointer type.
- {
- }
-
- PointerIterator (I const& i)
- : i_ (i)
- {
- }
-
- public:
- Reference
- operator* () const
- {
- return **i_;
- }
-
- Pointer
- operator-> () const
- {
- return *i_;
- }
-
- I const&
- base () const
- {
- return i_;
- }
-
- public:
- PointerIterator&
- operator++ ()
- {
- ++i_;
- return *this;
- }
-
- PointerIterator
- operator++ (Int)
- {
- PointerIterator r (*this);
- ++i_;
- return r;
- }
-
- PointerIterator&
- operator-- ()
- {
- --i_;
- return *this;
- }
-
- PointerIterator
- operator-- (Int)
- {
- PointerIterator r (*this);
- --i_;
- return r;
- }
-
- private:
- I i_;
- };
-
- template <typename I>
- inline
- Boolean
- operator== (PointerIterator<I> const& a, PointerIterator<I> const& b)
- {
- return a.base () == b.base ();
- }
-
- template <typename I>
- inline
- Boolean
- operator!= (PointerIterator<I> const& a, PointerIterator<I> const& b)
- {
- return a.base () != b.base ();
- }
-
- template <typename I>
- inline
- typename PointerIterator<I>::BaseIterator::difference_type
- operator- (PointerIterator<I> const& a, PointerIterator<I> const& b)
- {
- return a.base () - b.base ();
- }
- }
+ using namespace Cult::Types;
//
//
- typedef
- boost::filesystem::filesystem_error
- InvalidPath;
+ typedef boost::filesystem::path Path;
+ typedef std::vector<Path> Paths;
+ typedef boost::filesystem::filesystem_error InvalidPath;
- typedef
- boost::filesystem::path
- Path;
-
- typedef
- Cult::Containers::Vector<Path>
- Paths;
-
- typedef
- compiler::context
- Context;
+ typedef compiler::context Context;
//
//
@@ -426,42 +301,25 @@ namespace XSDFrontend
Names* named_;
};
-
//
//
- typedef
- Cult::Containers::Set<Nameable*>
- Nameables;
-
+ typedef std::set<Nameable*> Nameables;
//
//
class Scope: public virtual Nameable
{
protected:
- typedef
- Cult::Containers::List<Names*>
- NamesList;
-
- typedef
- Cult::Containers::Map<Names*, NamesList::Iterator>
- ListIteratorMap;
-
- typedef
- Cult::Containers::Map<Name, NamesList>
- NamesMap;
+ typedef std::list<Names*> NamesList;
+ typedef std::map<Names*, NamesList::iterator> ListIteratorMap;
+ typedef std::map<Name, NamesList> NamesMap;
public:
- typedef
- Bits::PointerIterator<NamesList::Iterator>
- NamesIterator;
+ typedef pointer_iterator<NamesList::iterator> NamesIterator;
+ typedef pointer_iterator<NamesList::const_iterator> NamesConstIterator;
typedef
- Bits::PointerIterator<NamesList::ConstIterator>
- NamesConstIterator;
-
- typedef
- Cult::Containers::Pair <NamesConstIterator, NamesConstIterator>
+ std::pair<NamesConstIterator, NamesConstIterator>
NamesIteratorPair;
NamesIterator
@@ -491,7 +349,7 @@ namespace XSDFrontend
virtual NamesIteratorPair
find (Name const& name) const
{
- NamesMap::ConstIterator i (names_map_.find (name));
+ NamesMap::const_iterator i (names_map_.find (name));
if (i == names_map_.end ())
return NamesIteratorPair (names_.end (), names_.end ());
@@ -502,7 +360,7 @@ namespace XSDFrontend
NamesIterator
find (Names& e)
{
- ListIteratorMap::Iterator i (iterator_map_.find (&e));
+ ListIteratorMap::iterator i (iterator_map_.find (&e));
return i != iterator_map_.end () ? i->second : names_.end ();
}
@@ -515,7 +373,7 @@ namespace XSDFrontend
Void
add_edge_left (Names& e)
{
- NamesList::Iterator i (names_.insert (names_.end (), &e));
+ NamesList::iterator i (names_.insert (names_.end (), &e));
iterator_map_[&e] = i;
names_map_[e.name ()].push_back (&e);
}
@@ -523,15 +381,15 @@ namespace XSDFrontend
Void
remove_edge_left (Names& e)
{
- ListIteratorMap::Iterator i (iterator_map_.find (&e));
+ ListIteratorMap::iterator i (iterator_map_.find (&e));
assert (i != iterator_map_.end ());
names_.erase (i->second);
iterator_map_.erase (i);
- NamesMap::Iterator j (names_map_.find (e.name ()));
+ NamesMap::iterator j (names_map_.find (e.name ()));
- for (NamesList::Iterator i (j->second.begin ());
+ for (NamesList::iterator i (j->second.begin ());
i != j->second.end (); ++i)
{
if (*i == &e)
@@ -542,13 +400,13 @@ namespace XSDFrontend
Void
add_edge_left (Names& e, NamesIterator const& after)
{
- NamesList::Iterator i;
+ NamesList::iterator i;
if (after.base () == names_.end ())
i = names_.insert (names_.begin (), &e);
else
{
- NamesList::Iterator j (after.base ());
+ NamesList::iterator j (after.base ());
i = names_.insert (++j, &e);
}
@@ -577,22 +435,12 @@ namespace XSDFrontend
class Type: public virtual Nameable
{
protected:
- typedef
- Cult::Containers::Vector<Belongs*>
- Classifies;
-
- typedef
- Cult::Containers::Vector<Inherits*>
- Begets;
-
- typedef
- Cult::Containers::Set<Arguments*>
- ArgumentsSet;
+ typedef std::vector<Belongs*> Classifies;
+ typedef std::vector<Inherits*> Begets;
+ typedef std::set<Arguments*> ArgumentsSet;
public:
- typedef
- Bits::PointerIterator<Classifies::ConstIterator>
- ClassifiesIterator;
+ typedef pointer_iterator<Classifies::const_iterator> ClassifiesIterator;
ClassifiesIterator
classifies_begin () const
@@ -623,9 +471,7 @@ namespace XSDFrontend
//
//
- typedef
- Bits::PointerIterator<Begets::ConstIterator>
- BegetsIterator;
+ typedef pointer_iterator<Begets::const_iterator> BegetsIterator;
BegetsIterator
begets_begin () const
@@ -641,9 +487,7 @@ namespace XSDFrontend
//
//
- typedef
- Bits::PointerIterator<ArgumentsSet::ConstIterator>
- ArgumentsIterator;
+ typedef pointer_iterator<ArgumentsSet::const_iterator> ArgumentsIterator;
ArgumentsIterator
arguments_begin () const
@@ -804,13 +648,8 @@ namespace XSDFrontend
class Restricts: public virtual Inherits
{
public:
- typedef
- Cult::Containers::Map<WideString, WideString>
- Facets;
-
- typedef
- Facets::Iterator
- FacetIterator;
+ typedef std::map<WideString, WideString> Facets;
+ typedef Facets::iterator FacetIterator;
Boolean
facet_empty ()
@@ -1012,17 +851,12 @@ namespace XSDFrontend
class Specialization: public virtual Type
{
- typedef
- Cult::Containers::Vector<Arguments*>
- Argumented;
+ typedef std::vector<Arguments*> Argumented;
public:
+ typedef pointer_iterator<Argumented::iterator> ArgumentedIterator;
typedef
- Bits::PointerIterator<Argumented::Iterator>
- ArgumentedIterator;
-
- typedef
- Bits::PointerIterator<Argumented::ConstIterator>
+ pointer_iterator<Argumented::const_iterator>
ArgumentedConstIterator;
ArgumentedIterator
diff --git a/xsd-frontend/semantic-graph/schema.hxx b/xsd-frontend/semantic-graph/schema.hxx
index e8949a6..1150047 100644
--- a/xsd-frontend/semantic-graph/schema.hxx
+++ b/xsd-frontend/semantic-graph/schema.hxx
@@ -6,7 +6,8 @@
#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_SCHEMA_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_SCHEMA_HXX
-#include <cult/containers/set.hxx>
+#include <set>
+#include <vector>
#include <xsd-frontend/semantic-graph/elements.hxx>
#include <xsd-frontend/semantic-graph/namespace.hxx>
@@ -99,13 +100,8 @@ namespace XSDFrontend
//
class Schema: public graph, public virtual Scope
{
- typedef
- Cult::Containers::Vector<Uses*>
- UsesList;
-
- typedef
- Cult::Containers::Vector<Uses*>
- UsedList;
+ typedef std::vector<Uses*> UsesList;
+ typedef std::vector<Uses*> UsedList;
public:
Schema (Path const& file, UnsignedLong line, UnsignedLong column)
@@ -118,9 +114,7 @@ namespace XSDFrontend
Schema& operator= (Schema const&);
public:
- typedef
- Bits::PointerIterator<UsesList::ConstIterator>
- UsesIterator;
+ typedef pointer_iterator<UsesList::const_iterator> UsesIterator;
UsesIterator
uses_begin () const
@@ -134,9 +128,8 @@ namespace XSDFrontend
return uses_.end ();
}
- typedef
- Bits::PointerIterator<UsedList::ConstIterator>
- UsedIterator;
+ public:
+ typedef pointer_iterator<UsedList::const_iterator> UsedIterator;
UsedIterator
used_begin () const
@@ -225,7 +218,7 @@ namespace XSDFrontend
}
private:
- typedef Cult::Containers::Set<Schema const*> SchemaSet;
+ typedef std::set<Schema const*> SchemaSet;
Void
find_ (Name const& name, NamesList&, SchemaSet&) const;