chinese-journal/rudict/rudict/grammarCase.h

59 lines
1016 B
C++

#ifndef GRAMMAR_CASE_H_INCLUDED
#define GRAMMAR_CASE_H_INCLUDED
#include <set>
#include <string>
enum NounGender
{
NG_MALE = 0,
NG_FEMALE,
NG_NEUTRAL
};
enum NounGrammaticalCase
{
NGC_P1_NOMINATIVE = 0,
NGC_P2_GENITIVE,
NGC_P3_DATIVE,
NGC_P4_ACCUSATIVE,
NGC_P5_INSTRUMENTAL,
NGC_P6_PREPOSITIONAL,
NGC_SIZE
};
enum NounCount
{
NC_SINGULAR = 0,
NC_PLURAL,
NC_SIZE
};
struct GrammaticalTableRecord
{
NounCount count;
NounGrammaticalCase grammaticalCase;
std::set<std::wstring> ending;
};
std::wstring NounCountToWString(NounCount nounCount);
NounCount WStringToNounCount(std::wstring str);
std::wstring NounGrammaticalCaseToWString(NounGrammaticalCase nounGrammaticalCase);
NounGrammaticalCase WStringToNounGrammaticalCase(std::wstring str);
bool charIsConsolant(wchar_t c); //except й
bool charIsVowel(wchar_t c);
bool charIsIFormConsolant(wchar_t c);
bool charIsUFormConsolant(wchar_t c);
#endif //GRAMMAR_CASE_H_INCLUDED