diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2010-10-13 15:38:11 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2010-10-13 15:38:11 +0200 |
commit | 6f395f9f769866a04f6949cb7ed14f93d90cf728 (patch) | |
tree | d1f8343e7b41fc1895676ad4248a5e4942f9172b /xsde/cxx/parser | |
parent | c1f49aa87678c512ac37575365a6676727e5f20a (diff) |
Map anySimpleType to a string
Diffstat (limited to 'xsde/cxx/parser')
-rw-r--r-- | xsde/cxx/parser/generator.cxx | 4 | ||||
-rw-r--r-- | xsde/cxx/parser/parser-header.cxx | 2 | ||||
-rw-r--r-- | xsde/cxx/parser/print-impl-common.hxx | 18 |
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 |