diff options
Diffstat (limited to 'deps/node/deps/icu-small/source/i18n/dtptngen_impl.h')
-rw-r--r-- | deps/node/deps/icu-small/source/i18n/dtptngen_impl.h | 309 |
1 files changed, 0 insertions, 309 deletions
diff --git a/deps/node/deps/icu-small/source/i18n/dtptngen_impl.h b/deps/node/deps/icu-small/source/i18n/dtptngen_impl.h deleted file mode 100644 index 95219f0b..00000000 --- a/deps/node/deps/icu-small/source/i18n/dtptngen_impl.h +++ /dev/null @@ -1,309 +0,0 @@ -// © 2016 and later: Unicode, Inc. and others. -// License & terms of use: http://www.unicode.org/copyright.html -/* -******************************************************************************* -* Copyright (C) 2007-2016, International Business Machines Corporation and -* others. All Rights Reserved. -******************************************************************************* -* -* File DTPTNGEN.H -* -******************************************************************************* -*/ - -#ifndef __DTPTNGEN_IMPL_H__ -#define __DTPTNGEN_IMPL_H__ - -#include "unicode/udatpg.h" - -#include "unicode/strenum.h" -#include "unicode/unistr.h" -#include "uvector.h" - -// TODO(claireho): Split off Builder class. -// TODO(claireho): If splitting off Builder class: As subclass or independent? - -#define MAX_PATTERN_ENTRIES 52 -#define MAX_CLDR_FIELD_LEN 60 -#define MAX_DT_TOKEN 50 -#define MAX_RESOURCE_FIELD 12 -#define MAX_AVAILABLE_FORMATS 12 -#define NONE 0 -#define EXTRA_FIELD 0x10000 -#define MISSING_FIELD 0x1000 -#define MAX_STRING_ENUMERATION 200 -#define SINGLE_QUOTE ((UChar)0x0027) -#define FORWARDSLASH ((UChar)0x002F) -#define BACKSLASH ((UChar)0x005C) -#define SPACE ((UChar)0x0020) -#define QUOTATION_MARK ((UChar)0x0022) -#define ASTERISK ((UChar)0x002A) -#define PLUSSITN ((UChar)0x002B) -#define COMMA ((UChar)0x002C) -#define HYPHEN ((UChar)0x002D) -#define DOT ((UChar)0x002E) -#define COLON ((UChar)0x003A) -#define CAP_A ((UChar)0x0041) -#define CAP_B ((UChar)0x0042) -#define CAP_C ((UChar)0x0043) -#define CAP_D ((UChar)0x0044) -#define CAP_E ((UChar)0x0045) -#define CAP_F ((UChar)0x0046) -#define CAP_G ((UChar)0x0047) -#define CAP_H ((UChar)0x0048) -#define CAP_J ((UChar)0x004A) -#define CAP_K ((UChar)0x004B) -#define CAP_L ((UChar)0x004C) -#define CAP_M ((UChar)0x004D) -#define CAP_O ((UChar)0x004F) -#define CAP_Q ((UChar)0x0051) -#define CAP_S ((UChar)0x0053) -#define CAP_T ((UChar)0x0054) -#define CAP_U ((UChar)0x0055) -#define CAP_V ((UChar)0x0056) -#define CAP_W ((UChar)0x0057) -#define CAP_X ((UChar)0x0058) -#define CAP_Y ((UChar)0x0059) -#define CAP_Z ((UChar)0x005A) -#define LOWLINE ((UChar)0x005F) -#define LOW_A ((UChar)0x0061) -#define LOW_B ((UChar)0x0062) -#define LOW_C ((UChar)0x0063) -#define LOW_D ((UChar)0x0064) -#define LOW_E ((UChar)0x0065) -#define LOW_F ((UChar)0x0066) -#define LOW_G ((UChar)0x0067) -#define LOW_H ((UChar)0x0068) -#define LOW_I ((UChar)0x0069) -#define LOW_J ((UChar)0x006A) -#define LOW_K ((UChar)0x006B) -#define LOW_L ((UChar)0x006C) -#define LOW_M ((UChar)0x006D) -#define LOW_N ((UChar)0x006E) -#define LOW_O ((UChar)0x006F) -#define LOW_P ((UChar)0x0070) -#define LOW_Q ((UChar)0x0071) -#define LOW_R ((UChar)0x0072) -#define LOW_S ((UChar)0x0073) -#define LOW_T ((UChar)0x0074) -#define LOW_U ((UChar)0x0075) -#define LOW_V ((UChar)0x0076) -#define LOW_W ((UChar)0x0077) -#define LOW_X ((UChar)0x0078) -#define LOW_Y ((UChar)0x0079) -#define LOW_Z ((UChar)0x007A) -#define DT_NARROW -0x101 -#define DT_SHORTER -0x102 -#define DT_SHORT -0x103 -#define DT_LONG -0x104 -#define DT_NUMERIC 0x100 -#define DT_DELTA 0x10 - -U_NAMESPACE_BEGIN - -const int32_t UDATPG_FRACTIONAL_MASK = 1<<UDATPG_FRACTIONAL_SECOND_FIELD; -const int32_t UDATPG_SECOND_AND_FRACTIONAL_MASK = (1<<UDATPG_SECOND_FIELD) | (1<<UDATPG_FRACTIONAL_SECOND_FIELD); - -typedef enum dtStrEnum { - DT_BASESKELETON, - DT_SKELETON, - DT_PATTERN -}dtStrEnum; - -typedef struct dtTypeElem { - UChar patternChar; - UDateTimePatternField field; - int16_t type; - int16_t minLen; - int16_t weight; -} dtTypeElem; - -// A compact storage mechanism for skeleton field strings. Several dozen of these will be created -// for a typical DateTimePatternGenerator instance. -class SkeletonFields : public UMemory { -public: - SkeletonFields(); - void clear(); - void copyFrom(const SkeletonFields& other); - void clearField(int32_t field); - UChar getFieldChar(int32_t field) const; - int32_t getFieldLength(int32_t field) const; - void populate(int32_t field, const UnicodeString& value); - void populate(int32_t field, UChar repeatChar, int32_t repeatCount); - UBool isFieldEmpty(int32_t field) const; - UnicodeString& appendTo(UnicodeString& string) const; - UnicodeString& appendFieldTo(int32_t field, UnicodeString& string) const; - UChar getFirstChar() const; - inline UBool operator==(const SkeletonFields& other) const; - inline UBool operator!=(const SkeletonFields& other) const; - -private: - int8_t chars[UDATPG_FIELD_COUNT]; - int8_t lengths[UDATPG_FIELD_COUNT]; -}; - -inline UBool SkeletonFields::operator==(const SkeletonFields& other) const { - return (uprv_memcmp(chars, other.chars, sizeof(chars)) == 0 - && uprv_memcmp(lengths, other.lengths, sizeof(lengths)) == 0); -} - -inline UBool SkeletonFields::operator!=(const SkeletonFields& other) const { - return (! operator==(other)); -} - -class PtnSkeleton : public UMemory { -public: - int32_t type[UDATPG_FIELD_COUNT]; - SkeletonFields original; - SkeletonFields baseOriginal; - UBool addedDefaultDayPeriod; - - PtnSkeleton(); - PtnSkeleton(const PtnSkeleton& other); - void copyFrom(const PtnSkeleton& other); - void clear(); - UBool equals(const PtnSkeleton& other) const; - UnicodeString getSkeleton() const; - UnicodeString getBaseSkeleton() const; - UChar getFirstChar() const; - - // TODO: Why is this virtual, as well as the other destructors in this file? We don't want - // vtables when we don't use class objects polymorphically. - virtual ~PtnSkeleton(); -}; - -class PtnElem : public UMemory { -public: - UnicodeString basePattern; - LocalPointer<PtnSkeleton> skeleton; - UnicodeString pattern; - UBool skeletonWasSpecified; // if specified in availableFormats, not derived - LocalPointer<PtnElem> next; - - PtnElem(const UnicodeString &basePattern, const UnicodeString &pattern); - virtual ~PtnElem(); -}; - -class FormatParser : public UMemory { -public: - UnicodeString items[MAX_DT_TOKEN]; - int32_t itemNumber; - - FormatParser(); - virtual ~FormatParser(); - void set(const UnicodeString& patternString); - void getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex); - UBool isPatternSeparator(const UnicodeString& field) const; - static UBool isQuoteLiteral(const UnicodeString& s); - static int32_t getCanonicalIndex(const UnicodeString& s) { return getCanonicalIndex(s, TRUE); } - static int32_t getCanonicalIndex(const UnicodeString& s, UBool strict); - -private: - typedef enum TokenStatus { - START, - ADD_TOKEN, - SYNTAX_ERROR, - DONE - } TokenStatus; - - TokenStatus status; - virtual TokenStatus setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len); -}; - -class DistanceInfo : public UMemory { -public: - int32_t missingFieldMask; - int32_t extraFieldMask; - - DistanceInfo() {} - virtual ~DistanceInfo(); - void clear() { missingFieldMask = extraFieldMask = 0; } - void setTo(const DistanceInfo& other); - void addMissing(int32_t field) { missingFieldMask |= (1<<field); } - void addExtra(int32_t field) { extraFieldMask |= (1<<field); } -}; - -class DateTimeMatcher: public UMemory { -public: - PtnSkeleton skeleton; - - void getBasePattern(UnicodeString& basePattern); - UnicodeString getPattern(); - void set(const UnicodeString& pattern, FormatParser* fp); - void set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton& skeleton); - void copyFrom(const PtnSkeleton& skeleton); - void copyFrom(); - PtnSkeleton* getSkeletonPtr(); - UBool equals(const DateTimeMatcher* other) const; - int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const; - DateTimeMatcher(); - DateTimeMatcher(const DateTimeMatcher& other); - virtual ~DateTimeMatcher(); - int32_t getFieldMask() const; -}; - -class PatternMap : public UMemory { -public: - PtnElem *boot[MAX_PATTERN_ENTRIES]; - PatternMap(); - virtual ~PatternMap(); - void add(const UnicodeString& basePattern, const PtnSkeleton& skeleton, const UnicodeString& value, UBool skeletonWasSpecified, UErrorCode& status); - const UnicodeString* getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const; - const UnicodeString* getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0) const; - void copyFrom(const PatternMap& other, UErrorCode& status); - PtnElem* getHeader(UChar baseChar) const; - UBool equals(const PatternMap& other) const; -private: - UBool isDupAllowed; - PtnElem* getDuplicateElem(const UnicodeString& basePattern, const PtnSkeleton& skeleton, PtnElem *baseElem); -}; // end PatternMap - -class PatternMapIterator : public UMemory { -public: - PatternMapIterator(UErrorCode &status); - virtual ~PatternMapIterator(); - void set(PatternMap& patternMap); - PtnSkeleton* getSkeleton() const; - UBool hasNext() const; - DateTimeMatcher& next(); -private: - int32_t bootIndex; - PtnElem *nodePtr; - LocalPointer<DateTimeMatcher> matcher; - PatternMap *patternMap; -}; - -class DTSkeletonEnumeration : public StringEnumeration { -public: - DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum type, UErrorCode& status); - virtual ~DTSkeletonEnumeration(); - static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; -private: - int32_t pos; - UBool isCanonicalItem(const UnicodeString& item); - LocalPointer<UVector> fSkeletons; -}; - -class DTRedundantEnumeration : public StringEnumeration { -public: - DTRedundantEnumeration(); - virtual ~DTRedundantEnumeration(); - static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; - void add(const UnicodeString &pattern, UErrorCode& status); -private: - int32_t pos; - UBool isCanonicalItem(const UnicodeString& item) const; - LocalPointer<UVector> fPatterns; -}; - -U_NAMESPACE_END - -#endif |