diff options
Diffstat (limited to 'xsde/cxx/serializer/name-processor.cxx')
-rw-r--r-- | xsde/cxx/serializer/name-processor.cxx | 208 |
1 files changed, 105 insertions, 103 deletions
diff --git a/xsde/cxx/serializer/name-processor.cxx b/xsde/cxx/serializer/name-processor.cxx index 6d60c37..dc24f91 100644 --- a/xsde/cxx/serializer/name-processor.cxx +++ b/xsde/cxx/serializer/name-processor.cxx @@ -3,16 +3,18 @@ // copyright : Copyright (c) 2006-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file +#include <set> +#include <map> +#include <sstream> +#include <iostream> + #include <cxx/elements.hxx> #include <cxx/serializer/name-processor.hxx> #include <xsd-frontend/semantic-graph.hxx> #include <xsd-frontend/traversal.hxx> -#include <cult/containers/set.hxx> - -#include <sstream> -#include <iostream> +using namespace std; namespace CXX { @@ -22,7 +24,7 @@ namespace CXX { // // - typedef Cult::Containers::Set<String> NameSet; + typedef set<String> NameSet; class Context: public CXX::Context { @@ -62,7 +64,7 @@ namespace CXX { String name (escape (n + suffix)); - 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; @@ -83,18 +85,18 @@ namespace CXX String const skel_suffix_; String const impl_suffix_; - Cult::Containers::Map<String, NameSet*> global_type_names_; + map<String, NameSet*> global_type_names_; public: - Boolean const impl; - Boolean const tiein; + bool const impl; + bool const tiein; String const& skel_suffix; String const& impl_suffix; - Cult::Containers::Map<String, NameSet*>& global_type_names; + map<String, NameSet*>& global_type_names; - Boolean validation; - Boolean polymorphic; + bool validation; + bool polymorphic; }; // Primary names. @@ -103,12 +105,12 @@ namespace CXX Traversal::Any, Context { - PrimaryParticle (Context& c, NameSet& set, Boolean restriction) + PrimaryParticle (Context& c, NameSet& set, bool restriction) : Context (c), set_ (set), restriction_ (restriction) { } - virtual Void + virtual void traverse (SemanticGraph::Element& e) { using SemanticGraph::Element; @@ -126,7 +128,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Any& a) { using SemanticGraph::Any; @@ -148,19 +150,19 @@ namespace CXX private: NameSet& set_; - Boolean restriction_; + bool restriction_; }; struct PrimaryAttribute: Traversal::Attribute, Traversal::AnyAttribute, Context { - PrimaryAttribute (Context& c, NameSet& set, Boolean restriction) + PrimaryAttribute (Context& c, NameSet& set, bool restriction) : Context (c), set_ (set), restriction_ (restriction) { } - virtual Void + virtual void traverse (SemanticGraph::Attribute& a) { using SemanticGraph::Attribute; @@ -180,7 +182,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::AnyAttribute& a) { using SemanticGraph::AnyAttribute; @@ -202,7 +204,7 @@ namespace CXX private: NameSet& set_; - Boolean restriction_; + bool restriction_; }; // Secondary names. @@ -214,12 +216,12 @@ namespace CXX Traversal::Sequence, Context { - ParticleTag (Context& c, NameSet& set, Boolean restriction) + ParticleTag (Context& c, NameSet& set, bool restriction) : Context (c), set_ (set), restriction_ (restriction) { } - virtual Void + virtual void traverse (SemanticGraph::Element& e) { using SemanticGraph::Element; @@ -240,7 +242,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Any& a) { using SemanticGraph::Any; @@ -261,7 +263,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Choice& c) { using SemanticGraph::Compositor; @@ -281,7 +283,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Sequence& s) { using SemanticGraph::Compositor; @@ -303,7 +305,7 @@ namespace CXX private: NameSet& set_; - Boolean restriction_; + bool restriction_; }; struct SecondaryCompositor: Traversal::All, @@ -311,7 +313,7 @@ namespace CXX Traversal::Sequence, Context { - SecondaryCompositor (Context& c, NameSet& set, Boolean restriction) + SecondaryCompositor (Context& c, NameSet& set, bool restriction) : Context (c), set_ (set), restriction_ (restriction), @@ -320,7 +322,7 @@ namespace CXX contain_particle_tag_ >> particle_tag_; } - virtual Void + virtual void traverse (SemanticGraph::All& a) { // For the all compositor, maxOccurs=1 and minOccurs={0,1} @@ -335,7 +337,7 @@ namespace CXX Traversal::All::traverse (a); } - virtual Void + virtual void traverse (SemanticGraph::Choice& c) { if (c.contains_begin () == c.contains_end ()) @@ -388,7 +390,7 @@ namespace CXX Traversal::Choice::traverse (c); } - virtual Void + virtual void traverse (SemanticGraph::Sequence& s) { SemanticGraph::Context& sc (s.context ()); @@ -434,7 +436,7 @@ namespace CXX private: NameSet& set_; - Boolean restriction_; + bool restriction_; ParticleTag particle_tag_; Traversal::ContainsParticle contain_particle_tag_; @@ -444,22 +446,22 @@ namespace CXX Traversal::Any, Context { - SecondaryParticle (Context& c, NameSet& set, Boolean restriction) + SecondaryParticle (Context& c, NameSet& set, bool restriction) : Context (c), set_ (set), restriction_ (restriction) { } - virtual Void + virtual void traverse (SemanticGraph::Element& e) { - Boolean poly ( + bool poly ( polymorphic && !e.type ().context ().count ("anonymous")); SemanticGraph::Context& ec (e.context ()); if (!restriction_) { - UnsignedLong min (e.min ()), max (e.max ()); + size_t min (e.min ()), max (e.max ()); String const& base (ec.get<String> ("s:name")); @@ -482,7 +484,7 @@ namespace CXX "xsd-frontend-restriction-correspondence")); SemanticGraph::Context& bc (b.context ()); - UnsignedLong min (b.min ()), max (b.max ()); + size_t min (b.min ()), max (b.max ()); if (min == 0 && max == 1) ec.set ("s:present", bc.get<String> ("s:present")); @@ -508,7 +510,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Any& a) { using SemanticGraph::Any; @@ -517,7 +519,7 @@ namespace CXX if (!restriction_) { - UnsignedLong min (a.min ()), max (a.max ()); + size_t min (a.min ()), max (a.max ()); String const& base (ac.get<String> ("s:name")); if (min == 0 && max == 1) @@ -537,7 +539,7 @@ namespace CXX *ac.get<Any*> ("xsd-frontend-restriction-correspondence")); SemanticGraph::Context& bc (b.context ()); - UnsignedLong min (b.min ()), max (b.max ()); + size_t min (b.min ()), max (b.max ()); if (min == 0 && max == 1) { @@ -563,19 +565,19 @@ namespace CXX private: NameSet& set_; - Boolean restriction_; + bool restriction_; }; struct SecondaryAttribute: Traversal::Attribute, Traversal::AnyAttribute, Context { - SecondaryAttribute (Context& c, NameSet& set, Boolean restriction) + SecondaryAttribute (Context& c, NameSet& set, bool restriction) : Context (c), set_ (set), restriction_ (restriction) { } - virtual Void + virtual void traverse (SemanticGraph::Attribute& a) { using SemanticGraph::Attribute; @@ -606,7 +608,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::AnyAttribute& a) { using SemanticGraph::AnyAttribute; @@ -634,7 +636,7 @@ namespace CXX private: NameSet& set_; - Boolean restriction_; + bool restriction_; }; // @@ -646,7 +648,7 @@ namespace CXX { } - virtual Void + virtual void traverse (Type& c) { SemanticGraph::Context& cc (c.context ()); @@ -668,7 +670,7 @@ namespace CXX // inheriting by restriction in which case we need to have // the same names as our base. // - Boolean restriction (false); + bool restriction (false); if (c.inherits_p ()) { @@ -762,7 +764,7 @@ namespace CXX { } - virtual Void + virtual void traverse (SemanticGraph::Type& t) { String const& n (t.name ()); @@ -793,7 +795,7 @@ namespace CXX { } - virtual Void + virtual void traverse (Type& ns) { SemanticGraph::Context& nsc (ns.context ()); @@ -889,13 +891,13 @@ namespace CXX // anyType & anySimpleType. // - virtual Void + virtual void traverse (SemanticGraph::AnyType& t) { set_names (t, "any_type"); } - virtual Void + virtual void traverse (SemanticGraph::AnySimpleType& t) { set_names (t, "any_simple_type"); @@ -903,7 +905,7 @@ namespace CXX // Boolean. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Boolean& t) { set_names (t, "boolean"); @@ -911,79 +913,79 @@ namespace CXX // Integral types. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Byte& t) { set_names (t, "byte"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::UnsignedByte& t) { set_names (t, "unsigned_byte"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Short& t) { set_names (t, "short"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::UnsignedShort& t) { set_names (t, "unsigned_short"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Int& t) { set_names (t, "int"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::UnsignedInt& t) { set_names (t, "unsigned_int"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Long& t) { set_names (t, "long"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::UnsignedLong& t) { set_names (t, "unsigned_long"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Integer& t) { set_names (t, "integer"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NonPositiveInteger& t) { set_names (t, "non_positive_integer"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NonNegativeInteger& t) { set_names (t, "non_negative_integer"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::PositiveInteger& t) { set_names (t, "positive_integer"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NegativeInteger& t) { set_names (t, "negative_integer"); @@ -991,19 +993,19 @@ namespace CXX // Floats. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Float& t) { set_names (t, "float"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Double& t) { set_names (t, "double"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Decimal& t) { set_names (t, "decimal"); @@ -1011,49 +1013,49 @@ namespace CXX // Strings. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::String& t) { set_names (t, "string"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NormalizedString& t) { set_names (t, "normalized_string"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Token& t) { set_names (t, "token"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NameToken& t) { set_names (t, "nmtoken"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NameTokens& t) { set_names (t, "nmtokens"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Name& t) { set_names (t, "name"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::NCName& t) { set_names (t, "ncname"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Language& t) { set_names (t, "language"); @@ -1062,7 +1064,7 @@ namespace CXX // Qualified name. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::QName& t) { set_names (t, "qname"); @@ -1071,19 +1073,19 @@ namespace CXX // ID/IDREF. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Id& t) { set_names (t, "id"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::IdRef& t) { set_names (t, "idref"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::IdRefs& t) { set_names (t, "idrefs"); @@ -1091,7 +1093,7 @@ namespace CXX // URI. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::AnyURI& t) { set_names (t, "uri"); @@ -1099,13 +1101,13 @@ namespace CXX // Binary. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Base64Binary& t) { set_names (t, "base64_binary"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::HexBinary& t) { set_names (t, "hex_binary"); @@ -1114,55 +1116,55 @@ namespace CXX // Date/time. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Date& t) { set_names (t, "date"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::DateTime& t) { set_names (t, "date_time"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Duration& t) { set_names (t, "duration"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Day& t) { set_names (t, "gday"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Month& t) { set_names (t, "gmonth"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::MonthDay& t) { set_names (t, "gmonth_day"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Year& t) { set_names (t, "gyear"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::YearMonth& t) { set_names (t, "gyear_month"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Time& t) { set_names (t, "time"); @@ -1170,13 +1172,13 @@ namespace CXX // Entity. // - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Entity& t) { set_names (t, "entity"); } - virtual Void + virtual void traverse (SemanticGraph::Fundamental::Entities& t) { set_names (t, "entities"); @@ -1195,12 +1197,12 @@ namespace CXX return escape (base + impl_suffix); } - Void + void set_names (SemanticGraph::Type& t, String const& name) { SemanticGraph::Context& c (t.context ()); - WideChar const* ns = validation + wchar_t const* ns = validation ? L"::xsde::cxx::serializer::validating::" : L"::xsde::cxx::serializer::non_validating::"; @@ -1226,7 +1228,7 @@ namespace CXX Traversal::Includes, Traversal::Imports { - virtual Void + virtual void traverse (SemanticGraph::Sources& sr) { SemanticGraph::Schema& s (sr.schema ()); @@ -1238,7 +1240,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Includes& i) { SemanticGraph::Schema& s (i.schema ()); @@ -1250,7 +1252,7 @@ namespace CXX } } - virtual Void + virtual void traverse (SemanticGraph::Imports& i) { SemanticGraph::Schema& s (i.schema ()); @@ -1268,7 +1270,7 @@ namespace CXX // struct Implies: Traversal::Implies { - virtual Void + virtual void traverse (SemanticGraph::Implies& i) { SemanticGraph::Schema& s (i.schema ()); @@ -1281,11 +1283,11 @@ namespace CXX } }; - Void + void process_impl (options const& ops, SemanticGraph::Schema& tu, SemanticGraph::Path const& file, - Boolean deep) + bool deep) { Context ctx (ops, tu, file); @@ -1379,11 +1381,11 @@ namespace CXX } } - Void NameProcessor:: + void NameProcessor:: process (options const& ops, SemanticGraph::Schema& tu, SemanticGraph::Path const& file, - Boolean deep) + bool deep) { process_impl (ops, tu, file, deep); } |