diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-03 22:46:03 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-04 16:36:18 +0200 |
commit | 37cfa9ab6b103ae733a783cde18c8384e0ace507 (patch) | |
tree | 99b4ec1964a7a392b4aec133c4b20a4a40ab0002 /juniper | |
parent | 5a48a81c4134bae524aa66e1e49624f678c8b6ce (diff) |
Override
Diffstat (limited to 'juniper')
-rw-r--r-- | juniper/src/vespa/juniper/Matcher.h | 4 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/keyocc.h | 20 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/matchobject.cpp | 24 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/mcand.h | 43 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/propreader.h | 4 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/querynode.h | 47 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/queryparser.h | 12 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/queryvisitor.h | 29 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/result.cpp | 7 | ||||
-rw-r--r-- | juniper/src/vespa/juniper/specialtokenregistry.cpp | 6 |
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); } |