You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
3 years ago
|
//
|
||
|
// Endings.h
|
||
|
//
|
||
|
// Endings: A fuzzy matching algorithm to match the grammatical endings rules
|
||
|
// used by the ispell dictionary files.
|
||
|
//
|
||
|
// Part of the ht://Dig package <http://www.htdig.org/>
|
||
|
// Copyright (c) 1995-2004 The ht://Dig Group
|
||
|
// For copyright details, see the file COPYING in your distribution
|
||
|
// or the GNU Library General Public License (LGPL) version 2 or later
|
||
|
// <http://www.gnu.org/copyleft/lgpl.html>
|
||
|
//
|
||
|
// $Id: Endings.h,v 1.7 2004/05/28 13:15:20 lha Exp $
|
||
|
//
|
||
|
|
||
|
#ifndef _Endings_h_
|
||
|
#define _Endings_h_
|
||
|
|
||
|
#include "Fuzzy.h"
|
||
|
|
||
|
class Dictionary;
|
||
|
class String;
|
||
|
class List;
|
||
|
|
||
|
|
||
|
class Endings : public Fuzzy
|
||
|
{
|
||
|
public:
|
||
|
//
|
||
|
// Construction/Destruction
|
||
|
//
|
||
|
Endings(const HtConfiguration& config_arg);
|
||
|
virtual ~Endings();
|
||
|
|
||
|
virtual void getWords(char *word, List &words);
|
||
|
virtual void generateKey(char *word, String &key);
|
||
|
virtual void addWord(char *word);
|
||
|
virtual int openIndex();
|
||
|
virtual int writeDB();
|
||
|
|
||
|
//
|
||
|
// Special member which will create the two databases needed for this
|
||
|
// algorithm.
|
||
|
//
|
||
|
int createDB(const HtConfiguration &config);
|
||
|
|
||
|
static void mungeWord(char *, String &);
|
||
|
|
||
|
private:
|
||
|
Database *root2word;
|
||
|
Database *word2root;
|
||
|
|
||
|
int createRoot(Dictionary &, char *, char *, const String&);
|
||
|
int readRules(Dictionary &, const String&);
|
||
|
void expandWord(String &, List &, Dictionary &, char *, char *);
|
||
|
};
|
||
|
|
||
|
#endif
|