diff options
Diffstat (limited to 'kmouth/phrasebook/phrasebookparser.h')
-rw-r--r-- | kmouth/phrasebook/phrasebookparser.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/kmouth/phrasebook/phrasebookparser.h b/kmouth/phrasebook/phrasebookparser.h new file mode 100644 index 0000000..a6e436a --- /dev/null +++ b/kmouth/phrasebook/phrasebookparser.h @@ -0,0 +1,73 @@ +/*************************************************************************** + phrasebookparser.h - description + ------------------- + begin : Don Sep 12 2002 + copyright : (C) 2002 by Gunnar Schmi Dt + email : kmouth@schmi-dt.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef PHRASEBOOKPARSER_H +#define PHRASEBOOKPARSER_H + +#include <qxml.h> +#include <qvaluestack.h> +#include "phrasebook.h" + +/** + * This class implements a parser for both the phrase list and for phrase + * books. It is intended to be used together with the Qt SAX2 framework. + * @author Gunnar Schmi Dt + */ + +class PhraseBookParser : public QXmlDefaultHandler { +public: + PhraseBookParser(); + ~PhraseBookParser(); + + bool warning (const QXmlParseException &exception); + bool error (const QXmlParseException &exception); + bool fatalError (const QXmlParseException &exception); + QString errorString(); + + /** Processes the start of the document. */ + bool startDocument(); + + /** Processes the start tag of an element. */ + bool startElement (const QString &, const QString &, const QString &name, + const QXmlAttributes &attributes); + + /** Processes a chunk of normal character data. */ + bool characters (const QString &ch); + + /** Processes whitespace. */ + bool ignorableWhitespace (const QString &ch); + + /** Processes the end tag of an element. */ + bool endElement (const QString &, const QString &, const QString &name); + + /** Processes the end of the document. */ + bool endDocument(); + + /** returns a list of phrase book entries */ + PhraseBookEntryList getPhraseList(); + +private: + bool isInPhrase; + bool starting; + int offset; + Phrase phrase; + + PhraseBookEntryList list; + int level; +}; + +#endif |