CMiniLexicon::FindMajorSignatures(): use log file routines
[linguistica.git] / SuffixCollection.h
blob23a77a1fbfd91caf50d054977db6d53a0b3afde7
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;
15 class QString;
16 namespace linguistica { namespace ui { class status_user_agent; } }
18 class CSuffixCollection : public TCollection<class CSuffix> {
19 double m_DLofPointersToMyMembers;
20 public:
21 CSuffixCollection();
22 explicit CSuffixCollection(class CMiniLexicon* lex);
23 ~CSuffixCollection();
25 // output to GUI.
26 void ListDisplay(class Q3ListView* widget,
27 QMap<QString, QString>* filter,
28 linguistica::ui::status_user_agent& status_display,
29 bool deletees = true);
31 // long-term storage.
32 void OutputSuffixes(QString filename);
33 void ReadSuffixFile(QString filename);
35 void SortByIndex();
36 int GetTotalUseCount();
37 void CalculateTotalUseCount();
39 // insert.
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);
49 // clear.
50 void Empty();
51 void RemoveAll();
53 // remove.
54 bool Remove(CSuffix* suffix); ///< doesn't delete suffix
55 bool RemoveMember(CSuffix* suffix); ///< deletes suffix
56 /// deletes CSuffix*
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