class AffixMgr {
PfxEntry* pStart[SETSIZE];
SfxEntry* sStart[SETSIZE];
PfxEntry* pFlag[SETSIZE];
SfxEntry* sFlag[SETSIZE]; const std::vector<std::unique_ptr<HashMgr>>& alldic; const HashMgr* pHMgr;
std::string keystring;
std::string trystring;
std::string encoding; conststruct cs_info* csconv; int utf8; int complexprefixes;
FLAG compoundflag;
FLAG compoundbegin;
FLAG compoundmiddle;
FLAG compoundend;
FLAG compoundroot;
FLAG compoundforbidflag;
FLAG compoundpermitflag; int compoundmoresuffixes; int checkcompounddup; int checkcompoundrep; int checkcompoundcase; int checkcompoundtriple; int simplifiedtriple;
FLAG forbiddenword;
FLAG nosuggest;
FLAG nongramsuggest;
FLAG needaffix; int cpdmin;
RepList* iconvtable;
RepList* oconvtable; bool parsedmaptable;
std::vector<mapentry> maptable; bool parsedbreaktable;
std::vector<std::string> breaktable; bool parsedcheckcpd;
std::vector<patentry> checkcpdtable; int simplifiedcpd; bool parseddefcpd;
std::vector<flagentry> defcpdtable;
phonetable* phone; int maxngramsugs; int maxcpdsugs; int maxdiff; int onlymaxdiff; int nosplitsugs; int sugswithdots; int cpdwordmax; int cpdmaxsyllable;
std::string cpdvowels; // vowels (for calculating of Hungarian compounding limit,
std::vector<w_char> cpdvowels_utf16; //vowels for UTF-8 encoding
std::string cpdsyllablenum; // syllable count incrementing flag constchar* pfxappnd; // BUG: not stateless constchar* sfxappnd; // BUG: not stateless int sfxextra; // BUG: not stateless
FLAG sfxflag; // BUG: not stateless char* derived; // BUG: not stateless
SfxEntry* sfx; // BUG: not stateless
PfxEntry* pfx; // BUG: not stateless int checknum;
std::string wordchars; // letters + spec. word characters
std::vector<w_char> wordchars_utf16;
std::string ignorechars; // letters + spec. word characters
std::vector<w_char> ignorechars_utf16;
std::string version; // affix and dictionary file version string
std::string lang; // language int langnum;
FLAG lemma_present;
FLAG circumfix;
FLAG onlyincompound;
FLAG keepcase;
FLAG forceucase;
FLAG warn; int forbidwarn;
FLAG substandard; int checksharps; int fullstrip;
int havecontclass; // boolean variable char contclasses[CONTSIZE]; // flags of possible continuing classes (twofold // affix)
public:
AffixMgr(constchar* affpath, const std::vector<std::unique_ptr<HashMgr>>& ptr, constchar* key = nullptr);
~AffixMgr(); struct hentry* affix_check(const std::string& word, int start, int len, constunsignedshort needflag = (unsignedshort)0, char in_compound = IN_CPD_NOT); struct hentry* prefix_check(const std::string& word, int start, int len, char in_compound, const FLAG needflag = FLAG_NULL); inlineint isSubset(constchar* s1, constchar* s2); struct hentry* prefix_check_twosfx(const std::string& word, int start, int len, char in_compound, const FLAG needflag = FLAG_NULL); inlineint isRevSubset(constchar* s1, constchar* end_of_s2, int len); struct hentry* suffix_check(const std::string& word, int start, int len, int sfxopts,
PfxEntry* ppfx, const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, char in_compound = IN_CPD_NOT); struct hentry* suffix_check_twosfx(const std::string& word, int start, int len, int sfxopts,
PfxEntry* ppfx, const FLAG needflag = FLAG_NULL);
std::string affix_check_morph(const std::string& word, int start, int len, const FLAG needflag = FLAG_NULL, char in_compound = IN_CPD_NOT);
std::string prefix_check_morph(const std::string& word, int start, int len, char in_compound, const FLAG needflag = FLAG_NULL);
std::string suffix_check_morph(const std::string& word, int start, int len, int sfxopts,
PfxEntry* ppfx, const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, char in_compound = IN_CPD_NOT);
std::string prefix_check_twosfx_morph(const std::string& word, int start, int len, char in_compound, const FLAG needflag = FLAG_NULL);
std::string suffix_check_twosfx_morph(const std::string& word, int start, int len, int sfxopts,
PfxEntry* ppfx, const FLAG needflag = FLAG_NULL);
std::string morphgen(constchar* ts, int wl, constunsignedshort* ap, unsignedshort al, constchar* morph, constchar* targetmorph, int level);
int expand_rootword(struct guessword* wlst, int maxn, constchar* ts, int wl, constunsignedshort* ap, unsignedshort al, constchar* bad, int, constchar*);
short get_syllable(const std::string& word); int cpdrep_check(const std::string& word, int len); int cpdwordpair_check(const std::string& word, int len); int cpdpat_check(const std::string& word,
size_t len,
hentry* r1,
hentry* r2, constchar affixed); int defcpd_check(hentry*** words, short wnum, short maxwordnum,
hentry* rv,
hentry** rwords, char all); int cpdcase_check(const std::string& word, int len); inlineint candidate_check(const std::string& word); void setcminmax(size_t* cmin, size_t* cmax, constchar* word, size_t len); struct hentry* compound_check(const std::string& word, short wordnum, short numsyllable, short maxwordnum, short wnum,
hentry** words,
hentry** rwords, char hu_mov_rule, char is_sug, int* info);
int compound_check_morph(const std::string& word, short wordnum, short numsyllable, short maxwordnum, short wnum,
hentry** words,
hentry** rwords, char hu_mov_rule,
std::string& result, const std::string* partresult);
std::vector<std::string> get_suffix_words(shortunsigned* suff, int len, const std::string& root_word);
struct hentry* lookup(constchar* word, size_t len); const std::vector<replentry>& get_reptable() const;
RepList* get_iconvtable() const;
RepList* get_oconvtable() const; struct phonetable* get_phonetable() const; const std::vector<mapentry>& get_maptable() const; const std::vector<std::string>& get_breaktable() const; const std::string& get_encoding(); int get_langnum() const; const std::string& get_key_string(); const std::string& get_try_string() const; const std::string& get_wordchars() const; const std::vector<w_char>& get_wordchars_utf16() const; constchar* get_ignore() const; const std::vector<w_char>& get_ignore_utf16() const; int get_compound() const;
FLAG get_compoundflag() const;
FLAG get_forbiddenword() const;
FLAG get_nosuggest() const;
FLAG get_nongramsuggest() const;
FLAG get_substandard() const;
FLAG get_needaffix() const;
FLAG get_onlyincompound() const; constchar* get_derived() const; const std::string& get_version() const; int have_contclass() const; int get_utf8() const; int get_complexprefixes() const; char* get_suffixed(char) const; int get_maxngramsugs() const; int get_maxcpdsugs() const; int get_maxdiff() const; int get_onlymaxdiff() const; int get_nosplitsugs() const; int get_sugswithdots() const;
FLAG get_keepcase() const;
FLAG get_forceucase() const;
FLAG get_warn() const; int get_forbidwarn() const; int get_checksharps() const;
std::string encode_flag(unsignedshort aflag) const; int get_fullstrip() const;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.