summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/i18n/numparse_scientific.h
diff options
context:
space:
mode:
Diffstat (limited to 'intl/icu/source/i18n/numparse_scientific.h')
-rw-r--r--intl/icu/source/i18n/numparse_scientific.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/intl/icu/source/i18n/numparse_scientific.h b/intl/icu/source/i18n/numparse_scientific.h
new file mode 100644
index 0000000000..5617c0c6a6
--- /dev/null
+++ b/intl/icu/source/i18n/numparse_scientific.h
@@ -0,0 +1,47 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_SCIENTIFIC_H__
+#define __NUMPARSE_SCIENTIFIC_H__
+
+#include "numparse_types.h"
+#include "numparse_decimal.h"
+#include "numparse_symbols.h"
+#include "unicode/numberformatter.h"
+
+using icu::number::impl::Grouper;
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+
+
+class ScientificMatcher : public NumberParseMatcher, public UMemory {
+ public:
+ ScientificMatcher() = default; // WARNING: Leaves the object in an unusable state
+
+ ScientificMatcher(const DecimalFormatSymbols& dfs, const Grouper& grouper);
+
+ bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
+
+ bool smokeTest(const StringSegment& segment) const override;
+
+ UnicodeString toString() const override;
+
+ private:
+ UnicodeString fExponentSeparatorString;
+ DecimalMatcher fExponentMatcher;
+ IgnorablesMatcher fIgnorablesMatcher;
+ UnicodeString fCustomMinusSign;
+ UnicodeString fCustomPlusSign;
+};
+
+
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_SCIENTIFIC_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */