b13c43bb2c
X-SVN-Rev: 1801
86 lines
2.7 KiB
C++
86 lines
2.7 KiB
C++
/*
|
|
**********************************************************************
|
|
* Copyright (C) 1999-2000 IBM Corp. All rights reserved.
|
|
**********************************************************************
|
|
* Date Name Description
|
|
* 12/1/99 rgillam Complete port from Java.
|
|
* 01/13/2000 helena Added UErrorCode to ctors.
|
|
**********************************************************************
|
|
*/
|
|
|
|
#ifndef DBBI_TBL_H
|
|
#define DBBI_TBL_H
|
|
|
|
#include "rbbi_tbl.h"
|
|
#include "brkdict.h"
|
|
#include "unicode/udata.h"
|
|
|
|
/* forward declaration */
|
|
class DictionaryBasedBreakIterator;
|
|
|
|
/**
|
|
* This subclass of RuleBasedBreakIteratorTables contains the additional
|
|
* static data that is used by DictionaryBasedBreakIterator. This comprises
|
|
* the dictionary itself and an array of flags that indicate which characters
|
|
* are in the dictionary.
|
|
*
|
|
* @author Richard Gillam
|
|
*/
|
|
class DictionaryBasedBreakIteratorTables : public RuleBasedBreakIteratorTables {
|
|
|
|
private:
|
|
/**
|
|
* a list of known words that is used to divide up contiguous ranges of letters,
|
|
* stored in a compressed, indexed, format that offers fast access
|
|
*/
|
|
BreakDictionary dictionary;
|
|
|
|
/**
|
|
* a list of flags indicating which character categories are contained in
|
|
* the dictionary file (this is used to determine which ranges of characters
|
|
* to apply the dictionary to)
|
|
*/
|
|
int8_t* categoryFlags;
|
|
|
|
//=======================================================================
|
|
// constructor
|
|
//=======================================================================
|
|
|
|
DictionaryBasedBreakIteratorTables(UDataMemory* tablesMemory,
|
|
char* dictionaryFilename,
|
|
UErrorCode& status);
|
|
|
|
/**
|
|
* The copy constructor is declared private and not implemented.
|
|
* THIS CLASS MAY NOT BE COPIED.
|
|
*/
|
|
DictionaryBasedBreakIteratorTables(const DictionaryBasedBreakIteratorTables& that);
|
|
|
|
//=======================================================================
|
|
// boilerplate
|
|
//=======================================================================
|
|
|
|
/**
|
|
* Destructor
|
|
*/
|
|
virtual ~DictionaryBasedBreakIteratorTables();
|
|
|
|
/**
|
|
* The assignment operator is declared private and not implemented.
|
|
* THIS CLASS MAY NOT BE COPIED.
|
|
*/
|
|
DictionaryBasedBreakIteratorTables& operator=(
|
|
const DictionaryBasedBreakIteratorTables& that);
|
|
|
|
protected:
|
|
/**
|
|
* Looks up a character's category (i.e., its category for breaking purposes,
|
|
* not its Unicode category)
|
|
*/
|
|
virtual int32_t lookupCategory(UChar c, BreakIterator* bi) const;
|
|
|
|
friend class DictionaryBasedBreakIterator;
|
|
};
|
|
|
|
#endif
|