aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/serializer/driver-source.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-06-22 15:07:35 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-06-22 15:07:35 +0200
commit973221821ac8e20da4eadbf4ad552f686b1ace48 (patch)
tree861059c9606d07487f08413b35172fe2b5fa3733 /xsde/cxx/serializer/driver-source.cxx
parentb2efa0d81f7e28017789082138cb547e6bea4028 (diff)
Get rid of dependency on libcult
Diffstat (limited to 'xsde/cxx/serializer/driver-source.cxx')
-rw-r--r--xsde/cxx/serializer/driver-source.cxx150
1 files changed, 74 insertions, 76 deletions
diff --git a/xsde/cxx/serializer/driver-source.cxx b/xsde/cxx/serializer/driver-source.cxx
index 3ec2207..6f609c2 100644
--- a/xsde/cxx/serializer/driver-source.cxx
+++ b/xsde/cxx/serializer/driver-source.cxx
@@ -3,15 +3,16 @@
// copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+#include <set>
+#include <map>
+#include <sstream>
+
#include <cxx/serializer/driver-source.hxx>
#include <xsd-frontend/semantic-graph.hxx>
#include <xsd-frontend/traversal.hxx>
-#include <cult/containers/map.hxx>
-#include <cult/containers/set.hxx>
-
-#include <sstream>
+using namespace std;
namespace CXX
{
@@ -19,11 +20,8 @@ namespace CXX
{
namespace
{
- typedef
- Cult::Containers::Map<SemanticGraph::Type*, String>
- TypeInstanceMap;
-
- typedef Cult::Containers::Set<String> InstanceSet;
+ typedef map<SemanticGraph::Type*, String> TypeInstanceMap;
+ typedef set<String> InstanceSet;
// For base types we only want member's types, but not the
// base itself.
@@ -37,7 +35,7 @@ namespace CXX
{
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Complex& c)
{
inherits (c);
@@ -49,7 +47,7 @@ namespace CXX
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::List& l)
{
def_.dispatch (l.argumented ().type ());
@@ -144,7 +142,7 @@ namespace CXX
belongs_ >> *this;
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Type& t)
{
if (map_.find (&t) == map_.end ())
@@ -156,7 +154,7 @@ namespace CXX
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::List& l)
{
if (map_.find (&l) == map_.end ())
@@ -170,7 +168,7 @@ namespace CXX
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Complex& c)
{
if (map_.find (&c) == map_.end ())
@@ -192,13 +190,13 @@ namespace CXX
// anyType & anySimpleType.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::AnyType& t)
{
fund_type (t, "any_type");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::AnySimpleType& t)
{
fund_type (t, "any_simple_type");
@@ -206,7 +204,7 @@ namespace CXX
// Boolean.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Boolean& t)
{
fund_type (t, "boolean");
@@ -214,79 +212,79 @@ namespace CXX
// Integral types.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Byte& t)
{
fund_type (t, "byte");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::UnsignedByte& t)
{
fund_type (t, "unsigned_byte");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Short& t)
{
fund_type (t, "short");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::UnsignedShort& t)
{
fund_type (t, "unsigned_short");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Int& t)
{
fund_type (t, "int");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::UnsignedInt& t)
{
fund_type (t, "unsigned_int");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Long& t)
{
fund_type (t, "long");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::UnsignedLong& t)
{
fund_type (t, "unsigned_long");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Integer& t)
{
fund_type (t, "integer");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NonPositiveInteger& t)
{
fund_type (t, "non_positive_integer");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NonNegativeInteger& t)
{
fund_type (t, "non_negative_integer");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::PositiveInteger& t)
{
fund_type (t, "positive_integer");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NegativeInteger& t)
{
fund_type (t, "negative_integer");
@@ -294,19 +292,19 @@ namespace CXX
// Floats.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Float& t)
{
fund_type (t, "float");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Double& t)
{
fund_type (t, "double");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Decimal& t)
{
fund_type (t, "decimal");
@@ -314,49 +312,49 @@ namespace CXX
// Strings.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::String& t)
{
fund_type (t, "string");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NormalizedString& t)
{
fund_type (t, "normalized_string");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Token& t)
{
fund_type (t, "token");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NameToken& t)
{
fund_type (t, "nmtoken");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NameTokens& t)
{
fund_type (t, "nmtokens");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Name& t)
{
fund_type (t, "name");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::NCName& t)
{
fund_type (t, "ncname");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Language& t)
{
fund_type (t, "language");
@@ -365,7 +363,7 @@ namespace CXX
// Qualified name.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::QName& t)
{
fund_type (t, "qname");
@@ -374,19 +372,19 @@ namespace CXX
// ID/IDREF.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Id& t)
{
fund_type (t, "id");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::IdRef& t)
{
fund_type (t, "idref");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::IdRefs& t)
{
fund_type (t, "idrefs");
@@ -394,7 +392,7 @@ namespace CXX
// URI.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::AnyURI& t)
{
fund_type (t, "uri");
@@ -402,13 +400,13 @@ namespace CXX
// Binary.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Base64Binary& t)
{
fund_type (t, "base64_binary");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::HexBinary& t)
{
fund_type (t, "hex_binary");
@@ -417,55 +415,55 @@ namespace CXX
// Date/time.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Date& t)
{
fund_type (t, "date");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::DateTime& t)
{
fund_type (t, "date_time");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Duration& t)
{
fund_type (t, "duration");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Day& t)
{
fund_type (t, "day");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Month& t)
{
fund_type (t, "month");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::MonthDay& t)
{
fund_type (t, "month_day");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Year& t)
{
fund_type (t, "year");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::YearMonth& t)
{
fund_type (t, "year_month");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Time& t)
{
fund_type (t, "time");
@@ -473,20 +471,20 @@ namespace CXX
// Entity.
//
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Entity& t)
{
fund_type (t, "entity");
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Fundamental::Entities& t)
{
fund_type (t, "entities");
}
private:
- virtual Void
+ virtual void
fund_type (SemanticGraph::Type& t, String const& name)
{
if (map_.find (&t) == map_.end ())
@@ -504,7 +502,7 @@ namespace CXX
String base_name (escape (raw_name + L"_s"));
String name (base_name);
- for (UnsignedLong i (1); set_.find (name) != set_.end (); ++i)
+ for (size_t i (1); set_.find (name) != set_.end (); ++i)
{
std::wostringstream os;
os << i;
@@ -542,12 +540,12 @@ namespace CXX
//
struct ParticleArg: Traversal::Element, Context
{
- ParticleArg (Context& c, TypeInstanceMap& map, Boolean& first)
+ ParticleArg (Context& c, TypeInstanceMap& map, bool& first)
: Context (c), map_ (map), first_ (first)
{
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Element& e)
{
if (!first_)
@@ -560,17 +558,17 @@ namespace CXX
private:
TypeInstanceMap& map_;
- Boolean& first_;
+ bool& first_;
};
struct AttributeArg: Traversal::Attribute, Context
{
- AttributeArg (Context& c, TypeInstanceMap& map, Boolean& first)
+ AttributeArg (Context& c, TypeInstanceMap& map, bool& first)
: Context (c), map_ (map), first_ (first)
{
}
- virtual Void
+ virtual void
traverse (Type& a)
{
if (!first_)
@@ -583,7 +581,7 @@ namespace CXX
private:
TypeInstanceMap& map_;
- Boolean& first_;
+ bool& first_;
};
struct ArgList : Traversal::Complex,
@@ -607,7 +605,7 @@ namespace CXX
names_ >> attribute_;
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Complex& c)
{
inherits (c, inherits_);
@@ -619,7 +617,7 @@ namespace CXX
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::List& l)
{
if (!first_)
@@ -643,7 +641,7 @@ namespace CXX
Traversal::Names names_;
AttributeArg attribute_;
- Boolean first_;
+ bool first_;
};
struct SerializerConnect: Traversal::List,
@@ -673,7 +671,7 @@ namespace CXX
belongs_ >> *this;
}
- virtual Void
+ virtual void
traverse (SemanticGraph::List& l)
{
if (type_set_.find (&l) == type_set_.end ())
@@ -686,7 +684,7 @@ namespace CXX
}
}
- virtual Void
+ virtual void
traverse (SemanticGraph::Complex& c)
{
if (type_set_.find (&c) == type_set_.end ())
@@ -715,7 +713,7 @@ namespace CXX
}
private:
- Boolean
+ bool
has_members (SemanticGraph::Complex& c)
{
using SemanticGraph::Complex;
@@ -738,7 +736,7 @@ namespace CXX
private:
TypeInstanceMap& map_;
- Cult::Containers::Set<SemanticGraph::Type*> type_set_;
+ set<SemanticGraph::Type*> type_set_;
BaseType base_;
Traversal::Inherits inherits_;
@@ -761,7 +759,7 @@ namespace CXX
{
}
- virtual Void
+ virtual void
traverse (Type& e)
{
if (options.root_element_first ())
@@ -783,7 +781,7 @@ namespace CXX
};
}
- Void
+ void
generate_driver_source (Context& ctx)
{
// Figure out the root element. Validator should have made sure