35#ifndef __XML_PARSER_H__
36#define __XML_PARSER_H__
38#if !defined(CHAR_SIZE)
43# error EST can only handle 8 bit characters
46#include "EST_String.h"
50#include "EST_TDeque.h"
90 static InputSource
open_entity(Entity ent,
void *arg);
155 const char *instruction);
247 bool p_track_context;
250 bool p_track_contents;
286 InputSource
open(Entity ent);
const char * get_error(XML_Parser &p)
Get the error message for the last error.
virtual void element(XML_Parser_Class &c, XML_Parser &p, void *data, const char *name, XML_Attribute_List &attributes)
XML_Parser * make_parser(InputSource source, void *data)
Create a parser for the RXP InputSource.
void register_id(EST_Regex id_pattern, EST_String directory)
virtual void error(XML_Parser_Class &c, XML_Parser &p, void *data)
InputSource try_and_open(Entity ent)
virtual void processing(XML_Parser_Class &c, XML_Parser &p, void *data, const char *instruction)
virtual void document_close(XML_Parser_Class &c, XML_Parser &p, void *data)
virtual void pcdata(XML_Parser_Class &c, XML_Parser &p, void *data, const char *chars)
virtual void document_open(XML_Parser_Class &c, XML_Parser &p, void *data)
virtual void element_open(XML_Parser_Class &c, XML_Parser &p, void *data, const char *name, XML_Attribute_List &attributes)
virtual void cdata(XML_Parser_Class &c, XML_Parser &p, void *data, const char *chars)
void registered_ids(EST_TList< EST_String > &list)
virtual void element_close(XML_Parser_Class &c, XML_Parser &p, void *data, const char *name)
static InputSource open_entity(Entity ent, void *arg)
Parser p
The RXP parser object.
XBit current_bit
The piece of markup being processed.
const char * get_error()
Get the error message for the last error.
XML_Parser(XML_Parser_Class &parent, InputSource source, Entity initial_entity, void *data)
Creator used by XML_Parser_Class::make_parser()
void * data
Arbitrary data which can be used by callbacks.
~XML_Parser()
Destructor, may close input if required.
InputSource open(Entity ent)
Open. Asks the parser class to do the work.
void track_contents(bool flag)
EST_String context(int n)
EST_TDeque< EST_String > p_context
If context is being tracked, this is a stack of element names.
void track_context(bool flag)
XML_Parser_Class * pclass
InputSource source
Where we are reading from.