123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #ifndef cmXMLParser_h
- #define cmXMLParser_h
- #include "cmConfigure.h"
- #include <string>
- extern "C" {
- void cmXMLParserStartElement(void*, const char*, const char**);
- void cmXMLParserEndElement(void*, const char*);
- void cmXMLParserCharacterDataHandler(void*, const char*, int);
- }
- class cmXMLParser
- {
- public:
- cmXMLParser();
- virtual ~cmXMLParser();
-
- virtual int Parse(const char* string);
-
- virtual int ParseFile(const char* file);
-
- virtual int InitializeParser();
- virtual int ParseChunk(const char* inputString,
- std::string::size_type length);
- virtual int CleanupParser();
- typedef void (*ReportFunction)(int, const char*, void*);
- void SetErrorCallback(ReportFunction f, void* d)
- {
- this->ReportCallback = f;
- this->ReportCallbackData = d;
- }
- protected:
-
-
- int ParseError;
- ReportFunction ReportCallback;
- void* ReportCallbackData;
-
- void* Parser;
-
- virtual int ParsingComplete();
-
- virtual void StartElement(const std::string& name, const char** atts);
-
-
- virtual void EndElement(const std::string& name);
-
- virtual void CharacterDataHandler(const char* data, int length);
-
- virtual void ReportXmlParseError();
-
- virtual void ReportError(int line, int column, const char* msg);
-
-
- static int IsSpace(char c);
-
- virtual int ParseBuffer(const char* buffer, std::string::size_type length);
-
- int ParseBuffer(const char* buffer);
-
- static const char* FindAttribute(const char** atts, const char* attribute);
-
- friend void cmXMLParserStartElement(void*, const char*, const char**);
- friend void cmXMLParserEndElement(void*, const char*);
- friend void cmXMLParserCharacterDataHandler(void*, const char*, int);
- };
- #endif
|