diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2025-03-19 15:41:36 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2025-03-19 15:41:36 +0100 |
commit | 018e1ba581ec6f01f069a45ec4cf89f152b44d5f (patch) | |
tree | 0e7dda4bb693a6714066fbe5efcd2f24ff7c1a65 /xsd/cxx/tree/parser-header.cxx | |
parent | 1c188393cd2e271ed2581471b601fb5960777fd8 (diff) |
remerge
Diffstat (limited to 'xsd/cxx/tree/parser-header.cxx')
-rw-r--r-- | xsd/cxx/tree/parser-header.cxx | 472 |
1 files changed, 0 insertions, 472 deletions
diff --git a/xsd/cxx/tree/parser-header.cxx b/xsd/cxx/tree/parser-header.cxx deleted file mode 100644 index 9ef9e89..0000000 --- a/xsd/cxx/tree/parser-header.cxx +++ /dev/null @@ -1,472 +0,0 @@ -// file : xsd/cxx/tree/parser-header.cxx -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#include <xsd/cxx/tree/parser-header.hxx> - -#include <libxsd-frontend/semantic-graph.hxx> -#include <libxsd-frontend/traversal.hxx> - -namespace CXX -{ - namespace Tree - { - namespace - { - struct ElementFunction: Traversal::Element, - GlobalElementBase, - Context - { - ElementFunction (Context& c) - : GlobalElementBase (c), Context (c) - { - } - - virtual void - traverse (Type& e) - { - if (!doc_root_p (e)) - return; - - String const& name (eparser (e)); - String const& error_handler (error_handler_type); - - if (doxygen) - { - os << "/**" << endl - << " * @name Parsing functions for the %" << - comment (e.name ()) << " document root." << endl; - - if (e.annotated_p ()) - { - os << " *" << endl; - write_annotation (e.annotation ()); - } - - os << " */" << endl - << "//@{" << endl - << endl; - } - - if (!doxygen) - { - os << "// Parse a URI or a local file." << endl - << "//" << endl - << endl; - } - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a URI or a local file." << endl - << " *" << endl - << " * @param uri A URI or a local file name." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function uses exceptions to report parsing errors." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (const " << string_type << "& uri," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a URI or a local file with an error handler." << endl - << " *" << endl - << " * @param uri A URI or a local file name." << endl - << " * @param eh An error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (const " << string_type << "& uri," << endl - << error_handler << "& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a URI or a local file with a Xerces-C++ " << - "DOM error" << endl - << " * handler." << endl - << " *" << endl - << " * @param uri A URI or a local file name." << endl - << " * @param eh A Xerces-C++ DOM error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (const " << string_type << "& uri," << endl - << xerces_ns << "::DOMErrorHandler& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (!doxygen) - { - os << "// Parse std::istream." << endl - << "//" << endl - << endl; - } - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a standard input stream." << endl - << " *" << endl - << " * @param is A standrad input stream." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function uses exceptions to report parsing errors." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (::std::istream& is," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a standard input stream with an error handler." << endl - << " *" << endl - << " * @param is A standrad input stream." << endl - << " * @param eh An error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (::std::istream& is," << endl - << error_handler << "& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a standard input stream with a " << - "Xerces-C++ DOM error" << endl - << " * handler." << endl - << " *" << endl - << " * @param is A standrad input stream." << endl - << " * @param eh A Xerces-C++ DOM error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (::std::istream& is," << endl - << xerces_ns << "::DOMErrorHandler& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a standard input stream with a resource id." << endl - << " *" << endl - << " * @param is A standrad input stream." << endl - << " * @param id A resource id." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * The resource id is used to identify the document " << - "being parsed in" << endl - << " * diagnostics as well as to resolve relative paths." << endl - << " *" << endl - << " * This function uses exceptions to report parsing errors." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (::std::istream& is," << endl - << "const " << string_type << "& id," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a standard input stream with a resource " << - "id and an" << endl - << " * error handler." << endl - << " *" << endl - << " * @param is A standrad input stream." << endl - << " * @param id A resource id." << endl - << " * @param eh An error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * The resource id is used to identify the document " << - "being parsed in" << endl - << " * diagnostics as well as to resolve relative paths." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (::std::istream& is," << endl - << "const " << string_type << "& id," << endl - << error_handler << "& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a standard input stream with a resource " << - "id and a" << endl - << " * Xerces-C++ DOM error handler." << endl - << " *" << endl - << " * @param is A standrad input stream." << endl - << " * @param id A resource id." << endl - << " * @param eh A Xerces-C++ DOM error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * The resource id is used to identify the document " << - "being parsed in" << endl - << " * diagnostics as well as to resolve relative paths." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (::std::istream& is," << endl - << "const " << string_type << "& id," << endl - << xerces_ns << "::DOMErrorHandler& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (!doxygen) - { - os << "// Parse xercesc::InputSource." << endl - << "//" << endl - << endl; - } - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a Xerces-C++ input source." << endl - << " *" << endl - << " * @param is A Xerces-C++ input source." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function uses exceptions to report parsing errors." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (" << xerces_ns << "::InputSource& is," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a Xerces-C++ input source with an " << - "error handler." << endl - << " *" << endl - << " * @param is A Xerces-C++ input source." << endl - << " * @param eh An error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (" << xerces_ns << "::InputSource& is," << endl - << error_handler << "& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a Xerces-C++ input source with a " << - "Xerces-C++ DOM" << endl - << " * error handler." << endl - << " *" << endl - << " * @param is A Xerces-C++ input source." << endl - << " * @param eh A Xerces-C++ DOM error handler." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function reports parsing errors by calling the " << - "error handler." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (" << xerces_ns << "::InputSource& is," << endl - << xerces_ns << "::DOMErrorHandler& eh," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (!doxygen) - { - os << "// Parse xercesc::DOMDocument." << endl - << "//" << endl - << endl; - } - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a Xerces-C++ DOM document." << endl - << " *" << endl - << " * @param d A Xerces-C++ DOM document." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (const " << xerces_ns << "::DOMDocument& d," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "/**" << endl - << " * @brief Parse a Xerces-C++ DOM document." << endl - << " *" << endl - << " * @param d A pointer to the Xerces-C++ DOM document." << endl - << " * @param f Parsing flags." << endl - << " * @param p Parsing properties. " << endl - << " * @return A pointer to the root of the object model." << endl - << " *" << endl - << " * This function is normally used together with the " << - "keep_dom and" << endl - << " * own_dom parsing flags to assign ownership of the DOM " << - "document" << endl - << " * to the object model." << endl - << " */" << endl; - } - - os << inst_exp - << auto_ptr << "< " << type_name (e) << " >" << endl - << name << " (" << dom_auto_ptr << "< " << xerces_ns << - "::DOMDocument > d," << endl - << flags_type << " f = 0," << endl - << "const " << properties_type << "& p = " << properties_type << " ());" - << endl; - - if (doxygen) - { - os << "//@}" << endl - << endl; - } - } - - private: - String - type_name (Type& e) - { - std::wostringstream o; - - MemberTypeName type (*this, o); - type.dispatch (e.type ()); - - return o.str (); - } - }; - } - - - void - generate_parser_header (Context& ctx) - { - ctx.os << "#include <iosfwd>" << endl - << endl - << "#include <xercesc/sax/InputSource.hpp>" << endl - << "#include <xercesc/dom/DOMDocument.hpp>" << endl - << "#include <xercesc/dom/DOMErrorHandler.hpp>" << endl - << endl; - - Traversal::Schema schema; - Sources sources; - Traversal::Names names_ns, names; - Namespace ns (ctx); - ElementFunction element (ctx); - - schema >> sources >> schema; - schema >> names_ns >> ns >> names >> element; - - schema.dispatch (ctx.schema_root); - } - } -} |