Open Chinese Convert: opencc::DictGroup Class Reference

Open Chinese Convert 1.3.2.dirty A project for conversion between Traditional and Simplified Chinese

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
opencc::DictGroup Class Reference
OpenCC C++ Comprehensive API

Group of dictionaries. More...

`#include <DictGroup.hpp>`

Inheritance diagram for opencc::DictGroup:

## Public Member Functions
| DictGroup (const std::list< DictPtr > &dicts)
| DictGroup (const std::list< DictPtr > &dicts, DictGroupMatchPolicy matchPolicy)
virtual size_t | KeyMaxLength () const
| Returns the maximum KeyMaxLength() among all child dictionaries.
virtual Optional< const DictEntry * > | Match (const char *word, size_t len) const
| Matches the key exactly against child dictionaries in group order.
virtual Optional< const DictEntry * > | MatchPrefix (const char *word, size_t len) const
| Matches the longest prefix within the first child dictionary that has any prefix match.
virtual std::vector< const DictEntry * > | MatchAllPrefixes (const char *word, size_t len) const
| Returns prefix matches from all child dictionaries, sorted by key length descending.
virtual LexiconPtr | GetLexicon () const
| Returns a merged lexicon from all child dictionaries.
virtual const std::list< DictPtr > * | GetDictGroupItems () const
| Exposes child dictionaries to callers that need group-aware behavior.
const std::list< DictPtr > | GetDicts () const
| Returns the child dictionaries by value.
virtual DictGroupMatchPolicy | GetMatchPolicy () const
| Returns how this group resolves matches across child dictionaries.
Public Member Functions inherited from opencc::Dict
Optional< const DictEntry * > | Match (const std::string &word) const
| Matches a word exactly and returns the DictEntry or Optional::Null().
Optional< const DictEntry * > | MatchPrefix (const char *word) const
| Matches the longest matched prefix of a word.
Optional< const DictEntry * > | MatchPrefix (const std::string &word) const
| Matches the longest matched prefix of a word.
std::vector< const DictEntry * > | MatchAllPrefixes (const std::string &word) const
| Returns all matched prefixes of a word, sorted by the length (desc).
virtual bool | SupportsFastPrefixMatch () const
| Returns true if this dict can handle prefix queries directly without PrefixMatch building a lookup table.
virtual PrefixMatchView | MatchPrefixValue (const char *word, size_t len) const
| Fast-path prefix match.

## Static Public Member Functions
static DictGroupPtr | NewFromDict (const Dict &dict)

## Detailed Description

Group of dictionaries.

DictGroup preserves dictionary order. With the current ShortCircuit match policy, exact lookup returns the first match from the first child dictionary that contains the key.

OpenCC's built-in conversion and mmseg segmentation paths do not call DictGroup::MatchPrefix() or DictGroup::MatchAllPrefixes() directly. They construct a PrefixMatch from the group, and PrefixMatch uses GetDictGroupItems() to build its own group-aware prefix matcher. The prefix methods below are still part of the Dict API for direct DictGroup callers and tests.

## Member Function Documentation

## ◆ GetDictGroupItems()

virtual const std::list< DictPtr > * opencc::DictGroup::GetDictGroupItems | ( |  | ) | const
| inlinevirtual

Exposes child dictionaries to callers that need group-aware behavior.

PrefixMatch uses this to preserve nested group boundaries and dictionary order.

Reimplemented from opencc::Dict.

## ◆ GetLexicon()

LexiconPtr DictGroup::GetLexicon | ( |  | ) | const
| virtual

Returns a merged lexicon from all child dictionaries.

Duplicate keys are not deduplicated here. PrefixMatch handles group priority while building its lookup table.

Implements opencc::Dict.

## ◆ GetMatchPolicy()

virtual DictGroupMatchPolicy opencc::DictGroup::GetMatchPolicy | ( |  | ) | const
| inlinevirtual

Returns how this group resolves matches across child dictionaries.

Reimplemented from opencc::Dict.

## ◆ KeyMaxLength()

size_t DictGroup::KeyMaxLength | ( |  | ) | const
| virtual

Returns the maximum KeyMaxLength() among all child dictionaries.

Implements opencc::Dict.

## ◆ Match()

Optional< const DictEntry * > DictGroup::Match | ( | const char * | word,
|  | size_t | len ) const
| virtual

Matches the key exactly against child dictionaries in group order.

Returns the first child dictionary's exact match, if any.

Implements opencc::Dict.

## ◆ MatchAllPrefixes()

std::vector< const DictEntry * > DictGroup::MatchAllPrefixes | ( | const char * | word,
|  | size_t | len ) const
| virtual

Returns prefix matches from all child dictionaries, sorted by key length descending.

When multiple child dictionaries have matches of the same key length, the first child dictionary wins.

This method is not used by OpenCC's normal conversion or mmseg segmentation paths; PrefixMatch expands the group via GetDictGroupItems() instead.

Reimplemented from opencc::Dict.

## ◆ MatchPrefix()

Optional< const DictEntry * > DictGroup::MatchPrefix | ( | const char * | word,
|  | size_t | len ) const
| virtual

Matches the longest prefix within the first child dictionary that has any prefix match.

A shorter match from an earlier child dictionary therefore wins over a longer match from a later child dictionary.

This method is not used by OpenCC's normal conversion or mmseg segmentation paths; PrefixMatch expands the group via GetDictGroupItems() instead.

Reimplemented from opencc::Dict.

Reimplemented in opencc::UnionDictGroup.

The documentation for this class was generated from the following files:

- DictGroup.hpp
- DictGroup.cpp