1 // Suffix list for suffix/signature-based morphology discovery and display
2 // Copyright © 2009 The University of Chicago
3 #ifndef SUFFIXCOLLECTION_H
4 #define SUFFIXCOLLECTION_H
6 class CSuffixCollection
;
8 // See the CMiniLexicon class in MiniLexicon.h for an overview of
9 // suffix/signature-based discovery of morphology.
10 // See also the very similar CPrefixCollection class.
12 #include "CollectionTemplate.h"
13 #include "generaldefinitions.h"
14 template<class K
, class V
> class QMap
;
16 namespace linguistica
{ namespace ui
{ class status_user_agent
; } }
18 class CSuffixCollection
: public TCollection
<class CSuffix
> {
19 double m_DLofPointersToMyMembers
;
22 explicit CSuffixCollection(class CMiniLexicon
* lex
);
26 void ListDisplay(class Q3ListView
* widget
,
27 QMap
<QString
, QString
>* filter
,
28 linguistica::ui::status_user_agent
& status_display
,
29 bool deletees
= true);
32 void OutputSuffixes(QString filename
);
33 void ReadSuffixFile(QString filename
);
36 int GetTotalUseCount();
37 void CalculateTotalUseCount();
40 // XXX. PrefixCollection passes string surrogates by value
41 CSuffix
* operator<<(class CStringSurrogate
& suffix_name
);
42 CSuffix
* operator<<(class CParse
* suffix_name
); ///< deprecated
43 CSuffix
* operator<<(class CParse
& suffix_name
);
44 CSuffix
* operator<<(QString suffix_name
);
45 void AddPointer(CSuffix
* suffix
);
46 CSuffix
* AddToCollection(class CParse
& suffix_name
);
47 CSuffix
* AddToCollection(class CStringSurrogate
& suffix_name
);
54 bool Remove(CSuffix
* suffix
); ///< doesn't delete suffix
55 bool RemoveMember(CSuffix
* suffix
); ///< deletes suffix
57 bool RemoveMember(class CStringSurrogate
& suffix_name
);
58 bool RemoveMember(class CStringSurrogate
& suffix_name
, bool delete_it
);
59 void DeleteMarkedMembers();
61 // look for suffix combinations.
62 void FindCombinations(class CSignatureCollection
* Signatures
,
63 class CMiniLexicon
* lex
);
64 void FindFactorableSuffixes();
66 // description length.
67 double GetDL_PhonologicalContent();
68 double CalculatePointersToMySuffixes(enum eMDL_STYLE style
);
71 #endif // SUFFIXCOLLECTION_H