Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __ABWPARSER_H__
00011 #define __ABWPARSER_H__
00012
00013 #include <boost/scoped_ptr.hpp>
00014
00015 #include <librevenge/librevenge.h>
00016 #include "ABWXMLHelper.h"
00017
00018 namespace libabw
00019 {
00020
00021 class ABWCollector;
00022 struct ABWParserState;
00023
00024 class ABWParser
00025 {
00026 public:
00027 explicit ABWParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *iface);
00028 virtual ~ABWParser();
00029 bool parse();
00030
00031 private:
00032 ABWParser();
00033 ABWParser(const ABWParser &);
00034 ABWParser &operator=(const ABWParser &);
00035
00036
00037
00038 int getElementToken(xmlTextReaderPtr reader);
00039
00040
00041
00042 bool processXmlDocument(librevenge::RVNGInputStream *input);
00043 void processXmlNode(xmlTextReaderPtr reader);
00044
00045 void readAbiword(xmlTextReaderPtr reader);
00046 void readM(xmlTextReaderPtr reader);
00047 void readHistory(xmlTextReaderPtr reader);
00048 void readRevisions(xmlTextReaderPtr reader);
00049 void readIgnoredWords(xmlTextReaderPtr reader);
00050 void readPageSize(xmlTextReaderPtr reader);
00051 void readSection(xmlTextReaderPtr reader);
00052 void readA(xmlTextReaderPtr reader);
00053 void readC(xmlTextReaderPtr reader);
00054 void readD(xmlTextReaderPtr reader);
00055 void readL(xmlTextReaderPtr reader);
00056 void readP(xmlTextReaderPtr reader);
00057 void readS(xmlTextReaderPtr reader);
00058 void readEndnote(xmlTextReaderPtr reader);
00059 void readFoot(xmlTextReaderPtr reader);
00060 void readImage(xmlTextReaderPtr reader);
00061
00062 void readTable(xmlTextReaderPtr reader);
00063 void readCell(xmlTextReaderPtr reader);
00064
00065 librevenge::RVNGInputStream *m_input;
00066 librevenge::RVNGTextInterface *m_iface;
00067 ABWCollector *m_collector;
00068 boost::scoped_ptr<ABWParserState> m_state;
00069 };
00070
00071 }
00072
00073 #endif // __ABWPARSER_H__
00074