summary refs log tree commit diff stats
path: root/lib/preposition.h
blob: 89f24fac6c66c68611f65dd5a561cb74f0b313af (plain) (blame)
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
#ifndef PREPOSITION_H_FF908021
#define PREPOSITION_H_FF908021

namespace verbly {
  
  class preposition_query;
  
  class preposition {
    public:
      std::string get_form() const;
      
    private:
      friend class preposition_query;
      
      std::string form;
  };
  
  class preposition_query {
    public:
      preposition_query(const data& _data);
      
      preposition_query& limit(int _limit);
      preposition_query& random();
      preposition_query& in_group(std::string _arg);
      
      std::list<preposition> run() const;
    
      const static int unlimited = -1;
    private:
      const data& _data;
      int _limit = unlimited;
      bool _random = false;
      std::list<std::string> _in_group;
  };
  
};

#endif /* end of include guard: PREPOSITION_H_FF908021 */