chromium/third_party/icu/source/common/messagepattern.cpp

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*   Copyright (C) 2011-2012, International Business Machines
*   Corporation and others.  All Rights Reserved.
*******************************************************************************
*   file name:  messagepattern.cpp
*   encoding:   UTF-8
*   tab size:   8 (not used)
*   indentation:4
*
*   created on: 2011mar14
*   created by: Markus W. Scherer
*/

#include "unicode/utypes.h"

#if !UCONFIG_NO_FORMATTING

#include "unicode/messagepattern.h"
#include "unicode/unistr.h"
#include "unicode/utf16.h"
#include "cmemory.h"
#include "cstring.h"
#include "messageimpl.h"
#include "patternprops.h"
#include "putilimp.h"
#include "uassert.h"

U_NAMESPACE_BEGIN

// Unicode character/code point constants ---------------------------------- ***

static const char16_t u_pound=;
static const char16_t u_apos=;
static const char16_t u_plus=;
static const char16_t u_comma=;
static const char16_t u_minus=;
static const char16_t u_dot=;
static const char16_t u_colon=;
static const char16_t u_lessThan=;
static const char16_t u_equal=;
static const char16_t u_A=;
static const char16_t u_C=;
static const char16_t u_D=;
static const char16_t u_E=;
static const char16_t u_H=;
static const char16_t u_I=;
static const char16_t u_L=;
static const char16_t u_N=;
static const char16_t u_O=;
static const char16_t u_P=;
static const char16_t u_R=;
static const char16_t u_S=;
static const char16_t u_T=;
static const char16_t u_U=;
static const char16_t u_Z=;
static const char16_t u_a=;
static const char16_t u_c=;
static const char16_t u_d=;
static const char16_t u_e=;
static const char16_t u_f=;
static const char16_t u_h=;
static const char16_t u_i=;
static const char16_t u_l=;
static const char16_t u_n=;
static const char16_t u_o=;
static const char16_t u_p=;
static const char16_t u_r=;
static const char16_t u_s=;
static const char16_t u_t=;
static const char16_t u_u=;
static const char16_t u_z=;
static const char16_t u_leftCurlyBrace=;
static const char16_t u_pipe=;
static const char16_t u_rightCurlyBrace=;
static const char16_t u_lessOrEqual=;  // U+2264 is <=

static const char16_t kOffsetColon[]=;

static const char16_t kOther[]=;

// MessagePatternList ------------------------------------------------------ ***

template<typename T, int32_t stackCapacity>
class MessagePatternList : public UMemory {};

template<typename T, int32_t stackCapacity>
void
MessagePatternList<T, stackCapacity>::copyFrom(
        const MessagePatternList<T, stackCapacity> &other,
        int32_t length,
        UErrorCode &errorCode) {}

template<typename T, int32_t stackCapacity>
UBool
MessagePatternList<T, stackCapacity>::ensureCapacityForOneMore(int32_t oldLength, UErrorCode &errorCode) {}

// MessagePatternList specializations -------------------------------------- ***

class MessagePatternDoubleList : public MessagePatternList<double, 8> {};

class MessagePatternPartsList : public MessagePatternList<MessagePattern::Part, 32> {};

// MessagePattern constructors etc. ---------------------------------------- ***

MessagePattern::MessagePattern(UErrorCode &errorCode)
        :{}

MessagePattern::MessagePattern(UMessagePatternApostropheMode mode, UErrorCode &errorCode)
        :{}

MessagePattern::MessagePattern(const UnicodeString &pattern, UParseError *parseError, UErrorCode &errorCode)
        :{}

UBool
MessagePattern::init(UErrorCode &errorCode) {}

MessagePattern::MessagePattern(const MessagePattern &other)
        :{}

MessagePattern &
MessagePattern::operator=(const MessagePattern &other) {}

UBool
MessagePattern::copyStorage(const MessagePattern &other, UErrorCode &errorCode) {}

MessagePattern::~MessagePattern() {}

// MessagePattern API ------------------------------------------------------ ***

MessagePattern &
MessagePattern::parse(const UnicodeString &pattern, UParseError *parseError, UErrorCode &errorCode) {}

MessagePattern &
MessagePattern::parseChoiceStyle(const UnicodeString &pattern,
                                 UParseError *parseError, UErrorCode &errorCode) {}

MessagePattern &
MessagePattern::parsePluralStyle(const UnicodeString &pattern,
                                 UParseError *parseError, UErrorCode &errorCode) {}

