summaryrefslogtreecommitdiff
path: root/extractor/matchings_finder.cc
blob: ba4edab17f2ce9470e6e56900f08f4915b09e8a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "matchings_finder.h"

#include "suffix_array.h"
#include "phrase_location.h"

MatchingsFinder::MatchingsFinder(shared_ptr<SuffixArray> suffix_array) :
    suffix_array(suffix_array) {}

PhraseLocation MatchingsFinder::Find(PhraseLocation& location,
                                     const string& word, int offset) {
  if (location.sa_low == -1 && location.sa_high == -1) {
    location.sa_low = 0;
    location.sa_high = suffix_array->GetSize();
  }

  return suffix_array->Lookup(location.sa_low, location.sa_high, word, offset);
}