decompiler
1.0.0
|
Lightweight (and incomplete) XML parser for marshaling data to and from the decompiler. More...
#include "types.h"
#include <fstream>
#include <iomanip>
#include <string>
#include <vector>
#include <map>
Classes | |
class | ghidra::Attributes |
The attributes for a single XML element. More... | |
class | ghidra::ContentHandler |
The SAX interface for parsing XML documents. More... | |
class | ghidra::Element |
An XML element. A node in the DOM tree. More... | |
class | ghidra::Document |
A complete in-memory XML document. More... | |
class | ghidra::TreeHandler |
A SAX interface implementation for constructing an in-memory DOM model. More... | |
class | ghidra::DocumentStorage |
A container for parsed XML documents. More... | |
struct | ghidra::DecoderError |
An exception thrown by the XML parser. More... | |
Typedefs | |
typedef void * | ghidra::Locator |
Placeholder for a document locator object. | |
typedef vector< Element * > | ghidra::List |
A list of XML elements. | |
Functions | |
int4 | ghidra::xml_parse (istream &i, ContentHandler *hand, int4 dbg=0) |
Start-up the XML parser given a stream and a handler. More... | |
Document * | ghidra::xml_tree (istream &i) |
Parse the given XML stream into an in-memory document. More... | |
void | ghidra::xml_escape (ostream &s, const char *str) |
Send the given character array to a stream, escaping characters with special XML meaning. More... | |
void | ghidra::a_v (ostream &s, const string &attr, const string &val) |
Output an XML attribute name/value pair to stream. More... | |
void | ghidra::a_v_i (ostream &s, const string &attr, intb val) |
Output the given signed integer as an XML attribute value. More... | |
void | ghidra::a_v_u (ostream &s, const string &attr, uintb val) |
Output the given unsigned integer as an XML attribute value. More... | |
void | ghidra::a_v_b (ostream &s, const string &attr, bool val) |
Output the given boolean value as an XML attribute. More... | |
bool | ghidra::xml_readbool (const string &attr) |
Read an XML attribute value as a boolean. More... | |
Lightweight (and incomplete) XML parser for marshaling data to and from the decompiler.
|
inline |
Output an XML attribute name/value pair to stream.
s | is the output stream |
attr | is the name of the attribute |
val | is the attribute value |
References ghidra::a_v().
Referenced by ghidra::a_v(), ghidra::AddrSpace::saveBasicAttributes(), ghidra::SleighBase::saveXml(), ghidra::SpacebaseSpace::saveXml(), and ghidra::OverlaySpace::saveXml().
|
inline |
Output the given boolean value as an XML attribute.
s | is the output stream |
attr | is the name of the attribute |
val | is the given boolean value |
References ghidra::a_v_b().
Referenced by ghidra::a_v_b(), ghidra::AddrSpace::saveBasicAttributes(), ghidra::SleighBase::saveXml(), and ghidra::FloatFormat::saveXml().
|
inline |
Output the given signed integer as an XML attribute value.
s | is the output stream |
attr | is the name of the attribute |
val | is the given integer value |
References ghidra::a_v_i().
Referenced by ghidra::a_v_i(), ghidra::AddrSpace::saveBasicAttributes(), ghidra::SleighBase::saveXml(), ghidra::FloatFormat::saveXml(), and ghidra::OverlaySpace::saveXml().
|
inline |
Output the given unsigned integer as an XML attribute value.
s | is the output stream |
attr | is the name of the attribute |
val | is the given unsigned integer value |
References ghidra::a_v_u().
Referenced by ghidra::a_v_u(), and ghidra::SleighBase::saveXml().
void ghidra::xml_escape | ( | ostream & | s, |
const char * | str | ||
) |
Send the given character array to a stream, escaping characters with special XML meaning.
This makes the following character substitutions:
s | is the stream to write to |
str | is the given character array to escape |
Referenced by ghidra::DecoderError::DecoderError(), and ghidra::SourceFileIndexer::saveXml().
int4 ghidra::xml_parse | ( | istream & | i, |
ContentHandler * | hand, | ||
int4 | dbg = 0 |
||
) |
Start-up the XML parser given a stream and a handler.
This runs the low-level XML parser.
i | is the given stream to get character data from |
hand | is the ContentHandler that stores or processes the XML content events |
dbg | is non-zero if the parser should output debug information during its parse |
Referenced by ghidra::DecoderError::DecoderError().
|
inline |
Read an XML attribute value as a boolean.
This method is intended to recognize the strings, "true", "yes", and "1" as a true value. Anything else is returned as false.
attr | is the given XML attribute value (as a string) |
References ghidra::xml_readbool().
Referenced by ghidra::XmlDecode::readBool(), ghidra::SleighBase::restoreXml(), ghidra::FloatFormat::restoreXml(), and ghidra::xml_readbool().
Document* ghidra::xml_tree | ( | istream & | i | ) |
Parse the given XML stream into an in-memory document.
The stream is parsed using the standard ContentHandler for producing an in-memory DOM representation of the XML document.
i | is the given stream |
Referenced by ghidra::DecoderError::DecoderError(), ghidra::XmlDecode::ingestStream(), and ghidra::SleighCompile::run_compilation().