Main Page   Class Hierarchy   Compound List   File List   Header Files   Sources   Compound Members   File Members  

rbt.h

This is the verbatim text of the rbt.h include file.
/*
**********************************************************************
*   Copyright (C) 1999, International Business Machines
*   Corporation and others.  All Rights Reserved.
**********************************************************************
*   Date        Name        Description
*   11/17/99    aliu        Creation.
**********************************************************************
*/
#ifndef RBT_H
#define RBT_H

#include "unicode/translit.h"
#include "unicode/utypes.h"
#include "unicode/parseerr.h"

class TransliterationRuleData;

class U_I18N_API RuleBasedTransliterator : public Transliterator {

    TransliterationRuleData* data;

    UBool isDataOwned;

public:

    RuleBasedTransliterator(const UnicodeString& ID,
                            const UnicodeString& rules,
                            Direction direction,
                            UnicodeFilter* adoptedFilter,
                            ParseError& parseError,
                            UErrorCode& status);

    RuleBasedTransliterator(const UnicodeString& ID,
                            const UnicodeString& rules,
                            Direction direction,
                            UnicodeFilter* adoptedFilter,
                            UErrorCode& status);

    RuleBasedTransliterator(const UnicodeString& ID,
                            const UnicodeString& rules,
                            Direction direction,
                            UErrorCode& status);

    RuleBasedTransliterator(const UnicodeString& ID,
                            const UnicodeString& rules,
                            UErrorCode& status);

    RuleBasedTransliterator(const UnicodeString& ID,
                            const UnicodeString& rules,
                            UnicodeFilter* adoptedFilter,
                            UErrorCode& status);

    RuleBasedTransliterator(const UnicodeString& ID,
                            const TransliterationRuleData* theData,
                            UnicodeFilter* adoptedFilter = 0);

    RuleBasedTransliterator(const RuleBasedTransliterator&);

    virtual ~RuleBasedTransliterator();

    Transliterator* clone(void) const;

    virtual void handleTransliterate(Replaceable& text, Position& offsets,
                                     UBool isIncremental) const;

    enum {
        PARSE_ERROR_BASE = 0x10000,
        BAD_VARIABLE_DEFINITION,
        MALFORMED_RULE,
        MALFORMED_SET,
        MALFORMED_SYMBOL_REFERENCE,
        MALFORMED_UNICODE_ESCAPE,
        MALFORMED_VARIABLE_DEFINITION,
        MALFORMED_VARIABLE_REFERENCE,
        MISMATCHED_SEGMENT_DELIMITERS,
        MISPLACED_CURSOR_OFFSET,
        MISSING_OPERATOR,
        MISSING_SEGMENT_CLOSE,
        MULTIPLE_ANTE_CONTEXTS,
        MULTIPLE_CURSORS,
        MULTIPLE_POST_CONTEXTS,
        TRAILING_BACKSLASH,
        UNDEFINED_SEGMENT_REFERENCE,
        UNDEFINED_VARIABLE,
        UNQUOTED_SPECIAL,
        UNTERMINATED_QUOTE
    };

private:

    void _construct(const UnicodeString& rules,
                    Direction direction,
                    UErrorCode& status,
                    ParseError* parseError = 0);
};

inline RuleBasedTransliterator::RuleBasedTransliterator(
                            const UnicodeString& ID,
                            const UnicodeString& rules,
                            Direction direction,
                            UnicodeFilter* adoptedFilter,
                            ParseError& parseError,
                            UErrorCode& status) :
    Transliterator(ID, adoptedFilter) {
    _construct(rules, direction, status, &parseError);
}

inline RuleBasedTransliterator::RuleBasedTransliterator(
                            const UnicodeString& ID,
                            const UnicodeString& rules,
                            Direction direction,
                            UnicodeFilter* adoptedFilter,
                            UErrorCode& status) :
    Transliterator(ID, adoptedFilter) {
    _construct(rules, direction, status);
}

inline RuleBasedTransliterator::RuleBasedTransliterator(
                            const UnicodeString& ID,
                            const UnicodeString& rules,
                            Direction direction,
                            UErrorCode& status) :
    Transliterator(ID, 0) {
    _construct(rules, direction, status);
}

inline RuleBasedTransliterator::RuleBasedTransliterator(
                            const UnicodeString& ID,
                            const UnicodeString& rules,
                            UErrorCode& status) :
    Transliterator(ID, 0) {
    _construct(rules, FORWARD, status);
}

inline RuleBasedTransliterator::RuleBasedTransliterator(
                            const UnicodeString& ID,
                            const UnicodeString& rules,
                            UnicodeFilter* adoptedFilter,
                            UErrorCode& status) :
    Transliterator(ID, adoptedFilter) {
    _construct(rules, FORWARD, status);
}

#endif

Generated at Mon Jun 5 12:53:21 2000 for ICU1.5 by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999