00001 #ifndef ancode_pattern_h 00002 #define ancode_pattern_h 00003 00004 class CAgramtab; 00005 class CSyntaxOpt; 00006 #include "utilit.h" 00007 00008 class CAncodePattern 00009 { 00010 const CAgramtab* m_pGramTab; 00011 void ResetFlags(); 00012 00013 public: 00014 QWORD m_TypeGrammems; 00015 QWORD m_iGrammems; 00016 char m_LemSign; 00017 string m_CommonGramCode; 00018 string m_GramCodes; 00019 size_t m_iPoses; 00020 bool m_bUnkGramcodes; 00021 00022 // all single preposition interpretations 00023 vector<int> m_SimplePrepNos; 00024 00025 CAncodePattern(const CAgramtab* pGramTab); 00026 const CAgramtab* GetGramTab() const; 00027 void CopyAncodePattern(const CAncodePattern& X); 00028 bool HasGrammem(BYTE gram) const; 00029 bool HasPos(BYTE pos) const; 00030 string GetGrammemsByAncodes() const; 00031 bool ModifyGrammems(QWORD Grammems, size_t Poses=0xffffffff); 00032 bool InitAncodePattern(); 00033 void SetMorphUnknown(); 00034 bool DeleteAncodesByGrammemIfCan(BYTE Grammem); 00035 string GetPartOfSpeechStr() const; 00036 00037 }; 00038 00039 00040 #endif