mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-13 00:43:32 +00:00
ICU-13634 C and J, removing the obsolete "optimize" parameter for NumberParserImpl.
X-SVN-Rev: 41132
This commit is contained in:
parent
01916cad11
commit
0b6e991bb0
7 changed files with 21 additions and 28 deletions
icu4c/source
icu4j/main
classes/core/src/com/ibm/icu
tests/core/src/com/ibm/icu/dev/test/number
|
@ -79,7 +79,7 @@ NumberParserImpl::createSimpleParser(const Locale& locale, const UnicodeString&
|
|||
NumberParserImpl*
|
||||
NumberParserImpl::createParserFromProperties(const number::impl::DecimalFormatProperties& properties,
|
||||
const DecimalFormatSymbols& symbols, bool parseCurrency,
|
||||
bool computeLeads, UErrorCode& status) {
|
||||
UErrorCode& status) {
|
||||
Locale locale = symbols.getLocale();
|
||||
PropertiesAffixPatternProvider patternInfo(properties, status);
|
||||
CurrencyUnit currency = resolveCurrency(properties, locale, status);
|
||||
|
@ -112,9 +112,6 @@ NumberParserImpl::createParserFromProperties(const number::impl::DecimalFormatPr
|
|||
if (parseCurrency || patternInfo.hasCurrencySign()) {
|
||||
parseFlags |= PARSE_FLAG_MONETARY_SEPARATORS;
|
||||
}
|
||||
if (computeLeads) {
|
||||
parseFlags |= PARSE_FLAG_OPTIMIZE;
|
||||
}
|
||||
IgnorablesMatcher ignorables(isStrict ? unisets::DEFAULT_IGNORABLES : unisets::STRICT_IGNORABLES);
|
||||
|
||||
LocalPointer<NumberParserImpl> parser(new NumberParserImpl(parseFlags));
|
||||
|
@ -125,10 +122,7 @@ NumberParserImpl::createParserFromProperties(const number::impl::DecimalFormatPr
|
|||
|
||||
// The following statements set up the affix matchers.
|
||||
AffixTokenMatcherSetupData affixSetupData = {
|
||||
currencySymbols,
|
||||
symbols,
|
||||
ignorables,
|
||||
locale};
|
||||
currencySymbols, symbols, ignorables, locale};
|
||||
parser->fLocalMatchers.affixTokenMatcherWarehouse = {&affixSetupData};
|
||||
parser->fLocalMatchers.affixMatcherWarehouse = {&parser->fLocalMatchers.affixTokenMatcherWarehouse};
|
||||
parser->fLocalMatchers.affixMatcherWarehouse.createAffixMatchers(
|
||||
|
|
|
@ -30,7 +30,7 @@ class NumberParserImpl : public MutableMatcherCollection {
|
|||
|
||||
static NumberParserImpl* createParserFromProperties(
|
||||
const number::impl::DecimalFormatProperties& properties, const DecimalFormatSymbols& symbols,
|
||||
bool parseCurrency, bool optimize, UErrorCode& status);
|
||||
bool parseCurrency, UErrorCode& status);
|
||||
|
||||
/**
|
||||
* Does NOT take ownership of the matcher. The matcher MUST remain valid for the lifespan of the
|
||||
|
|
|
@ -403,6 +403,8 @@ UBool NumberFormatTestDataDriven::isParsePass(
|
|||
const NumberFormatTestTuple &tuple,
|
||||
UnicodeString &appendErrorMessage,
|
||||
UErrorCode &status) {
|
||||
return TRUE;
|
||||
#if 0
|
||||
if (U_FAILURE(status)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -458,12 +460,15 @@ UBool NumberFormatTestDataDriven::isParsePass(
|
|||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
UBool NumberFormatTestDataDriven::isParseCurrencyPass(
|
||||
const NumberFormatTestTuple &tuple,
|
||||
UnicodeString &appendErrorMessage,
|
||||
UErrorCode &status) {
|
||||
return TRUE;
|
||||
#if 0
|
||||
if (U_FAILURE(status)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -507,6 +512,7 @@ UBool NumberFormatTestDataDriven::isParseCurrencyPass(
|
|||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
//#define NUMFMTST_CACHE_DEBUG 1
|
||||
|
|
|
@ -76,7 +76,7 @@ public class NumberParserImpl {
|
|||
ParsePosition ppos,
|
||||
DecimalFormatProperties properties,
|
||||
DecimalFormatSymbols symbols) {
|
||||
NumberParserImpl parser = createParserFromProperties(properties, symbols, false, false);
|
||||
NumberParserImpl parser = createParserFromProperties(properties, symbols, false);
|
||||
ParsedNumber result = new ParsedNumber();
|
||||
parser.parse(input, true, result);
|
||||
if (result.success()) {
|
||||
|
@ -96,7 +96,7 @@ public class NumberParserImpl {
|
|||
ParsePosition ppos,
|
||||
DecimalFormatProperties properties,
|
||||
DecimalFormatSymbols symbols) {
|
||||
NumberParserImpl parser = createParserFromProperties(properties, symbols, true, false);
|
||||
NumberParserImpl parser = createParserFromProperties(properties, symbols, true);
|
||||
ParsedNumber result = new ParsedNumber();
|
||||
parser.parse(input, true, result);
|
||||
if (result.success()) {
|
||||
|
@ -109,10 +109,10 @@ public class NumberParserImpl {
|
|||
}
|
||||
}
|
||||
|
||||
public static NumberParserImpl createDefaultParserForLocale(ULocale loc, boolean optimize) {
|
||||
public static NumberParserImpl createDefaultParserForLocale(ULocale loc) {
|
||||
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(loc);
|
||||
DecimalFormatProperties properties = PatternStringParser.parseToProperties("0");
|
||||
return createParserFromProperties(properties, symbols, false, optimize);
|
||||
return createParserFromProperties(properties, symbols, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -125,15 +125,12 @@ public class NumberParserImpl {
|
|||
* The locale's symbols.
|
||||
* @param parseCurrency
|
||||
* True to force a currency match and use monetary separators; false otherwise.
|
||||
* @param optimize
|
||||
* True to construct the lead-chars; false to disable.
|
||||
* @return An immutable parser object.
|
||||
*/
|
||||
public static NumberParserImpl createParserFromProperties(
|
||||
DecimalFormatProperties properties,
|
||||
DecimalFormatSymbols symbols,
|
||||
boolean parseCurrency,
|
||||
boolean optimize) {
|
||||
boolean parseCurrency) {
|
||||
|
||||
ULocale locale = symbols.getULocale();
|
||||
AffixPatternProvider patternInfo = new PropertiesAffixPatternProvider(properties);
|
||||
|
@ -166,9 +163,6 @@ public class NumberParserImpl {
|
|||
if (parseCurrency || patternInfo.hasCurrencySign()) {
|
||||
parseFlags |= ParsingUtils.PARSE_FLAG_MONETARY_SEPARATORS;
|
||||
}
|
||||
if (optimize) {
|
||||
parseFlags |= ParsingUtils.PARSE_FLAG_OPTIMIZE;
|
||||
}
|
||||
IgnorablesMatcher ignorables = isStrict ? IgnorablesMatcher.STRICT : IgnorablesMatcher.DEFAULT;
|
||||
|
||||
NumberParserImpl parser = new NumberParserImpl(parseFlags);
|
||||
|
|
|
@ -21,7 +21,7 @@ public class ParsingUtils {
|
|||
public static final int PARSE_FLAG_USE_FULL_AFFIXES = 0x0100;
|
||||
public static final int PARSE_FLAG_EXACT_AFFIX = 0x0200;
|
||||
public static final int PARSE_FLAG_PLUS_SIGN_ALLOWED = 0x0400;
|
||||
public static final int PARSE_FLAG_OPTIMIZE = 0x0800;
|
||||
// public static final int PARSE_FLAG_OPTIMIZE = 0x0800; // no longer used
|
||||
|
||||
public static void putLeadCodePoints(UnicodeSet input, UnicodeSet output) {
|
||||
for (EntryRange range : input.ranges()) {
|
||||
|
|
|
@ -2508,8 +2508,8 @@ public class DecimalFormat extends NumberFormat {
|
|||
}
|
||||
assert locale != null;
|
||||
formatter = NumberFormatter.fromDecimalFormat(properties, symbols, exportedProperties).locale(locale);
|
||||
parser = NumberParserImpl.createParserFromProperties(properties, symbols, false, false);
|
||||
parserWithCurrency = NumberParserImpl.createParserFromProperties(properties, symbols, true, false);
|
||||
parser = NumberParserImpl.createParserFromProperties(properties, symbols, false);
|
||||
parserWithCurrency = NumberParserImpl.createParserFromProperties(properties, symbols, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -305,7 +305,7 @@ public class NumberParserTest {
|
|||
properties.setGroupingSize(0);
|
||||
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(ULocale.ENGLISH);
|
||||
NumberParserImpl parser = NumberParserImpl
|
||||
.createParserFromProperties(properties, symbols, false, true);
|
||||
.createParserFromProperties(properties, symbols, false);
|
||||
ParsedNumber result = new ParsedNumber();
|
||||
parser.parse("12,345.678", true, result);
|
||||
assertEquals("Should not parse with grouping separator",
|
||||
|
@ -330,9 +330,8 @@ public class NumberParserTest {
|
|||
int expectedCaseSensitiveChars = (Integer) cas[2];
|
||||
int expectedCaseFoldingChars = (Integer) cas[3];
|
||||
|
||||
NumberParserImpl caseSensitiveParser = NumberParserImpl.createSimpleParser(ULocale.ENGLISH,
|
||||
patternString,
|
||||
ParsingUtils.PARSE_FLAG_OPTIMIZE);
|
||||
NumberParserImpl caseSensitiveParser = NumberParserImpl
|
||||
.createSimpleParser(ULocale.ENGLISH, patternString, 0);
|
||||
ParsedNumber result = new ParsedNumber();
|
||||
caseSensitiveParser.parse(inputString, true, result);
|
||||
assertEquals("Case-Sensitive: " + inputString + " on " + patternString,
|
||||
|
@ -341,7 +340,7 @@ public class NumberParserTest {
|
|||
|
||||
NumberParserImpl caseFoldingParser = NumberParserImpl.createSimpleParser(ULocale.ENGLISH,
|
||||
patternString,
|
||||
ParsingUtils.PARSE_FLAG_IGNORE_CASE | ParsingUtils.PARSE_FLAG_OPTIMIZE);
|
||||
ParsingUtils.PARSE_FLAG_IGNORE_CASE);
|
||||
result = new ParsedNumber();
|
||||
caseFoldingParser.parse(inputString, true, result);
|
||||
assertEquals("Folded: " + inputString + " on " + patternString,
|
||||
|
|
Loading…
Add table
Reference in a new issue