diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-02-07 22:48:06 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-02-07 22:48:06 +0000 |
commit | 108546a0ea067d8e5da4d223fb03c6659b153bd0 (patch) | |
tree | e36d290d0b6ae5ab759822bb3fb0d474243a7b2d /gdb/xml-support.h | |
parent | 7bd1c9613d962037a19b474fda5c6ab4cbf38501 (diff) | |
download | gdb-108546a0ea067d8e5da4d223fb03c6659b153bd0.zip gdb-108546a0ea067d8e5da4d223fb03c6659b153bd0.tar.gz gdb-108546a0ea067d8e5da4d223fb03c6659b153bd0.tar.bz2 |
* Makefile.in (XMLFILES): New.
(COMMON_OBS): Add xml-builtin.o.
(xml-builtin.c, stamp-xml): New rules.
(xml-tdesc.o): Update.
* features/feature_to_c.sh: New file.
* xml-support.c (MAX_XINCLUDE_DEPTH): Define.
(struct gdb_xml_parser): Add dtd_name and is_xinclude.
(gdb_xml_start_element): Initialize scope after possibly reallocating
scopes. Move cleanup later. Handle the XInclude description
specially.
(gdb_xml_end_element): Only parse the body if there is a current element.
Call XML_DefaultCurrent if there is no element.
(gdb_xml_fetch_external_entity, gdb_xml_use_dtd): New.
(struct xinclude_parsing_data, xinclude_start_include)
(xinclude_end_include, xml_xinclude_default)
(xml_xinclude_start_doctype, xml_xinclude_end_doctype)
(xml_xinclude_xml_decl, xml_xinclude_cleanup, xinclude_attributes)
(xinclude_elements, xml_process_xincludes, fetch_xml_builtin): New.
* xml-support.h (xml_fetch_another, xml_process_xincludes)
(fetch_xml_builtin, xml_builtin, gdb_xml_use_dtd): New declarations.
* xml-tdesc.c (tdesc_parse_xml): Add fetcher_baton argument. Expand
XInclude directives. Use the compiled in DTD.
(fetch_xml_from_file): Add baton argument. Treat it as a containing
directory name. Do not warn here.
(file_read_description_xml): Update call. Warn here instead. Pass
a dirname as baton.
(fetch_available_features_from_target): New.
(target_read_description_xml): Use it.
* features/gdb-target.dtd: Add copyright notice. Use xinclude.dtd
to handle XInclude.
* features/xinclude.dtd: New file.
* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.
* gdb.texinfo (Target Description Format): Add section on XInclude.
Diffstat (limited to 'gdb/xml-support.h')
-rw-r--r-- | gdb/xml-support.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gdb/xml-support.h b/gdb/xml-support.h index 8a9dd61..de8ae5b 100644 --- a/gdb/xml-support.h +++ b/gdb/xml-support.h @@ -30,6 +30,35 @@ struct gdb_xml_parser; struct gdb_xml_element; struct gdb_xml_attribute; +/* Support for XInclude. */ + +/* Callback to fetch a new XML file, based on the provided HREF. */ + +typedef char *(*xml_fetch_another) (const char *href, void *baton); + +/* Return a new string which is the expansion of TEXT after processing + <xi:include> tags. FETCHER will be called (with FETCHER_BATON) to + retrieve any new files. DEPTH should be zero on the initial call. + + On failure, this function uses NAME in a warning and returns NULL. + It may throw an exception, but does not for XML parsing + problems. */ + +char *xml_process_xincludes (const char *name, const char *text, + xml_fetch_another fetcher, void *fetcher_baton, + int depth); + +/* Return an XML document which was compiled into GDB, from + the given FILENAME, or NULL if the file was not compiled in. */ + +const char *fetch_xml_builtin (const char *filename); + +/* The text of compiled-in XML documents, from xml-builtin.c + (generated). */ +extern const char *xml_builtin[][2]; + +/* Simplified XML parser infrastructure. */ + /* A name and value pair, used to record parsed attributes. */ struct gdb_xml_value @@ -140,6 +169,11 @@ struct gdb_xml_parser *gdb_xml_create_parser_and_cleanup (const char *name, const struct gdb_xml_element *elements, void *user_data); +/* Associate DTD_NAME, which must be the name of a compiled-in DTD, + with PARSER. */ + +void gdb_xml_use_dtd (struct gdb_xml_parser *parser, const char *dtd_name); + /* Invoke PARSER on BUFFER. BUFFER is the data to parse, which should be NUL-terminated. |