intl/icu/source/common/unicode/ustringtrie.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2 *******************************************************************************
     3 *   Copyright (C) 2010-2012, International Business Machines
     4 *   Corporation and others.  All Rights Reserved.
     5 *******************************************************************************
     6 *   file name:  udicttrie.h
     7 *   encoding:   US-ASCII
     8 *   tab size:   8 (not used)
     9 *   indentation:4
    10 *
    11 *   created on: 2010dec17
    12 *   created by: Markus W. Scherer
    13 */
    15 #ifndef __USTRINGTRIE_H__
    16 #define __USTRINGTRIE_H__
    18 /**
    19  * \file
    20  * \brief C API: Helper definitions for dictionary trie APIs.
    21  */
    23 #include "unicode/utypes.h"
    26 /**
    27  * Return values for BytesTrie::next(), UCharsTrie::next() and similar methods.
    28  * @see USTRINGTRIE_MATCHES
    29  * @see USTRINGTRIE_HAS_VALUE
    30  * @see USTRINGTRIE_HAS_NEXT
    31  * @stable ICU 4.8
    32  */
    33 enum UStringTrieResult {
    34     /**
    35      * The input unit(s) did not continue a matching string.
    36      * Once current()/next() return USTRINGTRIE_NO_MATCH,
    37      * all further calls to current()/next() will also return USTRINGTRIE_NO_MATCH,
    38      * until the trie is reset to its original state or to a saved state.
    39      * @stable ICU 4.8
    40      */
    41     USTRINGTRIE_NO_MATCH,
    42     /**
    43      * The input unit(s) continued a matching string
    44      * but there is no value for the string so far.
    45      * (It is a prefix of a longer string.)
    46      * @stable ICU 4.8
    47      */
    48     USTRINGTRIE_NO_VALUE,
    49     /**
    50      * The input unit(s) continued a matching string
    51      * and there is a value for the string so far.
    52      * This value will be returned by getValue().
    53      * No further input byte/unit can continue a matching string.
    54      * @stable ICU 4.8
    55      */
    56     USTRINGTRIE_FINAL_VALUE,
    57     /**
    58      * The input unit(s) continued a matching string
    59      * and there is a value for the string so far.
    60      * This value will be returned by getValue().
    61      * Another input byte/unit can continue a matching string.
    62      * @stable ICU 4.8
    63      */
    64     USTRINGTRIE_INTERMEDIATE_VALUE
    65 };
    67 /**
    68  * Same as (result!=USTRINGTRIE_NO_MATCH).
    69  * @param result A result from BytesTrie::first(), UCharsTrie::next() etc.
    70  * @return true if the input bytes/units so far are part of a matching string/byte sequence.
    71  * @stable ICU 4.8
    72  */
    73 #define USTRINGTRIE_MATCHES(result) ((result)!=USTRINGTRIE_NO_MATCH)
    75 /**
    76  * Equivalent to (result==USTRINGTRIE_INTERMEDIATE_VALUE || result==USTRINGTRIE_FINAL_VALUE) but
    77  * this macro evaluates result exactly once.
    78  * @param result A result from BytesTrie::first(), UCharsTrie::next() etc.
    79  * @return true if there is a value for the input bytes/units so far.
    80  * @see BytesTrie::getValue
    81  * @see UCharsTrie::getValue
    82  * @stable ICU 4.8
    83  */
    84 #define USTRINGTRIE_HAS_VALUE(result) ((result)>=USTRINGTRIE_FINAL_VALUE)
    86 /**
    87  * Equivalent to (result==USTRINGTRIE_NO_VALUE || result==USTRINGTRIE_INTERMEDIATE_VALUE) but
    88  * this macro evaluates result exactly once.
    89  * @param result A result from BytesTrie::first(), UCharsTrie::next() etc.
    90  * @return true if another input byte/unit can continue a matching string.
    91  * @stable ICU 4.8
    92  */
    93 #define USTRINGTRIE_HAS_NEXT(result) ((result)&1)
    95 #endif  /* __USTRINGTRIE_H__ */

mercurial