summaryrefslogtreecommitdiffstats
path: root/migratetags/matchers/matcher.h
blob: ec41e3cac282c4a7f061eebe792ea4ffa9f90621 (plain) (blame)
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
#ifndef matcher_h
#define matcher_h

class Matcher {
public:

// Compares 2 words and tries to give a percentage assurance of a match
// TODO: could use more smarts here
//
virtual int compare(const SWBuf &s1, const SWBuf &s2) = 0;

// This is where the magic happens
//
// we must point each targetMod word to an XMLTag
//
// when the magic is done, and your guess is made
// populate targetWordTags with the integer offset
// into wordTags for which XMLTag you think it should
// be.
//
virtual void matchWords(vector<int> &targetWordTags, const vector<SWBuf> &targetWords, const vector<SWBuf> &fromWords, vector<int> fromWordTags) = 0;

// sanitize word for comparing (e.g., toUpper, strip accents, etc)
virtual SWBuf sanitizeWord(const SWBuf &word) = 0;

};
#endif