scuffed-code/icu4c/source/i18n/quant.h
2001-10-08 23:26:58 +00:00

66 lines
1.5 KiB
C++

/*
* Copyright (C) 2001, International Business Machines Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
* 07/26/01 aliu Creation.
**********************************************************************
*/
#ifndef QUANT_H
#define QUANT_H
#include "unicode/unimatch.h"
U_NAMESPACE_BEGIN
class Quantifier : public UnicodeMatcher {
public:
enum { MAX = 0x7FFFFFFF };
Quantifier(UnicodeMatcher *adopted,
uint32_t minCount, uint32_t maxCount);
Quantifier(const Quantifier& o);
virtual ~Quantifier();
/**
* Implement UnicodeMatcher
*/
virtual UnicodeMatcher* clone() const;
/**
* Implement UnicodeMatcher
*/
virtual UMatchDegree matches(const Replaceable& text,
int32_t& offset,
int32_t limit,
UBool incremental) const;
/**
* Implement UnicodeMatcher
*/
virtual UnicodeString& toPattern(UnicodeString& result,
UBool escapeUnprintable = FALSE) const;
/**
* Implement UnicodeMatcher
*/
virtual UBool matchesIndexValue(uint8_t v) const;
private:
static void appendNumber(UnicodeString& result, int32_t n);
UnicodeMatcher* matcher; // owned
uint32_t minCount;
uint32_t maxCount;
};
U_NAMESPACE_END
#endif