/** * A transliterator that converts Unicode escape forms to the * characters they represent. Escape forms have a prefix, a suffix, a * radix, and minimum and maximum digit counts. * * <p>This class is package private. It registers several standard * variants with the system which are then accessed via their IDs. * * @author Alan Liu
*/ class UnescapeTransliterator : public Transliterator {
private:
/** * The encoded pattern specification. The pattern consists of * zero or more forms. Each form consists of a prefix, suffix, * radix, minimum digit count, and maximum digit count. These * values are stored as a five character header. That is, their * numeric values are cast to 16-bit characters and stored in the * string. Following these five characters, the prefix * characters, then suffix characters are stored. Each form thus * takes n+5 characters, where n is the total length of the prefix * and suffix. The end is marked by a header of length one * consisting of the character END.
*/
char16_t* spec; // owned; may not be nullptr
public:
/** * Registers standard variants with the system. Called by * Transliterator during initialization.
*/ staticvoid registerIDs();
/** * Constructor. Takes the encoded spec array (does not adopt it). * @param ID the string identifier for this transliterator * @param spec the encoded spec array
*/
UnescapeTransliterator(const UnicodeString& ID, const char16_t *spec);
/** * ICU "poor man's RTTI", returns a UClassID for the actual class.
*/ virtual UClassID getDynamicClassID() const override;
/** * ICU "poor man's RTTI", returns a UClassID for this class.
*/
U_I18N_API static UClassID U_EXPORT2 getStaticClassID();
protected:
/** * Implements {@link Transliterator#handleTransliterate}. * @param text the buffer holding transliterated and * untransliterated text * @param offset the start and limit of the text, the position * of the cursor, and the start and limit of transliteration. * @param incremental if true, assume more text may be coming after * pos.contextLimit. Otherwise, assume the text is complete.
*/ virtualvoid handleTransliterate(Replaceable& text, UTransPosition& offset,
UBool isIncremental) const override;
};
U_NAMESPACE_END
#endif/* #if !UCONFIG_NO_TRANSLITERATION */
#endif
Messung V0.5
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.