summary refs log tree commit diff stats
path: root/lib/adjective_query.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/adjective_query.h')
-rw-r--r--lib/adjective_query.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/lib/adjective_query.h b/lib/adjective_query.h new file mode 100644 index 0000000..e7755cb --- /dev/null +++ b/lib/adjective_query.h
@@ -0,0 +1,91 @@
1#ifndef ADJECTIVE_QUERY_H_05E590FD
2#define ADJECTIVE_QUERY_H_05E590FD
3
4namespace verbly {
5
6 class adjective_query {
7 public:
8 adjective_query(const data& _data);
9
10 adjective_query& limit(int _limit);
11 adjective_query& random();
12 adjective_query& except(const adjective& _word);
13 adjective_query& rhymes_with(const word& _word);
14 adjective_query& has_pronunciation();
15
16 adjective_query& requires_comparative_form();
17 adjective_query& requires_superlative_form();
18 adjective_query& position(adjective::positioning pos);
19
20 adjective_query& is_variant();
21 adjective_query& variant_of(filter<noun> _f);
22
23 adjective_query& has_antonyms();
24 adjective_query& antonym_of(filter<adjective> _f);
25
26 adjective_query& has_synonyms();
27 adjective_query& synonym_of(filter<adjective> _f);
28
29 adjective_query& is_generalization();
30 adjective_query& generalization_of(filter<adjective> _f);
31
32 adjective_query& is_specification();
33 adjective_query& specification_of(filter<adjective> _f);
34
35 adjective_query& is_pertainymic();
36 adjective_query& pertainym_of(filter<noun> _f);
37
38 adjective_query& is_mannernymic();
39 adjective_query& anti_mannernym_of(filter<adverb> _f);
40
41/* adjective_query& derived_from(const word& _w);
42 adjective_query& not_derived_from(const word& _w);*/
43
44 std::list<adjective> run() const;
45
46 const static int unlimited = -1;
47
48 protected:
49 const data& _data;
50 int _limit = unlimited;
51 bool _random = false;
52 std::list<std::string> _rhymes;
53 std::list<adjective> _except;
54 bool _has_prn = false;
55
56 bool _requires_comparative_form = false;
57 bool _requires_superlative_form = false;
58 adjective::positioning _position = adjective::positioning::undefined;
59
60 bool _is_variant = false;
61 filter<noun> _variant_of;
62
63 bool _is_antonymic = false;
64 filter<adjective> _antonym_of;
65
66 bool _is_synonymic = false;
67 filter<adjective> _synonym_of;
68
69 bool _is_generalization = false;
70 filter<adjective> _generalization_of;
71
72 bool _is_specification = false;
73 filter<adjective> _specification_of;
74
75 bool _is_pertainymic = false;
76 filter<noun> _pertainym_of;
77
78 bool _is_mannernymic = false;
79 filter<adverb> _anti_mannernym_of;
80
81/* std::list<adjective> _derived_from_adjective;
82 std::list<adjective> _not_derived_from_adjective;
83 std::list<adverb> _derived_from_adverb;
84 std::list<adverb> _not_derived_from_adverb;
85 std::list<noun> _derived_from_noun;
86 std::list<noun> _not_derived_from_noun;*/
87 };
88
89};
90
91#endif /* end of include guard: ADJECTIVE_QUERY_H_05E590FD */