diff options
author | vvvv <vvvv@yandex-team.ru> | 2022-02-11 19:00:01 +0300 |
---|---|---|
committer | vvvv <vvvv@yandex-team.ru> | 2022-02-11 19:00:01 +0300 |
commit | 4f5398551111a2b05b55de391d5d296bd0a670bf (patch) | |
tree | 422aa536507b05260da88883c27d1c9742a292fd /contrib/libs/icu/i18n/nfsubs.h | |
parent | 0d99fc6efe15562b8474a702ab18e406ac102cdf (diff) | |
download | ydb-4f5398551111a2b05b55de391d5d296bd0a670bf.tar.gz |
YQL-13794 remove most of boost & ICU dependency
ref:eae1a1c30940ed737c886518182fd97bd872667d
Diffstat (limited to 'contrib/libs/icu/i18n/nfsubs.h')
-rw-r--r-- | contrib/libs/icu/i18n/nfsubs.h | 262 |
1 files changed, 0 insertions, 262 deletions
diff --git a/contrib/libs/icu/i18n/nfsubs.h b/contrib/libs/icu/i18n/nfsubs.h deleted file mode 100644 index 948627c0cc..0000000000 --- a/contrib/libs/icu/i18n/nfsubs.h +++ /dev/null @@ -1,262 +0,0 @@ -// © 2016 and later: Unicode, Inc. and others. -// License & terms of use: http://www.unicode.org/copyright.html -/* -****************************************************************************** -* Copyright (C) 1997-2015, International Business Machines -* Corporation and others. All Rights Reserved. -****************************************************************************** -* file name: nfsubs.h -* encoding: UTF-8 -* tab size: 8 (not used) -* indentation:4 -* -* Modification history -* Date Name Comments -* 10/11/2001 Doug Ported from ICU4J -*/ - -#ifndef NFSUBS_H -#define NFSUBS_H - -#include "unicode/utypes.h" -#include "unicode/uobject.h" -#include "nfrule.h" - -#if U_HAVE_RBNF - -#include "unicode/utypes.h" -#include "unicode/decimfmt.h" -#include "nfrs.h" -#include <float.h> - -U_NAMESPACE_BEGIN - -class NFSubstitution : public UObject { - int32_t pos; - const NFRuleSet* ruleSet; - DecimalFormat* numberFormat; - -protected: - NFSubstitution(int32_t pos, - const NFRuleSet* ruleSet, - const UnicodeString& description, - UErrorCode& status); - - /** - * Get the Ruleset of the object. - * @return the Ruleset of the object. - */ - const NFRuleSet* getRuleSet() const { return ruleSet; } - - /** - * get the NumberFormat of this object. - * @return the numberformat of this object. - */ - const DecimalFormat* getNumberFormat() const { return numberFormat; } - -public: - static NFSubstitution* makeSubstitution(int32_t pos, - const NFRule* rule, - const NFRule* predecessor, - const NFRuleSet* ruleSet, - const RuleBasedNumberFormat* rbnf, - const UnicodeString& description, - UErrorCode& status); - - /** - * Destructor. - */ - virtual ~NFSubstitution(); - - /** - * Return true if the given Format objects are semantically equal. - * Objects of different subclasses are considered unequal. - * @param rhs the object to be compared with. - * @return true if the given Format objects are semantically equal. - */ - virtual UBool operator==(const NFSubstitution& rhs) const; - - /** - * Return true if the given Format objects are semantically unequal. - * Objects of different subclasses are considered unequal. - * @param rhs the object to be compared with. - * @return true if the given Format objects are semantically unequal. - */ - UBool operator!=(const NFSubstitution& rhs) const { return !operator==(rhs); } - - /** - * Sets the substitution's divisor. Used by NFRule.setBaseValue(). - * A no-op for all substitutions except multiplier and modulus - * substitutions. - * @param radix The radix of the divisor - * @param exponent The exponent of the divisor - */ - virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status); - - /** - * Replaces result with the string describing the substitution. - * @param result Output param which will receive the string. - */ - virtual void toString(UnicodeString& result) const; - - void setDecimalFormatSymbols(const DecimalFormatSymbols &newSymbols, UErrorCode& status); - - //----------------------------------------------------------------------- - // formatting - //----------------------------------------------------------------------- - - /** - * Performs a mathematical operation on the number, formats it using - * either ruleSet or decimalFormat, and inserts the result into - * toInsertInto. - * @param number The number being formatted. - * @param toInsertInto The string we insert the result into - * @param pos The position in toInsertInto where the owning rule's - * rule text begins (this value is added to this substitution's - * position to determine exactly where to insert the new text) - */ - virtual void doSubstitution(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - - /** - * Performs a mathematical operation on the number, formats it using - * either ruleSet or decimalFormat, and inserts the result into - * toInsertInto. - * @param number The number being formatted. - * @param toInsertInto The string we insert the result into - * @param pos The position in toInsertInto where the owning rule's - * rule text begins (this value is added to this substitution's - * position to determine exactly where to insert the new text) - */ - virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - -protected: - /** - * Subclasses override this function to perform some kind of - * mathematical operation on the number. The result of this operation - * is formatted using the rule set or DecimalFormat that this - * substitution refers to, and the result is inserted into the result - * string. - * @param The number being formatted - * @return The result of performing the opreration on the number - */ - virtual int64_t transformNumber(int64_t number) const = 0; - - /** - * Subclasses override this function to perform some kind of - * mathematical operation on the number. The result of this operation - * is formatted using the rule set or DecimalFormat that this - * substitution refers to, and the result is inserted into the result - * string. - * @param The number being formatted - * @return The result of performing the opreration on the number - */ - virtual double transformNumber(double number) const = 0; - -public: - //----------------------------------------------------------------------- - // parsing - //----------------------------------------------------------------------- - - /** - * Parses a string using the rule set or DecimalFormat belonging - * to this substitution. If there's a match, a mathematical - * operation (the inverse of the one used in formatting) is - * performed on the result of the parse and the value passed in - * and returned as the result. The parse position is updated to - * point to the first unmatched character in the string. - * @param text The string to parse - * @param parsePosition On entry, ignored, but assumed to be 0. - * On exit, this is updated to point to the first unmatched - * character (or 0 if the substitution didn't match) - * @param baseValue A partial parse result that should be - * combined with the result of this parse - * @param upperBound When searching the rule set for a rule - * matching the string passed in, only rules with base values - * lower than this are considered - * @param lenientParse If true and matching against rules fails, - * the substitution will also try matching the text against - * numerals using a default-costructed NumberFormat. If false, - * no extra work is done. (This value is false whenever the - * formatter isn't in lenient-parse mode, but is also false - * under some conditions even when the formatter _is_ in - * lenient-parse mode.) - * @return If there's a match, this is the result of composing - * baseValue with whatever was returned from matching the - * characters. This will be either a Long or a Double. If there's - * no match this is new Long(0) (not null), and parsePosition - * is left unchanged. - */ - virtual UBool doParse(const UnicodeString& text, - ParsePosition& parsePosition, - double baseValue, - double upperBound, - UBool lenientParse, - uint32_t nonNumericalExecutedRuleMask, - Formattable& result) const; - - /** - * Derives a new value from the two values passed in. The two values - * are typically either the base values of two rules (the one containing - * the substitution and the one matching the substitution) or partial - * parse results derived in some other way. The operation is generally - * the inverse of the operation performed by transformNumber(). - * @param newRuleValue The value produced by matching this substitution - * @param oldRuleValue The value that was passed to the substitution - * by the rule that owns it - * @return A third value derived from the other two, representing a - * partial parse result - */ - virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const = 0; - - /** - * Calculates an upper bound when searching for a rule that matches - * this substitution. Rules with base values greater than or equal - * to upperBound are not considered. - * @param oldUpperBound The current upper-bound setting. The new - * upper bound can't be any higher. - * @return the upper bound when searching for a rule that matches - * this substitution. - */ - virtual double calcUpperBound(double oldUpperBound) const = 0; - - //----------------------------------------------------------------------- - // simple accessors - //----------------------------------------------------------------------- - - /** - * Returns the substitution's position in the rule that owns it. - * @return The substitution's position in the rule that owns it. - */ - int32_t getPos() const { return pos; } - - /** - * Returns the character used in the textual representation of - * substitutions of this type. Used by toString(). - * @return This substitution's token character. - */ - virtual UChar tokenChar() const = 0; - - /** - * Returns true if this is a modulus substitution. (We didn't do this - * with instanceof partially because it causes source files to - * proliferate and partially because we have to port this to C++.) - * @return true if this object is an instance of ModulusSubstitution - */ - virtual UBool isModulusSubstitution() const; - -private: - NFSubstitution(const NFSubstitution &other); // forbid copying of this class - NFSubstitution &operator=(const NFSubstitution &other); // forbid copying of this class - -public: - static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; -}; - -U_NAMESPACE_END - -/* U_HAVE_RBNF */ -#endif - -// NFSUBS_H -#endif |