summaryrefslogtreecommitdiffstats
path: root/juniper
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-04-03 22:46:03 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-04-04 16:36:18 +0200
commit37cfa9ab6b103ae733a783cde18c8384e0ace507 (patch)
tree99b4ec1964a7a392b4aec133c4b20a4a40ab0002 /juniper
parent5a48a81c4134bae524aa66e1e49624f678c8b6ce (diff)
Override
Diffstat (limited to 'juniper')
-rw-r--r--juniper/src/vespa/juniper/Matcher.h4
-rw-r--r--juniper/src/vespa/juniper/keyocc.h20
-rw-r--r--juniper/src/vespa/juniper/matchobject.cpp24
-rw-r--r--juniper/src/vespa/juniper/mcand.h43
-rw-r--r--juniper/src/vespa/juniper/propreader.h4
-rw-r--r--juniper/src/vespa/juniper/querynode.h47
-rw-r--r--juniper/src/vespa/juniper/queryparser.h12
-rw-r--r--juniper/src/vespa/juniper/queryvisitor.h29
-rw-r--r--juniper/src/vespa/juniper/result.cpp7
-rw-r--r--juniper/src/vespa/juniper/specialtokenregistry.cpp6
10 files changed, 89 insertions, 107 deletions
diff --git a/juniper/src/vespa/juniper/Matcher.h b/juniper/src/vespa/juniper/Matcher.h
index dbfa99fb7a4..233e1beeb3d 100644
--- a/juniper/src/vespa/juniper/Matcher.h
+++ b/juniper/src/vespa/juniper/Matcher.h
@@ -68,8 +68,8 @@ public:
void set_log(unsigned long log_mask);
/** Token handlers to be called by tokenization step */
- virtual void handle_token(Token& token);
- virtual void handle_end(Token& token);
+ void handle_token(Token& token) override;
+ void handle_end(Token& token) override;
/** Utilities for dump to standard output */
void dump_matches(int printcount = 10, bool best = false);
diff --git a/juniper/src/vespa/juniper/keyocc.h b/juniper/src/vespa/juniper/keyocc.h
index aa8e9cf3e17..4e63f3f249a 100644
--- a/juniper/src/vespa/juniper/keyocc.h
+++ b/juniper/src/vespa/juniper/keyocc.h
@@ -2,26 +2,24 @@
#pragma once
#include "multiset.h"
-#include <vector>
#include "matchelem.h"
#include "querynode.h"
typedef key_occ* key_occ_ptr;
typedef std::vector<key_occ_ptr> key_occ_vector;
-
class key_occ : public MatchElement
{
public:
- virtual void set_valid();
- virtual void add_to_keylist(keylist& kl);
- virtual void dump(std::string& s);
- virtual size_t length() const { return tokenlen; }
- inline const char* term() { return _term; }
- inline size_t word_length() const { return 1; }
- inline bool complete() { return true; }
- virtual inline off_t endpos() const { return _startpos + tokenlen; }
- virtual inline off_t endtoken() const { return _starttoken + 1; }
+ void set_valid() override;
+ void add_to_keylist(keylist& kl) override;
+ void dump(std::string& s) override;
+ size_t length() const override { return tokenlen; }
+ const char* term() { return _term; }
+ size_t word_length() const override { return 1; }
+ bool complete() override { return true; }
+ off_t endpos() const override { return _startpos + tokenlen; }
+ off_t endtoken() const override { return _starttoken + 1; }
int tokenlen;
key_occ(const char* term, off_t posi, off_t tpos, int len);
diff --git a/juniper/src/vespa/juniper/matchobject.cpp b/juniper/src/vespa/juniper/matchobject.cpp
index dee70362545..86e7bd01bb0 100644
--- a/juniper/src/vespa/juniper/matchobject.cpp
+++ b/juniper/src/vespa/juniper/matchobject.cpp
@@ -4,11 +4,8 @@
#include "matchobject.h"
#include "juniperdebug.h"
#include "result.h"
-#include "querynode.h"
#include "charutil.h"
#include <vespa/fastlib/util/wildcard_match.h>
-#include "querymodifier.h"
-#include "queryhandle.h"
#include <stack>
#include <vespa/log/log.h>
LOG_SETUP(".juniper.matchobject");
@@ -18,19 +15,18 @@ class traverser : public IQueryExprVisitor
public:
traverser(MatchObject& mo) : _mo(mo) {}
- virtual void VisitQueryNode(QueryNode*)
- {
+ void VisitQueryNode(QueryNode*) override {
// We must not add this node to nonterminals before all children has been added!
// Matcher::flush_candidates() depend on this order to avoid having to loop
// until no more candidates...
}
- virtual void RevisitQueryNode(QueryNode* n)
+ void RevisitQueryNode(QueryNode* n) override
{
_mo.add_nonterm(n);
}
- virtual void VisitQueryTerm(QueryTerm* t)
+ void VisitQueryTerm(QueryTerm* t) override
{
if (t->rewriter && t->rewriter->ForDocument())
_mo.add_reduction_term(t, t->rewriter);
@@ -48,7 +44,7 @@ public:
query_expander(MatchObject& mo, uint32_t langid)
: _caller(), _mo(mo), _langid(langid) {}
- virtual void VisitQueryTerm(QueryTerm* orig)
+ void VisitQueryTerm(QueryTerm* orig) override
{
const char* nt = NULL;
size_t length;
@@ -114,8 +110,7 @@ public:
// Visit on descent:
- void VisitQueryNode(QueryNode* n)
- {
+ void VisitQueryNode(QueryNode* n) override {
QueryNode* qn = new QueryNode(n);
update(qn);
_caller.push(qn);
@@ -123,15 +118,13 @@ public:
// revisit on return:
- void RevisitQueryNode(QueryNode* n)
- {
+ void RevisitQueryNode(QueryNode* n) override {
QueryNode* qn = _caller.top();
if (n->_parent) _caller.pop();
_mo.add_nonterm(qn);
}
- QueryExpr* NewQuery()
- {
+ QueryExpr* NewQuery() {
if (_caller.empty()) return NULL;
return _caller.top();
}
@@ -147,9 +140,6 @@ private:
uint32_t _langid;
}; // class query_expander
-
-
-
MatchObject::MatchObject(QueryExpr* query, bool has_reductions) :
_query(query),
_qt(),
diff --git a/juniper/src/vespa/juniper/mcand.h b/juniper/src/vespa/juniper/mcand.h
index 84967391b01..60fb5de542a 100644
--- a/juniper/src/vespa/juniper/mcand.h
+++ b/juniper/src/vespa/juniper/mcand.h
@@ -4,7 +4,6 @@
#pragma once
#include "keyocc.h"
-#include <string>
#include "querynode.h"
class Matcher;
@@ -54,33 +53,33 @@ public:
keylist _klist;
MatchCandidate(QueryExpr* query, MatchElement** elms, off_t ctxt_start);
- virtual ~MatchCandidate();
+ ~MatchCandidate();
void ref() { ++_refcnt; }
uint32_t deref() { --_refcnt; return _refcnt; }
- virtual void set_valid();
- virtual void dump(std::string& s);
-
- inline int elems() const { return _nelems; }
- inline int elem_store_sz() const { return _elems; }
- inline int word_distance() const { return _elems ? _endtoken - _starttoken - (_elems - 1) : 0; }
- inline off_t ctxt_startpos() const { return _ctxt_start; }
- virtual inline off_t endtoken() const { return _endtoken; }
- virtual inline off_t endpos() const { return _endpos; }
- inline ssize_t size() const { return _endpos - _startpos; }
- inline bool order() const { return _options & X_ORDERED; }
- inline bool partial_ok() const { return !(_options & X_COMPLETE); }
- inline QueryExpr* match() { return _match; }
- inline int weight() const { return _elem_weight; }
- inline size_t word_length() const { return _endtoken - _starttoken; }
-
- virtual bool complete();
+ void set_valid() override;
+ void dump(std::string& s) override;
+
+ int elems() const { return _nelems; }
+ int elem_store_sz() const { return _elems; }
+ int word_distance() const { return _elems ? _endtoken - _starttoken - (_elems - 1) : 0; }
+ off_t ctxt_startpos() const { return _ctxt_start; }
+ off_t endtoken() const override { return _endtoken; }
+ off_t endpos() const override { return _endpos; }
+ ssize_t size() const { return _endpos - _startpos; }
+ bool order() const { return _options & X_ORDERED; }
+ bool partial_ok() const { return !(_options & X_COMPLETE); }
+ QueryExpr* match() { return _match; }
+ int weight() const { return _elem_weight; }
+ size_t word_length() const override { return _endtoken - _starttoken; }
+
+ bool complete() override;
int weight(MatchElement* me, QueryExpr* mexp);
- virtual size_t length() const { return _endpos - _startpos; }
+ size_t length() const override { return _endpos - _startpos; }
- virtual MatchCandidate* Complex() { return this; }
+ MatchCandidate* Complex() override { return this; }
- virtual void add_to_keylist(keylist& kl);
+ void add_to_keylist(keylist& kl) override;
void make_keylist();
// A simple ranking function for now: Make sure those matches with
diff --git a/juniper/src/vespa/juniper/propreader.h b/juniper/src/vespa/juniper/propreader.h
index dfc0a92e31f..33ba08bcef9 100644
--- a/juniper/src/vespa/juniper/propreader.h
+++ b/juniper/src/vespa/juniper/propreader.h
@@ -11,9 +11,9 @@ class PropReader : public IJuniperProperties
{
public:
PropReader(const char* filename);
- virtual const char* GetProperty(const char* name, const char* def = NULL);
+ const char* GetProperty(const char* name, const char* def = NULL) override;
void UpdateProperty(const char* name, const char* value);
- virtual ~PropReader() {}
+ ~PropReader() {}
protected:
void Process(const char* filename);
private:
diff --git a/juniper/src/vespa/juniper/querynode.h b/juniper/src/vespa/juniper/querynode.h
index 84e7e800c8e..63db1802624 100644
--- a/juniper/src/vespa/juniper/querynode.h
+++ b/juniper/src/vespa/juniper/querynode.h
@@ -107,19 +107,19 @@ public:
// Create a copy of the node n wrt. arity etc, but without adding any children..
explicit QueryNode(QueryNode* n);
- virtual ~QueryNode();
- virtual QueryNode* AddChild(QueryExpr* child);
- virtual int Limit();
- inline bool Complete() { return _arity == _nchild; }
- virtual void Dump(std::string&);
- virtual bool StackComplete();
- virtual void ComputeThreshold();
- virtual QueryNode* AsNode();
- virtual QueryTerm* AsTerm();
- virtual bool Complex();
- virtual int MaxArity();
-
- virtual void Accept(IQueryExprVisitor& v);
+ ~QueryNode();
+ QueryNode* AddChild(QueryExpr* child) override;
+ int Limit() override;
+ bool Complete() const { return _arity == _nchild; }
+ void Dump(std::string&) override;
+ bool StackComplete() override;
+ void ComputeThreshold() override;
+ QueryNode* AsNode() override;
+ QueryTerm* AsTerm() override;
+ bool Complex() override;
+ int MaxArity() override;
+
+ void Accept(IQueryExprVisitor& v) override;
// return true if a match for n should lead to creation of a new candidate node
// corresponding to this query tree node:
@@ -147,16 +147,16 @@ class QueryTerm : public QueryExpr
public:
QueryTerm(const char* t, int length, int ix, int weight = 100);
explicit QueryTerm(QueryTerm* const);
- virtual ~QueryTerm();
- virtual int Limit();
- virtual QueryNode* AddChild(QueryExpr* child);
- virtual void Dump(std::string&);
- virtual bool StackComplete();
- virtual QueryNode* AsNode();
- virtual QueryTerm* AsTerm();
- virtual bool Complex();
-
- virtual void Accept(IQueryExprVisitor& v);
+ ~QueryTerm();
+ int Limit() override;
+ QueryNode* AddChild(QueryExpr* child) override;
+ void Dump(std::string&) override;
+ bool StackComplete() override;
+ QueryNode* AsNode() override;
+ QueryTerm* AsTerm() override;
+ bool Complex() override;
+
+ void Accept(IQueryExprVisitor& v) override;
inline const char* term() { return _rep; }
inline const ucs4_t* ucs4_term() { return _ucs4_term; }
inline bool is_prefix() { return _options & X_PREFIX; }
@@ -183,4 +183,3 @@ private:
* with arity 1 or non-terms with arity 0
*/
void SimplifyStack(QueryExpr*& orig_stack);
-
diff --git a/juniper/src/vespa/juniper/queryparser.h b/juniper/src/vespa/juniper/queryparser.h
index 19de984a893..b9cd7ea0352 100644
--- a/juniper/src/vespa/juniper/queryparser.h
+++ b/juniper/src/vespa/juniper/queryparser.h
@@ -32,13 +32,13 @@ public:
QueryParser(const char* query_string);
virtual ~QueryParser();
- virtual bool Traverse(IQueryVisitor* v) const;
- virtual int Weight(const QueryItem* item) const;
- virtual ItemCreator Creator(const QueryItem* item) const;
- virtual const char* Index(const QueryItem* item, size_t* length) const;
- virtual bool UsefulIndex(const QueryItem* item) const;
+ bool Traverse(IQueryVisitor* v) const override;
+ int Weight(const QueryItem* item) const override;
+ ItemCreator Creator(const QueryItem* item) const override;
+ const char* Index(const QueryItem* item, size_t* length) const override;
+ bool UsefulIndex(const QueryItem* item) const override;
- inline int ParseError() { return _parse_errno; }
+ int ParseError() { return _parse_errno; }
protected:
QueryItem* ParseExpr();
QueryItem* ParseKeyword();
diff --git a/juniper/src/vespa/juniper/queryvisitor.h b/juniper/src/vespa/juniper/queryvisitor.h
index 28b9047dc72..caedf31e3ef 100644
--- a/juniper/src/vespa/juniper/queryvisitor.h
+++ b/juniper/src/vespa/juniper/queryvisitor.h
@@ -1,11 +1,8 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-/* $Id$ */
-
#include "rpinterface.h"
#include "querynode.h"
-#include <vector>
// Juniper internal implementation of the IQueryVisitor interface as used by
// query providers (this is the initial 1.0.x structure implementation)
@@ -26,20 +23,20 @@ class QueryVisitor : public juniper::IQueryVisitor
{
public:
QueryVisitor(const IQuery& query, QueryHandle* qhandle, juniper::QueryModifier & queryModifier);
- virtual ~QueryVisitor();
+ ~QueryVisitor();
- virtual bool VisitAND(const QueryItem* item, int arity);
- virtual bool VisitOR(const QueryItem* item, int arity);
- virtual bool VisitANY(const QueryItem* item, int arity);
- virtual bool VisitNEAR(const QueryItem* item, int arity, int limit);
- virtual bool VisitWITHIN(const QueryItem* item, int arity, int limit);
- virtual bool VisitRANK(const QueryItem* item, int arity);
- virtual bool VisitPHRASE(const QueryItem* item, int arity);
- virtual bool VisitANDNOT(const QueryItem* item, int arity);
- virtual bool VisitTHRESHOLD(const QueryItem* item, int arity, int threshold);
- virtual bool VisitOther(const QueryItem* item, int arity);
- virtual void VisitKeyword(const QueryItem* item, const char* keyword,
- const size_t length = 0, bool prefix = false, bool specialToken = false);
+ bool VisitAND(const QueryItem* item, int arity) override;
+ bool VisitOR(const QueryItem* item, int arity) override;
+ bool VisitANY(const QueryItem* item, int arity) override;
+ bool VisitNEAR(const QueryItem* item, int arity, int limit) override;
+ bool VisitWITHIN(const QueryItem* item, int arity, int limit) override;
+ bool VisitRANK(const QueryItem* item, int arity) override;
+ bool VisitPHRASE(const QueryItem* item, int arity) override;
+ bool VisitANDNOT(const QueryItem* item, int arity) override;
+ bool VisitTHRESHOLD(const QueryItem* item, int arity, int threshold) override;
+ bool VisitOther(const QueryItem* item, int arity) override;
+ void VisitKeyword(const QueryItem* item, const char* keyword,
+ const size_t length = 0, bool prefix = false, bool specialToken = false) override;
/** Grab pointer to (and ownership of) the query structure generated by this visitor.
* The call releases the query structure from this visitor.
diff --git a/juniper/src/vespa/juniper/result.cpp b/juniper/src/vespa/juniper/result.cpp
index 786e9aa15d1..7604de88ec4 100644
--- a/juniper/src/vespa/juniper/result.cpp
+++ b/juniper/src/vespa/juniper/result.cpp
@@ -6,7 +6,6 @@
#include "result.h"
#include "juniperparams.h"
#include "Matcher.h"
-#include "tokenizer.h"
#include "config.h"
#include "appender.h"
@@ -21,9 +20,9 @@ class SummaryImpl : public Summary
public:
explicit SummaryImpl() : _text("") {}
explicit SummaryImpl(const std::string& t) : _text(t) {}
- virtual ~SummaryImpl() {}
- virtual const char* Text() const { return _text.c_str(); }
- virtual size_t Length() const { return _text.size(); }
+ ~SummaryImpl() {}
+ const char* Text() const override { return _text.c_str(); }
+ size_t Length() const override { return _text.size(); }
std::string _text;
};
diff --git a/juniper/src/vespa/juniper/specialtokenregistry.cpp b/juniper/src/vespa/juniper/specialtokenregistry.cpp
index 92a9b719751..ecec7d90d29 100644
--- a/juniper/src/vespa/juniper/specialtokenregistry.cpp
+++ b/juniper/src/vespa/juniper/specialtokenregistry.cpp
@@ -10,9 +10,9 @@ private:
public:
QueryVisitor(juniper::SpecialTokenRegistry & registry) : _registry(registry) {}
- virtual void VisitQueryNode(QueryNode *) { }
- virtual void RevisitQueryNode(QueryNode *) { }
- virtual void VisitQueryTerm(QueryTerm * t) {
+ void VisitQueryNode(QueryNode *) override { }
+ void RevisitQueryNode(QueryNode *) override { }
+ void VisitQueryTerm(QueryTerm * t) override {
if (t->isSpecialToken()) {
_registry.addSpecialToken(t);
}