aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/parser
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-10-13 15:38:11 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-10-13 15:38:11 +0200
commit6f395f9f769866a04f6949cb7ed14f93d90cf728 (patch)
treed1f8343e7b41fc1895676ad4248a5e4942f9172b /xsde/cxx/parser
parentc1f49aa87678c512ac37575365a6676727e5f20a (diff)
Map anySimpleType to a string
Diffstat (limited to 'xsde/cxx/parser')
-rw-r--r--xsde/cxx/parser/generator.cxx4
-rw-r--r--xsde/cxx/parser/parser-header.cxx2
-rw-r--r--xsde/cxx/parser/print-impl-common.hxx18
3 files changed, 22 insertions, 2 deletions
diff --git a/xsde/cxx/parser/generator.cxx b/xsde/cxx/parser/generator.cxx
index 74ba2ea..b6f91ee 100644
--- a/xsde/cxx/parser/generator.cxx
+++ b/xsde/cxx/parser/generator.cxx
@@ -718,6 +718,8 @@ namespace CXX
String qname (xns + L"::qname*");
String string_seq (xns + L"::string_sequence*");
+ xsd_std.types_push_back ("anySimpleType", "char*", "char*");
+
xsd_std.types_push_back ("string", "char*", "char*");
xsd_std.types_push_back ("normalizedString", "char*", "char*");
xsd_std.types_push_back ("token", "char*", "char*");
@@ -743,6 +745,8 @@ namespace CXX
String qname (xns + L"::qname");
String string_seq (xns + L"::string_sequence*");
+ xsd_std.types_push_back ("anySimpleType", "::std::string");
+
xsd_std.types_push_back ("string", "::std::string");
xsd_std.types_push_back ("normalizedString", "::std::string");
xsd_std.types_push_back ("token", "::std::string");
diff --git a/xsde/cxx/parser/parser-header.cxx b/xsde/cxx/parser/parser-header.cxx
index 11176f9..fe6d67b 100644
--- a/xsde/cxx/parser/parser-header.cxx
+++ b/xsde/cxx/parser/parser-header.cxx
@@ -1222,7 +1222,7 @@ namespace CXX
virtual Void
traverse (SemanticGraph::AnySimpleType& t)
{
- gen_typedef (t, "void");
+ gen_typedef (t, string_type_);
}
// Boolean.
diff --git a/xsde/cxx/parser/print-impl-common.hxx b/xsde/cxx/parser/print-impl-common.hxx
index 13325bd..4dba38f 100644
--- a/xsde/cxx/parser/print-impl-common.hxx
+++ b/xsde/cxx/parser/print-impl-common.hxx
@@ -17,6 +17,8 @@ namespace CXX
{
struct PrintCall: Traversal::Type,
+ Traversal::AnySimpleType,
+
Traversal::Fundamental::Boolean,
Traversal::Fundamental::Byte,
@@ -80,6 +82,12 @@ namespace CXX
gen_user_type ();
}
+ virtual Void
+ traverse (SemanticGraph::AnySimpleType& t)
+ {
+ gen_string (t);
+ }
+
// Boolean.
//
virtual Void
@@ -885,7 +893,9 @@ namespace CXX
String arg_;
};
- struct DeleteCall: Traversal::Fundamental::String,
+ struct DeleteCall: Traversal::AnySimpleType,
+
+ Traversal::Fundamental::String,
Traversal::Fundamental::NormalizedString,
Traversal::Fundamental::Token,
Traversal::Fundamental::Name,
@@ -912,6 +922,12 @@ namespace CXX
{
}
+ virtual Void
+ traverse (SemanticGraph::AnySimpleType& t)
+ {
+ gen_string (t);
+ }
+
// Strings.
//
virtual Void