From a8ce5c380c69539fe0c7c62c397634d9d0c9fde2 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 18 Dec 2020 18:48:46 +0300 Subject: Switch to build2 --- xsd/cxx/parser/impl-source.cxx | 384 ----------------------------------------- 1 file changed, 384 deletions(-) delete mode 100644 xsd/cxx/parser/impl-source.cxx (limited to 'xsd/cxx/parser/impl-source.cxx') diff --git a/xsd/cxx/parser/impl-source.cxx b/xsd/cxx/parser/impl-source.cxx deleted file mode 100644 index 592c956..0000000 --- a/xsd/cxx/parser/impl-source.cxx +++ /dev/null @@ -1,384 +0,0 @@ -// file : xsd/cxx/parser/impl-source.cxx -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#include -#include - -#include -#include - -namespace CXX -{ - namespace Parser - { - namespace - { - struct Enumeration: Traversal::Enumeration, Context - { - Enumeration (Context& c) - : Context (c) - { - } - - virtual void - traverse (Type& e) - { - String const& name (eimpl (e)); - String const& ret (ret_type (e)); - SemanticGraph::Type& base (e.inherits ().base ()); - String const& base_ret (ret_type (base)); - - os << "// " << name << endl - << "//" << endl - << endl; - - // pre - // - os << "void " << name << "::" << endl - << "pre ()" - << "{" - << "}"; - - // post - // - os << ret << " " << name << "::" << endl - << post_name (e) << " ()" - << "{"; - - if (ret == base_ret) - { - os << (ret != L"void" ? "return " : "") << - post_name (base) << " ();"; - } - else if (ret == L"void") - { - os << arg_type (base) << " v (" << post_name (base) << " ());" - << endl; - - if (options.generate_print_impl ()) - { - PrintCall t (*this, e.name (), "v"); - t.dispatch (base); - } - else - os << "// TODO" << endl - << "//" << endl; - } - else - { - if (base_ret == L"void") - os << post_name (base) << " ();"; - else - os << arg_type (base) << " v (" << post_name (base) << " ());" - << endl - << "// TODO" << endl - << "//" << endl - << "// return ... ;" << endl; - } - - os << "}"; - } - }; - - // - // - struct List: Traversal::List, Context - { - List (Context& c) - : Context (c) - { - } - - virtual void - traverse (Type& l) - { - String const& name (eimpl (l)); - SemanticGraph::Type& type (l.argumented ().type ()); - - String item (unclash (ename (l), "item")); - - os << "// " << name << endl - << "//" << endl - << endl; - - // pre - // - os << "void " << name << "::" << endl - << "pre ()" - << "{" - << "}"; - - // item - // - String const& arg (arg_type (type)); - - os << "void " << name << "::" << endl - << item; - - if (arg == L"void") - os << " ()"; - else - os << " (" << arg << " " << item << ")"; - - os << "{"; - - if (arg != L"void") - { - if (options.generate_print_impl ()) - { - PrintCall t (*this, type.name (), item); - t.dispatch (type); - } - else - os << "// TODO" << endl - << "//" << endl; - } - - os << "}"; - - // post - // - String const& ret (ret_type (l)); - - os << ret << " " << name << "::" << endl - << post_name (l) << " ()" - << "{"; - - if (ret != L"void") - os << "// TODO" << endl - << "//" << endl - << "// return ... ;" << endl; - - os << "}"; - } - }; - - // - // - struct Union: Traversal::Union, Context - { - Union (Context& c) - : Context (c) - { - } - - virtual void - traverse (Type& u) - { - String const& name (eimpl (u)); - - os << "// " << name << endl - << "//" << endl - << endl; - - // pre - // - os << "void " << name << "::" << endl - << "pre ()" - << "{" - << "}"; - - // _characters - // - os << "void " << name << "::" << endl - << "_characters (const " << string_type << "& s)" - << "{"; - - if (options.generate_print_impl ()) - os << cout_inst << " << " << strlit (u.name () + L": ") << - " << s << std::endl;"; - else - os << "// TODO" << endl - << "//" << endl; - - os << "}"; - - // post - // - String const& ret (ret_type (u)); - - os << ret << " " << name << "::" << endl - << post_name (u) << " ()" - << "{"; - - if (ret != L"void") - os << "// TODO" << endl - << "//" << endl - << "// return ... ;" << endl; - - os << "}"; - } - }; - - // - // - struct ParserCallback: Traversal::Member, Context - { - ParserCallback (Context& c) - : Context (c) - { - } - - virtual void - traverse (Type& m) - { - if (skip (m)) - return; - - String const& name (ename (m)); - String const& arg (arg_type (m.type ())); - - os << "void " << - eimpl (dynamic_cast (m.scope ())) << - "::" << endl - << name; - - if (arg == L"void") - os << " ()"; - else - os << " (" << arg << " " << name << ")"; - - os << "{"; - - if (arg != L"void") - { - if (options.generate_print_impl ()) - { - PrintCall t (*this, m.name (), name); - t.dispatch (m.type ()); - } - else - os << "// TODO" << endl - << "//" << endl; - } - - os << "}"; - } - }; - - // - // - struct Complex: Traversal::Complex, Context - { - Complex (Context& c) - : Context (c), parser_callback_ (c) - { - names_parser_callback_ >> parser_callback_; - } - - virtual void - traverse (Type& c) - { - String const& name (eimpl (c)); - - bool restriction (restriction_p (c)); - - os << "// " << name << endl - << "//" << endl - << endl; - - // pre - // - os << "void " << name << "::" << endl - << "pre ()" - << "{" - << "}"; - - // Parser callbacks. - // - if (!restriction) - names (c, names_parser_callback_); - - // post - // - String const& ret (ret_type (c)); - - os << ret << " " << name << "::" << endl - << post_name (c) << " ()" - << "{"; - - if (c.inherits_p ()) - { - SemanticGraph::Type& base (c.inherits ().base ()); - String const& base_ret (ret_type (base)); - - if (ret == base_ret) - { - os << (ret != L"void" ? "return " : "") << - post_name (base) << " ();"; - } - else if (ret == L"void") - { - os << arg_type (base) << " v (" << post_name (base) << " ());" - << endl; - - if (options.generate_print_impl ()) - { - PrintCall t (*this, c.name (), "v"); - t.dispatch (base); - } - else - os << "// TODO" << endl - << "//" << endl; - } - else - { - if (base_ret == L"void") - os << post_name (base) << " ();"; - else - os << arg_type (base) << " v (" << post_name (base) << " ());" - << endl - << "// TODO" << endl - << "//" << endl - << "// return ... ;" << endl; - } - } - else - { - if (ret != L"void") - os << "// TODO" << endl - << "//" << endl - << "// return ... ;" << endl; - } - - os << "}"; - } - - private: - // - // - ParserCallback parser_callback_; - Traversal::Names names_parser_callback_; - }; - } - - void - generate_impl_source (Context& ctx) - { - if (ctx.options.generate_print_impl ()) - ctx.os << "#include " << endl - << endl; - - Traversal::Schema schema; - Sources sources; - Traversal::Names schema_names; - Namespace ns (ctx); - Traversal::Names names; - - schema >> sources >> schema; - schema >> schema_names >> ns >> names; - - List list (ctx); - Union union_ (ctx); - Complex complex (ctx); - Enumeration enumeration (ctx); - - names >> list; - names >> union_; - names >> complex; - names >> enumeration; - - schema.dispatch (ctx.schema_root); - } - } -} -- cgit v1.1