summaryrefslogtreecommitdiff
path: root/deps/node/deps/icu-small/source/i18n/selfmt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/icu-small/source/i18n/selfmt.cpp')
-rw-r--r--deps/node/deps/icu-small/source/i18n/selfmt.cpp197
1 files changed, 0 insertions, 197 deletions
diff --git a/deps/node/deps/icu-small/source/i18n/selfmt.cpp b/deps/node/deps/icu-small/source/i18n/selfmt.cpp
deleted file mode 100644
index 29aee364..00000000
--- a/deps/node/deps/icu-small/source/i18n/selfmt.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/********************************************************************
- * COPYRIGHT:
- * Copyright (c) 1997-2012, International Business Machines Corporation and
- * others. All Rights Reserved.
- * Copyright (C) 2010 , Yahoo! Inc.
- ********************************************************************
- *
- * File SELFMT.CPP
- *
- * Modification History:
- *
- * Date Name Description
- * 11/11/09 kirtig Finished first cut of implementation.
- * 11/16/09 kirtig Improved version
- ********************************************************************/
-
-#include "utypeinfo.h" // for 'typeid' to work
-
-#include "unicode/messagepattern.h"
-#include "unicode/rbnf.h"
-#include "unicode/selfmt.h"
-#include "unicode/uchar.h"
-#include "unicode/ucnv_err.h"
-#include "unicode/umsg.h"
-#include "unicode/ustring.h"
-#include "unicode/utypes.h"
-#include "cmemory.h"
-#include "messageimpl.h"
-#include "patternprops.h"
-#include "selfmtimpl.h"
-#include "uassert.h"
-#include "ustrfmt.h"
-#include "util.h"
-#include "uvector.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SelectFormat)
-
-static const UChar SELECT_KEYWORD_OTHER[] = {LOW_O, LOW_T, LOW_H, LOW_E, LOW_R, 0};
-
-SelectFormat::SelectFormat(const UnicodeString& pat,
- UErrorCode& status) : msgPattern(status) {
- applyPattern(pat, status);
-}
-
-SelectFormat::SelectFormat(const SelectFormat& other) : Format(other),
- msgPattern(other.msgPattern) {
-}
-
-SelectFormat::~SelectFormat() {
-}
-
-void
-SelectFormat::applyPattern(const UnicodeString& newPattern, UErrorCode& status) {
- if (U_FAILURE(status)) {
- return;
- }
-
- msgPattern.parseSelectStyle(newPattern, NULL, status);
- if (U_FAILURE(status)) {
- msgPattern.clear();
- }
-}
-
-UnicodeString&
-SelectFormat::format(const Formattable& obj,
- UnicodeString& appendTo,
- FieldPosition& pos,
- UErrorCode& status) const
-{
- if (U_FAILURE(status)) {
- return appendTo;
- }
- if (obj.getType() == Formattable::kString) {
- return format(obj.getString(status), appendTo, pos, status);
- } else {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- return appendTo;
- }
-}
-
-UnicodeString&
-SelectFormat::format(const UnicodeString& keyword,
- UnicodeString& appendTo,
- FieldPosition& /*pos */,
- UErrorCode& status) const {
- if (U_FAILURE(status)) {
- return appendTo;
- }
- // Check for the validity of the keyword
- if (!PatternProps::isIdentifier(keyword.getBuffer(), keyword.length())) {
- status = U_ILLEGAL_ARGUMENT_ERROR; // Invalid formatting argument.
- }
- if (msgPattern.countParts() == 0) {
- status = U_INVALID_STATE_ERROR;
- return appendTo;
- }
- int32_t msgStart = findSubMessage(msgPattern, 0, keyword, status);
- if (!MessageImpl::jdkAposMode(msgPattern)) {
- int32_t patternStart = msgPattern.getPart(msgStart).getLimit();
- int32_t msgLimit = msgPattern.getLimitPartIndex(msgStart);
- appendTo.append(msgPattern.getPatternString(),
- patternStart,
- msgPattern.getPatternIndex(msgLimit) - patternStart);
- return appendTo;
- }
- // JDK compatibility mode: Remove SKIP_SYNTAX.
- return MessageImpl::appendSubMessageWithoutSkipSyntax(msgPattern, msgStart, appendTo);
-}
-
-UnicodeString&
-SelectFormat::toPattern(UnicodeString& appendTo) {
- if (0 == msgPattern.countParts()) {
- appendTo.setToBogus();
- } else {
- appendTo.append(msgPattern.getPatternString());
- }
- return appendTo;
-}
-
-
-int32_t SelectFormat::findSubMessage(const MessagePattern& pattern, int32_t partIndex,
- const UnicodeString& keyword, UErrorCode& ec) {
- if (U_FAILURE(ec)) {
- return 0;
- }
- UnicodeString other(FALSE, SELECT_KEYWORD_OTHER, 5);
- int32_t count = pattern.countParts();
- int32_t msgStart=0;
- // Iterate over (ARG_SELECTOR, message) pairs until ARG_LIMIT or end of select-only pattern.
- do {
- const MessagePattern::Part& part=pattern.getPart(partIndex++);
- const UMessagePatternPartType type=part.getType();
- if(type==UMSGPAT_PART_TYPE_ARG_LIMIT) {
- break;
- }
- // part is an ARG_SELECTOR followed by a message
- if(pattern.partSubstringMatches(part, keyword)) {
- // keyword matches
- return partIndex;
- } else if(msgStart==0 && pattern.partSubstringMatches(part, other)) {
- msgStart=partIndex;
- }
- partIndex=pattern.getLimitPartIndex(partIndex);
- } while(++partIndex<count);
- return msgStart;
-}
-
-Format* SelectFormat::clone() const
-{
- return new SelectFormat(*this);
-}
-
-SelectFormat&
-SelectFormat::operator=(const SelectFormat& other) {
- if (this != &other) {
- msgPattern = other.msgPattern;
- }
- return *this;
-}
-
-UBool
-SelectFormat::operator==(const Format& other) const {
- if (this == &other) {
- return TRUE;
- }
- if (!Format::operator==(other)) {
- return FALSE;
- }
- const SelectFormat& o = (const SelectFormat&)other;
- return msgPattern == o.msgPattern;
-}
-
-UBool
-SelectFormat::operator!=(const Format& other) const {
- return !operator==(other);
-}
-
-void
-SelectFormat::parseObject(const UnicodeString& /*source*/,
- Formattable& /*result*/,
- ParsePosition& pos) const
-{
- // Parsing not supported.
- pos.setErrorIndex(pos.getIndex());
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-//eof