00001 #ifndef MorphologyHolder_H 00002 #define MorphologyHolder_H 00003 00004 #include "utilit.h" 00005 #include "../LemmatizerLib/PLMLineCollection.h" 00006 #include "../GraphanLib/GraphmatFile.h" 00007 #include "../AgramtabLib/RusGramTab.h" 00008 #include "../AgramtabLib/GerGramTab.h" 00009 #include "../AgramtabLib/EngGramTab.h" 00010 00011 class CMorphologyHolder 00012 { 00013 public: 00014 bool m_bTimeStatis; 00015 MorphLanguageEnum m_CurrentLanguage; 00016 CPlmLineCollection m_PlmLines; 00017 CAgramtab* m_pGramTab; 00018 CLemmatizer* m_pLemmatizer; 00019 CGraphmatFile m_Graphan; 00020 00021 CMorphologyHolder(); 00022 ~CMorphologyHolder(); 00023 00024 bool GetMorphology(string str, bool bFile, int& CountOfWords); 00025 bool LoadGraphanAndLemmatizer(MorphLanguageEnum langua); 00026 void DeleteProcessors(); 00027 DwordVector GetParadigmIdsByNormAndAncode(std::string &str, const std::string &code) const; 00028 void string_to_ids(const char *str, DwordVector &ids, bool bNorm) const; 00029 std::string id_to_string(long id) const; 00030 CFormInfo id_to_paradigm(long id) const; 00031 }; 00032 00033 00034 00035 #endif