-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQuery.h
More file actions
34 lines (27 loc) · 701 Bytes
/
Query.h
File metadata and controls
34 lines (27 loc) · 701 Bytes
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
#ifndef QUERY_H_
#define QUERY_H_
#include <memory>
#include <string>
#include "QueryResult.h"
#include "Query_base.h"
using std::shared_ptr;
using std::string;
class Query_base;
class QueryResult;
class QueryText;
class Query {
public:
Query(const string & s);
friend class Query_base;
friend Query operator~(const Query & q);
friend Query operator&(const Query & l, const Query & r);
friend Query operator|(const Query & l, const Query & r);
QueryResult eval(QueryText & txt) {return pbase->eval(txt);}
//void display() {pbase->display();}
private:
Query(shared_ptr<Query_base> p) : pbase(p) {}
string word;
shared_ptr<Query_base> pbase;
QueryResult result;
};
#endif