// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* *************************************************************************** * Copyright (C) 1999-2016 International Business Machines Corporation * * and others. All rights reserved. * *************************************************************************** ********************************************************************** * Date Name Description * 10/22/99 alan Creation. * 11/11/99 rgillam Complete port from Java. ********************************************************************** */ #ifndef RBBI_H #define RBBI_H #include "unicode/utypes.h" #if U_SHOW_CPLUSPLUS_API /** * \file * \brief C++ API: Rule Based Break Iterator */ #if !UCONFIG_NO_BREAK_ITERATION #include "unicode/brkiter.h" #include "unicode/udata.h" #include "unicode/parseerr.h" #include "unicode/schriter.h" struct UCPTrie; U_NAMESPACE_BEGIN /** @internal */ class LanguageBreakEngine; struct RBBIDataHeader; class RBBIDataWrapper; class UnhandledEngine; class UStack; #ifndef U_HIDE_INTERNAL_API /** * The ExternalBreakEngine class define an abstract interface for the host environment * to provide a low level facility to break text for unicode text in script that the text boundary * cannot be handled by upper level rule based logic, for example, for Chinese and Japanese * word breaking, Thai, Khmer, Burmese, Lao and other Southeast Asian scripts. * The host environment implement one or more subclass of ExternalBreakEngine and * register them in the initialization time by calling * RuleBasedBreakIterator::registerExternalBreakEngine(). ICU adopt and own the engine and will * delete the registered external engine in proper time during the clean up * event. * @internal ICU 74 technology preview */ class ExternalBreakEngine : public UObject { … }; #endif /* U_HIDE_INTERNAL_API */ /** * * A subclass of BreakIterator whose behavior is specified using a list of rules. * <p>Instances of this class are most commonly created by the factory methods of * BreakIterator::createWordInstance(), BreakIterator::createLineInstance(), etc., * and then used via the abstract API in class BreakIterator</p> * * <p>See the ICU User Guide for information on Break Iterator Rules.</p> * * <p>This class is not intended to be subclassed.</p> */ class U_COMMON_API RuleBasedBreakIterator /*final*/ : public BreakIterator { … }; U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ #endif /* U_SHOW_CPLUSPLUS_API */ #endif