|
|
|
/***************************************************************************
|
|
|
|
read a KEduVocDocument from a KVTML file
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
copyright : (C) 1999-2001 Ewald Arnold
|
|
|
|
(C) 2001 The KDE-EDU team
|
|
|
|
(C) 2005 Eric Pignet
|
|
|
|
email : eric at erixpage.com
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
* *
|
|
|
|
* 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 KEDUVOCKVTMLREADER_H
|
|
|
|
#define KEDUVOCKVTMLREADER_H
|
|
|
|
|
|
|
|
#include <tqfile.h>
|
|
|
|
#include <tqdom.h>
|
|
|
|
|
|
|
|
#include "keduvocdocument.h"
|
|
|
|
#include "grammarmanager.h"
|
|
|
|
#include "multiplechoice.h"
|
|
|
|
|
|
|
|
class KEduVocDocument;
|
|
|
|
|
|
|
|
// internal types, indented are subtypes
|
|
|
|
|
|
|
|
#define TQM_VERB "v" // go
|
|
|
|
#define TQM_VERB_IRR "ir"
|
|
|
|
#define TQM_VERB_REG "re"
|
|
|
|
#define TQM_NOUN "n" // table, coffee
|
|
|
|
#define TQM_NOUN_F "f"
|
|
|
|
#define TQM_NOUN_M "m"
|
|
|
|
#define TQM_NOUN_S "s"
|
|
|
|
#define TQM_NAME "nm"
|
|
|
|
#define TQM_ART "ar" // article
|
|
|
|
#define TQM_ART_DEF "def" // definite a/an
|
|
|
|
#define TQM_ART_IND "ind" // indefinite the
|
|
|
|
#define TQM_ADJ "aj" // adjective expensive, good
|
|
|
|
#define TQM_ADV "av" // adverb today, strongly
|
|
|
|
#define TQM_PRON "pr" // pronoun you, she
|
|
|
|
#define TQM_PRON_POS "pos" // possessive my, your
|
|
|
|
#define TQM_PRON_PER "per" // personal
|
|
|
|
#define TQM_PHRASE "ph"
|
|
|
|
#define TQM_NUM "num" // numeral
|
|
|
|
#define TQM_NUM_ORD "ord" // ordinal first, second
|
|
|
|
#define TQM_NUM_CARD "crd" // cardinal one, two
|
|
|
|
#define TQM_INFORMAL "ifm"
|
|
|
|
#define TQM_FIG "fig"
|
|
|
|
#define TQM_CON "con" // conjuncton and, but
|
|
|
|
#define TQM_PREP "pre" // preposition behind, between
|
|
|
|
#define TQM_QUEST "qu" // question who, what
|
|
|
|
|
|
|
|
// type delimiters
|
|
|
|
|
|
|
|
#define TQM_USER_TYPE "#" // designates number of user type
|
|
|
|
#define TQM_TYPE_DIV ":" // divide main from subtype
|
|
|
|
|
|
|
|
// usage delimiters (also declared in UsageManager.h)
|
|
|
|
|
|
|
|
#define UL_USER_USAGE "#" // designates number of user type
|
|
|
|
|
|
|
|
/**
|
|
|
|
@author Eric Pignet
|
|
|
|
*/
|
|
|
|
class KEduVocKvtmlReader : public TQObject
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
KEduVocKvtmlReader(TQFile *file);
|
|
|
|
~KEduVocKvtmlReader();
|
|
|
|
|
|
|
|
bool readDoc(KEduVocDocument *doc);
|
|
|
|
|
|
|
|
bool readLesson(TQDomElement &domElementParent);
|
|
|
|
bool readArticle(TQDomElement &domElementParent);
|
|
|
|
bool readConjug(TQDomElement &domElementParent,
|
|
|
|
vector<Conjugation> &curr_conjug,
|
|
|
|
const TQString &entry_tag);
|
|
|
|
bool readOptions(TQDomElement &domElementParent);
|
|
|
|
bool readType(TQDomElement &domElementParent);
|
|
|
|
bool readTense(TQDomElement &domElementParent);
|
|
|
|
bool readUsage(TQDomElement &domElementParent);
|
|
|
|
bool readComparison(TQDomElement &domElementParent,
|
|
|
|
Comparison &comp);
|
|
|
|
bool readMultipleChoice(TQDomElement &domElementParent,
|
|
|
|
MultipleChoice &mc);
|
|
|
|
bool readExpressionChildAttributes( TQDomElement &domElementExpressionChild,
|
|
|
|
TQString &lang,
|
|
|
|
grade_t &grade, grade_t &rev_grade,
|
|
|
|
int &count, int &rev_count,
|
|
|
|
time_t &date, time_t &rev_date,
|
|
|
|
TQString &remark,
|
|
|
|
int &bcount, int &rev_bcount,
|
|
|
|
TQString &query_id,
|
|
|
|
TQString &pronunce,
|
|
|
|
int &width,
|
|
|
|
TQString &type,
|
|
|
|
TQString &faux_ami_f,
|
|
|
|
TQString &faux_ami_t,
|
|
|
|
TQString &synonym,
|
|
|
|
TQString &example,
|
|
|
|
TQString &antonym,
|
|
|
|
TQString &usage,
|
|
|
|
TQString ¶phrase);
|
|
|
|
bool readExpression(TQDomElement &domElementParent);
|
|
|
|
bool readBody(TQDomElement &domElementParent);
|
|
|
|
|
|
|
|
void domErrorUnknownElement(const TQString &elem);
|
|
|
|
void domError(const TQString &text );
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQFile *m_inputFile;
|
|
|
|
KEduVocDocument *m_doc;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|