MessagePattern &
MessagePattern::parseSelectStyle(const UnicodeString &pattern,
                                 UParseError *parseError, UErrorCode &errorCode) {}

void
MessagePattern::clear() {}

bool
MessagePattern::operator==(const MessagePattern &other) const {}

int32_t
MessagePattern::hashCode() const {}

int32_t
MessagePattern::validateArgumentName(const UnicodeString &name) {}

UnicodeString
MessagePattern::autoQuoteApostropheDeep() const {}

double
MessagePattern::getNumericValue(const Part &part) const {}

/**
  * Returns the "offset:" value of a PluralFormat argument, or 0 if none is specified.
  * @param pluralStart the index of the first PluralFormat argument style part. (0..countParts()-1)
  * @return the "offset:" value.
  * @draft ICU 4.8
  */
double
MessagePattern::getPluralOffset(int32_t pluralStart) const {}

// MessagePattern::Part ---------------------------------------------------- ***

bool
MessagePattern::Part::operator==(const Part &other) const {}

// MessagePattern parser --------------------------------------------------- ***

void
MessagePattern::preParse(const UnicodeString &pattern, UParseError *parseError, UErrorCode &errorCode) {}

void
MessagePattern::postParse() {}

int32_t
MessagePattern::parseMessage(int32_t index, int32_t msgStartLength,
                             int32_t nestingLevel, UMessagePatternArgType parentType,
                             UParseError *parseError, UErrorCode &errorCode) {}

int32_t
MessagePattern::parseArg(int32_t index, int32_t argStartLength, int32_t nestingLevel,
                         UParseError *parseError, UErrorCode &errorCode) {}

int32_t
MessagePattern::parseSimpleStyle(int32_t index, UParseError *parseError, UErrorCode &errorCode) {}

int32_t
MessagePattern::parseChoiceStyle(int32_t index, int32_t nestingLevel,
                                 UParseError *parseError, UErrorCode &errorCode) {}

int32_t
MessagePattern::parsePluralOrSelectStyle(UMessagePatternArgType argType,
                                         int32_t index, int32_t nestingLevel,
                                         UParseError *parseError, UErrorCode &errorCode) {}

int32_t
MessagePattern::parseArgNumber(const UnicodeString &s, int32_t start, int32_t limit) {}

void
MessagePattern::parseDouble(int32_t start, int32_t limit, UBool allowInfinity,
                            UParseError *parseError, UErrorCode &errorCode) {}

int32_t
MessagePattern::skipWhiteSpace(int32_t index) {}

int32_t
MessagePattern::skipIdentifier(int32_t index) {}

int32_t
MessagePattern::skipDouble(int32_t index) {}

UBool
MessagePattern::isArgTypeChar(UChar32 c) {}

UBool
MessagePattern::isChoice(int32_t index) {}

UBool
MessagePattern::isPlural(int32_t index) {}

UBool
MessagePattern::isSelect(int32_t index) {}

UBool
MessagePattern::isOrdinal(int32_t index) {}

UBool
MessagePattern::inMessageFormatPattern(int32_t nestingLevel) {}

UBool
MessagePattern::inTopLevelChoiceMessage(int32_t nestingLevel, UMessagePatternArgType parentType) {}

void
MessagePattern::addPart(UMessagePatternPartType type, int32_t index, int32_t length,
                        int32_t value, UErrorCode &errorCode) {}

void
MessagePattern::addLimitPart(int32_t start,
                             UMessagePatternPartType type, int32_t index, int32_t length,
                             int32_t value, UErrorCode &errorCode) {}

void
MessagePattern::addArgDoublePart(double numericValue, int32_t start, int32_t length,
                                 UErrorCode &errorCode) {}

void
MessagePattern::setParseError(UParseError *parseError, int32_t index) {}

// MessageImpl ------------------------------------------------------------- ***

void
MessageImpl::appendReducedApostrophes(const UnicodeString &s, int32_t start, int32_t limit,
                                      UnicodeString &sb) {}

// Ported from second half of ICU4J SelectFormat.format(String).
UnicodeString &
MessageImpl::appendSubMessageWithoutSkipSyntax(const MessagePattern &msgPattern,
                                               int32_t msgStart,
                                               UnicodeString &result) {}

U_NAMESPACE_END

#endif  // !UCONFIG_NO_FORMATTING