-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrus_gramtab.hh
114 lines (109 loc) · 3.52 KB
/
rus_gramtab.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// Copyright (C) 2011 Petr Machata
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public
// License along with this program. If not, see
// <http://www.gnu.org/licenses/>.
#ifndef RUS_GRAMTAB_HH
#define RUS_GRAMTAB_HH
enum pos_code_t
{
pos__invalid = -1,
pos_noun = 0,
pos_adjective = 1,
pos_verb = 2,
pos_pronoun = 3,
pos_pronominal_adjective = 4,
pos_negative_pronoun = 5,
pos_number = 6, //"ЧИСЛ"
pos_ordinal_number = 7, //"ЧИСЛ-П"
pos_adverb = 8, //"Н", // 8
pos_predicative = 9,
pos_preposition = 10,
pos_11 = 11, //"ПОСЛ" = post-position?
pos_conjunction = 12,
pos_interjection = 13,
pos_transition_word = 14,
pos_15 = 15, //"ФРАЗ"
pos_particle = 16,
pos_short_adjective = 17,
pos_adj_participle = 18, //"ПРИЧАСТИЕ"
pos_adv_participle = 19, //"ДЕЕПРИЧАСТИЕ"
pos_short_participle = 20,
pos_infinitive = 21,
};
enum gram_code_t
{
gm__invalid = -1,
gm_plural = 0,
gm_singular = 1,
gm_nominative = 2,
gm_genitive = 3,
gm_dative = 4,
gm_accusative = 5,
gm_instrumental = 6,
gm_prepositional = 7,
gm_vocative = 8,
gm_masculine = 9,
gm_feminine = 10,
gm_neuter = 11,
gm_masc_femin = 12,
gm_present = 13,
gm_future = 14,
gm_past = 15,
gm_1st_person = 16,
gm_2nd_person = 17,
gm_3rd_person = 18,
gm_imperative = 19,
gm_animate = 20,
gm_inanimate = 21,
gm_comparative = 22,
gm_perfective = 23,
gm_imperfective = 24,
gm_25 = 25, //"нп"
gm_26 = 26, //"пе"
gm_active = 27,
gm_passive = 28,
gm_indeclinable = 29,
gm_abbr = 30, //"аббр"
gm_patronymic = 31, //"отч" ???
gm_32 = 32, //"лок"
gm_33 = 33, //"орг"
gm_34 = 34, //"кач"
gm_35 = 35, //"дфст"
gm_36 = 36, // (наречия) "вопр"
gm_37 = 37, // (наречия) "указат"
gm_first_name = 38,
gm_surname = 39,
gm_impersonal = 40, //"безл" ???
gm_jargon = 41, //"жарг"
gm_42 = 42, //"опч"
gm_colloquial = 43, //"разг"
gm_44 = 44, //"притяж"
gm_45 = 45, //"арх"
gm_secondary = 46, // для второго родительного и второго предложного
gm_poetic = 47,
gm_prof = 48,
gm_superlative = 49, //"прев"
gm_positive = 50, //"полож"
};
// If CODE has information about number, store it in ret and return
// true. If not, leave it intact and return false.
bool extract_rus_number (gram_code_t &ret, gram_code_t code);
bool extract_rus_case (gram_code_t &ret, gram_code_t code);
bool extract_rus_gender (gram_code_t &ret, gram_code_t code);
bool extract_rus_adj_degree (gram_code_t &ret, gram_code_t code);
bool extract_rus_voice (gram_code_t &ret, gram_code_t code);
bool extract_rus_animacy (gram_code_t &ret, gram_code_t code);
bool extract_rus_tense (gram_code_t &ret, gram_code_t code);
bool extract_rus_person (gram_code_t &ret, gram_code_t code);
#endif//RUS_GRAMTAB_HH