// Export an explicit template instantiation of the MaybeStackArray that is used as a data member of ArraySeriesMatcher. // When building DLLs for Windows this is required even though no direct access to the MaybeStackArray leaks out of the i18n library. // (See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.) #if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN templateclass U_I18N_API MaybeStackArray<const numparse::impl::NumberParseMatcher*, 3>; #endif
namespace numparse::impl {
/** * Base class for AnyMatcher and SeriesMatcher.
*/ // Exported as U_I18N_API for tests class U_I18N_API CompositionMatcher : public NumberParseMatcher { protected: // No construction except by subclasses!
CompositionMatcher() = default;
// To be overridden by subclasses (used for iteration): virtualconst NumberParseMatcher* const* begin() const = 0;
// To be overridden by subclasses (used for iteration): virtualconst NumberParseMatcher* const* end() const = 0;
};
// NOTE: AnyMatcher is no longer being used. The previous definition is shown below. // The implementation can be found in SVN source control, deleted around March 30, 2018. ///** // * Composes a number of matchers, and succeeds if any of the matchers succeed. Always greedily chooses // * the first matcher in the list to succeed. // * // * NOTE: In C++, this is a base class, unlike ICU4J, which uses a factory-style interface. // * // * @author sffc // * @see SeriesMatcher // */ //class AnyMatcher : public CompositionMatcher { // public: // bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override; // // bool smokeTest(const StringSegment& segment) const override; // // void postProcess(ParsedNumber& result) const override; // // protected: // // No construction except by subclasses! // AnyMatcher() = default; //};
/** * Composes a number of matchers, running one after another. Matches the input string only if all of the * matchers in the series succeed. Performs greedy matches within the context of the series. * * @author sffc * @see AnyMatcher
*/ // Exported as U_I18N_API for tests class U_I18N_API SeriesMatcher : public CompositionMatcher { public: bool match(StringSegment& segment, ParsedNumber& result, UErrorCode& status) const override;
protected: // No construction except by subclasses!
SeriesMatcher() = default;
};
/** * An implementation of SeriesMatcher that references an array of matchers. * * The object adopts the array, but NOT the matchers contained inside the array.
*/ // Exported as U_I18N_API for tests class U_I18N_API ArraySeriesMatcher : public SeriesMatcher { public:
ArraySeriesMatcher(); // WARNING: Leaves the object in an unusable state
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.