// An empty AndConstraint, created by a rule with a keyword but no following expression.
return TRUE;
}
- double n = number.getPluralOperand(digitsType); // pulls n | i | v | f value for the number.
+
+ PluralOperand operand = tokenTypeToPluralOperand(digitsType);
+ double n = number.getPluralOperand(operand); // pulls n | i | v | f value for the number.
// Will always be positive.
// May be non-integer (n option only)
do {
PluralKeywordEnumeration::~PluralKeywordEnumeration() {
}
+PluralOperand tokenTypeToPluralOperand(tokenType tt) {
+ switch(tt) {
+ case tVariableN:
+ return PLURAL_OPERAND_N;
+ case tVariableI:
+ return PLURAL_OPERAND_I;
+ case tVariableF:
+ return PLURAL_OPERAND_F;
+ case tVariableV:
+ return PLURAL_OPERAND_V;
+ case tVariableT:
+ return PLURAL_OPERAND_T;
+ default:
+ U_ASSERT(FALSE); // unexpected.
+ return PLURAL_OPERAND_N;
+ }
+}
+
IFixedDecimal::~IFixedDecimal() = default;
FixedDecimal::FixedDecimal(const VisibleDigits &digits) {
PLURAL_OPERAND_J
};
+/**
+ * Converts from the tokenType enum to PluralOperand. Asserts that the given
+ * tokenType can be mapped to a PluralOperand.
+ */
+PluralOperand tokenTypeToPluralOperand(tokenType tt);
+
/**
* An interface to FixedDecimal, allowing for other implementations.
* @internal
*/
virtual double getPluralOperand(PluralOperand operand) const = 0;
- /** Converts from the tokenType enum to PluralOperand. */
- virtual double getPluralOperand(tokenType tt) const {
- switch(tt) {
- case tVariableN:
- return getPluralOperand(PLURAL_OPERAND_N);
- case tVariableI:
- return getPluralOperand(PLURAL_OPERAND_I);
- case tVariableF:
- return getPluralOperand(PLURAL_OPERAND_F);
- case tVariableV:
- return getPluralOperand(PLURAL_OPERAND_V);
- case tVariableT:
- return getPluralOperand(PLURAL_OPERAND_T);
- default:
- U_ASSERT(FALSE); // unexpected.
- return 0.0;
- }
- }
-
virtual bool isNaN() const = 0;
virtual bool isInfinite() const = 0;