aboutsummaryrefslogtreecommitdiff
path: root/xsd/processing
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-06-22 11:50:03 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-06-22 11:50:03 +0200
commit54110801525371740298d5cae378bfc778749935 (patch)
treef0f125135b2a1bcf1eea49a559b49d00ea25d879 /xsd/processing
parent3f4a7a6b2a3b708ea69b980494f6e49eb0c02ebc (diff)
Get rid of dependency on libcult
Diffstat (limited to 'xsd/processing')
-rw-r--r--xsd/processing/cardinality/processor.cxx84
-rw-r--r--xsd/processing/cardinality/processor.hxx8
-rw-r--r--xsd/processing/inheritance/processor.cxx60
-rw-r--r--xsd/processing/inheritance/processor.hxx8
4 files changed, 73 insertions, 87 deletions
diff --git a/xsd/processing/cardinality/processor.cxx b/xsd/processing/cardinality/processor.cxx
index a47ed96..87fdad3 100644
--- a/xsd/processing/cardinality/processor.cxx
+++ b/xsd/processing/cardinality/processor.cxx
@@ -3,24 +3,22 @@
// copyright : Copyright (c) 2006-2011 Code Synthesis Tools CC
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-#include <processing/cardinality/processor.hxx>
-
-#include <elements.hxx>
+#include <map>
#include <xsd-frontend/semantic-graph.hxx>
#include <xsd-frontend/traversal.hxx>
-#include <cult/containers/map.hxx>
+#include <elements.hxx>
+
+#include <processing/cardinality/processor.hxx>
+
+using namespace std;
namespace Processing
{
- using namespace Cult;
-
namespace SemanticGraph = XSDFrontend::SemanticGraph;
namespace Traversal = XSDFrontend::Traversal;
- typedef WideString String;
-
namespace Cardinality
{
namespace
@@ -39,8 +37,7 @@ namespace Processing
{
}
- ElementInfo (SemanticGraph::Element& e,
- UnsignedLong min_, UnsignedLong max_)
+ ElementInfo (SemanticGraph::Element& e, size_t min_, size_t max_)
: min (min_), max (max_), e_ (&e)
{
}
@@ -53,13 +50,13 @@ namespace Processing
}
public:
- UnsignedLong min, max;
+ size_t min, max;
private:
SemanticGraph::Element* e_;
};
- typedef Cult::Containers::Map<String, ElementInfo> ElementInfoMap;
+ typedef map<String, ElementInfo> ElementInfoMap;
//
//
@@ -75,8 +72,7 @@ namespace Processing
{
}
- AnyInfo (SemanticGraph::Any& a,
- UnsignedLong min_, UnsignedLong max_)
+ AnyInfo (SemanticGraph::Any& a, size_t min_, size_t max_)
: min (min_), max (max_), a_ (&a)
{
}
@@ -89,13 +85,13 @@ namespace Processing
}
public:
- UnsignedLong min, max;
+ size_t min, max;
private:
SemanticGraph::Any* a_;
};
- typedef Cult::Containers::Map<String, AnyInfo> AnyInfoMap;
+ typedef map<String, AnyInfo> AnyInfoMap;
//
//
@@ -105,13 +101,13 @@ namespace Processing
Traversal::Element,
Traversal::Any
{
- virtual Void
+ virtual void
traverse (SemanticGraph::All& a)
{
traverse_sequence (a);
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Choice& c)
{
using SemanticGraph::Compositor;
@@ -135,13 +131,13 @@ namespace Processing
// those that are we need to choose minimum between
// the two for min and maximum for max.
//
- for (ElementInfoMap::Iterator i (el_map.begin ());
+ for (ElementInfoMap::iterator i (el_map.begin ());
i != el_map.end (); ++i)
{
String const& name (i->first);
ElementInfo& ei (i->second);
- ElementInfoMap::Iterator j (t.el_map.find (name));
+ ElementInfoMap::iterator j (t.el_map.find (name));
if (j == t.el_map.end ())
ei.min = 0;
@@ -156,13 +152,13 @@ namespace Processing
// not in the map, we need to add to the map and set their
// min to 0.
//
- for (ElementInfoMap::Iterator i (t.el_map.begin ());
+ for (ElementInfoMap::iterator i (t.el_map.begin ());
i != t.el_map.end (); ++i)
{
String const& name (i->first);
ElementInfo& ei (i->second);
- ElementInfoMap::Iterator j (el_map.find (name));
+ ElementInfoMap::iterator j (el_map.find (name));
if (j == el_map.end ())
el_map[name] = ElementInfo (ei.element (), 0, ei.max);
@@ -173,7 +169,7 @@ namespace Processing
// we need to copy them from each arm of choice and set min to
// 0.
//
- for (AnyInfoMap::Iterator i (t.any_map.begin ());
+ for (AnyInfoMap::iterator i (t.any_map.begin ());
i != t.any_map.end (); ++i)
{
String const& name (i->first);
@@ -187,19 +183,19 @@ namespace Processing
// Choice's min and max.
//
- UnsignedLong cmin (c.min ()), cmax (c.max ());
+ size_t cmin (c.min ()), cmax (c.max ());
// Iterate over elements and wildcards in the maps and multiply
// their cardinality by cmin and cmax.
//
- for (ElementInfoMap::Iterator i (el_map.begin ());
+ for (ElementInfoMap::iterator i (el_map.begin ());
i != el_map.end (); ++i)
{
i->second.min *= cmin;
i->second.max *= cmax;
}
- for (AnyInfoMap::Iterator i (any_map.begin ());
+ for (AnyInfoMap::iterator i (any_map.begin ());
i != any_map.end (); ++i)
{
i->second.min *= cmin; // Not really necessary since min == 0.
@@ -207,20 +203,20 @@ namespace Processing
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Sequence& s)
{
traverse_sequence (s);
}
- Void
+ void
traverse_sequence (SemanticGraph::Compositor& c)
{
using SemanticGraph::Compositor;
// Sequence's min and max.
//
- UnsignedLong smin (c.min ()), smax (c.max ());
+ size_t smin (c.min ()), smax (c.max ());
// Go over all particles we contain and add them to the map.
//
@@ -232,14 +228,14 @@ namespace Processing
// Handle elements.
//
- for (ElementInfoMap::Iterator i (t.el_map.begin ());
+ for (ElementInfoMap::iterator i (t.el_map.begin ());
i != t.el_map.end (); ++i)
{
String const& name (i->first);
ElementInfo& ei (i->second);
- UnsignedLong min (ei.min * smin);
- UnsignedLong max (ei.max * smax);
- ElementInfoMap::Iterator j (el_map.find (name));
+ size_t min (ei.min * smin);
+ size_t max (ei.max * smax);
+ ElementInfoMap::iterator j (el_map.find (name));
if (j != el_map.end ())
{
@@ -255,13 +251,13 @@ namespace Processing
// Handle wildcards.
//
- for (AnyInfoMap::Iterator i (t.any_map.begin ());
+ for (AnyInfoMap::iterator i (t.any_map.begin ());
i != t.any_map.end (); ++i)
{
String const& name (i->first);
AnyInfo& ai (i->second);
- UnsignedLong min (ai.min * smin);
- UnsignedLong max (ai.max * smax);
+ size_t min (ai.min * smin);
+ size_t max (ai.max * smax);
assert (any_map.find (name) == any_map.end ());
@@ -270,7 +266,7 @@ namespace Processing
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Element& e)
{
SemanticGraph::ContainsParticle& cp (e.contained_particle ());
@@ -282,7 +278,7 @@ namespace Processing
el_map[name] = ElementInfo (e, cp.min (), cp.max ());
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Any& a)
{
SemanticGraph::ContainsParticle& cp (a.contained_particle ());
@@ -300,7 +296,7 @@ namespace Processing
//
struct Complex: Traversal::Complex
{
- virtual Void
+ virtual void
traverse (Type& c)
{
if (c.contains_compositor_p ())
@@ -308,7 +304,7 @@ namespace Processing
Particle t;
t.dispatch (c.contains_compositor ().compositor ());
- for (ElementInfoMap::Iterator i (t.el_map.begin ());
+ for (ElementInfoMap::iterator i (t.el_map.begin ());
i != t.el_map.end (); ++i)
{
ElementInfo& ei (i->second);
@@ -318,7 +314,7 @@ namespace Processing
ctx.set ("max", ei.max);
}
- for (AnyInfoMap::Iterator i (t.any_map.begin ());
+ for (AnyInfoMap::iterator i (t.any_map.begin ());
i != t.any_map.end (); ++i)
{
AnyInfo& ai (i->second);
@@ -340,7 +336,7 @@ namespace Processing
//
struct Attribute: Traversal::Attribute
{
- virtual Void
+ virtual void
traverse (Type& a)
{
SemanticGraph::Context& ctx (a.context ());
@@ -355,7 +351,7 @@ namespace Processing
//
struct Uses: Traversal::Uses
{
- virtual Void
+ virtual void
traverse (Type& u)
{
SemanticGraph::Schema& s (u.schema ());
@@ -369,7 +365,7 @@ namespace Processing
};
}
- Void Processor::
+ void Processor::
process (SemanticGraph::Schema& tu, SemanticGraph::Path const&)
{
Traversal::Schema schema;
diff --git a/xsd/processing/cardinality/processor.hxx b/xsd/processing/cardinality/processor.hxx
index fa1dffd..5d7fb3c 100644
--- a/xsd/processing/cardinality/processor.hxx
+++ b/xsd/processing/cardinality/processor.hxx
@@ -6,23 +6,21 @@
#ifndef PROCESSING_CARDINALITY_PROCESSOR_HXX
#define PROCESSING_CARDINALITY_PROCESSOR_HXX
-#include <cult/types.hxx>
-
#include <xsd-frontend/semantic-graph/elements.hxx> // Path
#include <xsd-frontend/semantic-graph/schema.hxx>
+#include <types.hxx>
+
namespace Processing
{
namespace Cardinality
{
- using namespace Cult::Types;
-
class Processor
{
public:
struct Failed {};
- Void
+ void
process (XSDFrontend::SemanticGraph::Schema&,
XSDFrontend::SemanticGraph::Path const& file);
};
diff --git a/xsd/processing/inheritance/processor.cxx b/xsd/processing/inheritance/processor.cxx
index 7d103db..1e46282 100644
--- a/xsd/processing/inheritance/processor.cxx
+++ b/xsd/processing/inheritance/processor.cxx
@@ -3,6 +3,9 @@
// copyright : Copyright (c) 2006-2011 Code Synthesis Tools CC
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+#include <set>
+#include <iostream>
+
#include <processing/inheritance/processor.hxx>
#include <elements.hxx>
@@ -10,21 +13,13 @@
#include <xsd-frontend/semantic-graph.hxx>
#include <xsd-frontend/traversal.hxx>
-#include <cult/containers/set.hxx>
-
-#include <iostream>
-using std::wcerr;
-using std::endl;
+using namespace std;
namespace Processing
{
- using namespace Cult;
-
namespace SemanticGraph = XSDFrontend::SemanticGraph;
namespace Traversal = XSDFrontend::Traversal;
- typedef WideString String;
-
namespace Inheritance
{
namespace
@@ -43,15 +38,14 @@ namespace Processing
String member_xpath;
};
- inline Boolean
+ inline bool
operator< (Dep const& a, Dep const& b)
{
return &a.type < &b.type;
}
- typedef Containers::Set<Dep> DepSet;
- typedef Containers::Set<SemanticGraph::Type*> TypeSet;
-
+ typedef set<Dep> DepSet;
+ typedef set<SemanticGraph::Type*> TypeSet;
String
xpath (SemanticGraph::Nameable& n)
@@ -88,7 +82,7 @@ namespace Processing
*this >> names_ >> *this;
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Complex& c)
{
using SemanticGraph::Complex;
@@ -103,7 +97,7 @@ namespace Processing
names (c);
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Member& m)
{
SemanticGraph::Type& t (m.type ());
@@ -158,14 +152,14 @@ namespace Processing
}
template <typename E>
- Void
+ void
add_edge_left (E& e)
{
node_.add_edge_left (e, arg_);
}
template <typename E>
- Void
+ void
add_edge_right (E& e)
{
node_.add_edge_right (e, arg_);
@@ -185,26 +179,26 @@ namespace Processing
{
Global (SemanticGraph::Schema& root,
SemanticGraph::Schema& schema,
- Boolean& failed)
+ bool& failed)
: root_ (root), schema_ (schema), failed_ (failed)
{
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Type& t)
{
if (t.named_p ())
types_seen_.insert (&t);
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Complex& c)
{
check_dep (c, c);
types_seen_.insert (&c);
};
- virtual Void
+ virtual void
traverse (SemanticGraph::Element& e)
{
SemanticGraph::Type& t (e.type ());
@@ -218,7 +212,7 @@ namespace Processing
};
private:
- Void
+ void
check_dep (SemanticGraph::Nameable& global,
SemanticGraph::Type& type)
{
@@ -236,7 +230,7 @@ namespace Processing
complex.dispatch (type);
}
- for (DepSet::ConstIterator i (prereqs.begin ());
+ for (DepSet::const_iterator i (prereqs.begin ());
i != prereqs.end (); ++i)
{
Dep const& dep (*i);
@@ -364,7 +358,7 @@ namespace Processing
private:
// Return true if root sources s.
//
- Boolean
+ bool
sources_p (SemanticGraph::Schema& root, SemanticGraph::Schema& s)
{
using SemanticGraph::Schema;
@@ -387,7 +381,7 @@ namespace Processing
SemanticGraph::Schema& root_;
SemanticGraph::Schema& schema_;
TypeSet types_seen_;
- Boolean& failed_;
+ bool& failed_;
};
@@ -403,7 +397,7 @@ namespace Processing
}
private:
- Cult::Containers::Set<SemanticGraph::Schema*> schemas_;
+ set<SemanticGraph::Schema*> schemas_;
};
// Go into included/imported schemas while making sure we don't
@@ -411,25 +405,25 @@ namespace Processing
//
struct Uses: Traversal::Includes, Traversal::Imports
{
- Uses (SemanticGraph::Schema& root, Boolean& failed)
+ Uses (SemanticGraph::Schema& root, bool& failed)
: root_ (root), failed_ (failed)
{
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Includes& i)
{
traverse (i.schema ());
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Imports& i)
{
traverse (i.schema ());
}
private:
- Void
+ void
traverse (SemanticGraph::Schema& s)
{
if (!s.context ().count ("processing-inheritance-seen"))
@@ -457,14 +451,14 @@ namespace Processing
private:
SemanticGraph::Schema& root_;
- Boolean& failed_;
+ bool& failed_;
};
}
- Void Processor::
+ void Processor::
process (SemanticGraph::Schema& tu, SemanticGraph::Path const&)
{
- Boolean failed (false);
+ bool failed (false);
// We need to process include/imported schemas since other
// parts of the process, for example, name processors can
diff --git a/xsd/processing/inheritance/processor.hxx b/xsd/processing/inheritance/processor.hxx
index 32cccc4..7bb8a7f 100644
--- a/xsd/processing/inheritance/processor.hxx
+++ b/xsd/processing/inheritance/processor.hxx
@@ -6,23 +6,21 @@
#ifndef PROCESSING_INHERITANCE_PROCESSOR_HXX
#define PROCESSING_INHERITANCE_PROCESSOR_HXX
-#include <cult/types.hxx>
-
#include <xsd-frontend/semantic-graph/elements.hxx> // Path
#include <xsd-frontend/semantic-graph/schema.hxx>
+#include <types.hxx>
+
namespace Processing
{
namespace Inheritance
{
- using namespace Cult::Types;
-
class Processor
{
public:
struct Failed {};
- Void
+ void
process (XSDFrontend::SemanticGraph::Schema&,
XSDFrontend::SemanticGraph::Path const& file);
};