a/src/query/wasaparserdriver.h b/src/query/wasaparserdriver.h
...
...
17
#ifndef _WASAPARSERDRIVER_H_INCLUDED_
17
#ifndef _WASAPARSERDRIVER_H_INCLUDED_
18
#define _WASAPARSERDRIVER_H_INCLUDED_
18
#define _WASAPARSERDRIVER_H_INCLUDED_
19
19
20
#include <string>
20
#include <string>
21
#include <stack>
21
#include <stack>
22
#include <vector>
23
24
#include "smallut.h"
22
25
23
class WasaParserDriver;
26
class WasaParserDriver;
24
namespace Rcl {
27
namespace Rcl {
25
    class SearchData;
28
    class SearchData;
26
    class SearchDataClauseSimple;
29
    class SearchDataClauseSimple;
...
...
33
36
34
class WasaParserDriver {
37
class WasaParserDriver {
35
public:
38
public:
36
    
39
    
37
    WasaParserDriver(const RclConfig *c, const std::string sl, 
40
    WasaParserDriver(const RclConfig *c, const std::string sl, 
38
                     const std::string& as)
41
                     const std::string& as);
39
        : m_stemlang(sl), m_autosuffs(as), m_config(c),
42
    ~WasaParserDriver();
40
          m_index(0), m_result(0) {}
43
    
41
42
    Rcl::SearchData *parse(const std::string&);
44
    Rcl::SearchData *parse(const std::string&);
43
    bool addClause(Rcl::SearchData *sd, Rcl::SearchDataClauseSimple* cl);
45
    bool addClause(Rcl::SearchData *sd, Rcl::SearchDataClauseSimple* cl);
44
46
45
    int GETCHAR();
47
    int GETCHAR();
46
    void UNGETCHAR(int c);
48
    void UNGETCHAR(int c);
...
...
60
62
61
    std::string m_stemlang;
63
    std::string m_stemlang;
62
    std::string m_autosuffs;
64
    std::string m_autosuffs;
63
    const RclConfig  *m_config;
65
    const RclConfig  *m_config;
64
66
67
    // input string.
65
    std::string m_input;
68
    std::string m_input;
69
    // Current position in m_input
66
    unsigned int m_index;
70
    unsigned int m_index;
71
    // Characters pushed-back, ready for next getchar.
67
    std::stack<int> m_returns;
72
    std::stack<int> m_returns;
73
    // Result, set by parser.
68
    Rcl::SearchData *m_result;
74
    Rcl::SearchData *m_result;
75
76
    // Storage for top level filters
77
    std::vector<std::string>  m_filetypes; 
78
    std::vector<std::string>  m_nfiletypes;
79
    bool                      m_haveDates;
80
    DateInterval              m_dates; // Restrict to date interval
81
    size_t                    m_maxSize;
82
    size_t                    m_minSize;
69
83
70
    std::string m_reason;
84
    std::string m_reason;
71
85
72
    // Let the quoted string reader store qualifiers in there, simpler
86
    // Let the quoted string reader store qualifiers in there, simpler
73
    // than handling this in the parser, because their nature is
87
    // than handling this in the parser, because their nature is