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.
78 lines
1.6 KiB
78 lines
1.6 KiB
//
|
|
// SuffixEntry.cc
|
|
//
|
|
// SuffixEntry: Decode the suffix rules used in the ispell dictionary files
|
|
// for the endings fuzzy DB.
|
|
//
|
|
// 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: SuffixEntry.cc,v 1.5 2004/05/28 13:15:20 lha Exp $
|
|
//
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "htconfig.h"
|
|
#endif /* HAVE_CONFIG_H */
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include "SuffixEntry.h"
|
|
#include "Endings.h"
|
|
|
|
|
|
//*****************************************************************************
|
|
// SuffixEntry::SuffixEntry()
|
|
//
|
|
SuffixEntry::SuffixEntry(char *str)
|
|
{
|
|
parse(str);
|
|
}
|
|
|
|
|
|
//*****************************************************************************
|
|
// SuffixEntry::~SuffixEntry()
|
|
//
|
|
SuffixEntry::~SuffixEntry()
|
|
{
|
|
}
|
|
|
|
|
|
//*****************************************************************************
|
|
// void SuffixEntry::parse(char *str)
|
|
// Parse a string in the format <expr> '>' <rule> into ourselves.
|
|
//
|
|
void
|
|
SuffixEntry::parse(char *str)
|
|
{
|
|
String temp = 0;
|
|
|
|
while (*str == ' ' || *str == '\t')
|
|
str++;
|
|
|
|
temp = "^.*";
|
|
while (*str != '>')
|
|
{
|
|
if (*str != ' ' && *str != '\t')
|
|
temp << *str;
|
|
str++;
|
|
}
|
|
temp << "$";
|
|
while (*str == ' ' || *str == '\t' || *str == '>')
|
|
str++;
|
|
|
|
Endings::mungeWord(temp, expression);
|
|
|
|
temp = 0;
|
|
while (*str != ' ' && *str != '\t' && *str != '\n' && *str != '\r' && *str)
|
|
{
|
|
temp << *str;
|
|
str++;
|
|
}
|
|
Endings::mungeWord(temp, rule);
|
|
}
|
|
|
|
|