// © 2017 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * * Copyright (C) 1999-2012, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * file name: genprops.h * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * * created on: 1999dec13 * created by: Markus W. Scherer */ #ifndef __GENPROPS_H__ #define __GENPROPS_H__ #include #include "unicode/utypes.h" #include "unicode/uniset.h" #include "ppucd.h" #include "unewdata.h" #define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0])) class PropsBuilder { public: PropsBuilder(); virtual ~PropsBuilder(); virtual void setUnicodeVersion(const UVersionInfo version); virtual void setAlgNamesRange(UChar32 start, UChar32 end, const char *type, const char *prefix, UErrorCode &errorCode); virtual void setProps(const icu::UniProps &props, const icu::UnicodeSet &newValues, UErrorCode &errorCode); virtual void build(UErrorCode &errorCode); virtual void writeCSourceFile(const char *path, UErrorCode &errorCode); virtual void writeJavaSourceFile(const char *path, UErrorCode &errorCode); virtual void writeBinaryData(const char *path, UBool withCopyright, UErrorCode &errorCode); }; class PNamesBuilder : public PropsBuilder { public: virtual const icu::PropertyNames *getPropertyNames() = 0; }; PNamesBuilder *createPNamesBuilder(UErrorCode &errorCode); PropsBuilder *createCorePropsBuilder(UErrorCode &errorCode); PropsBuilder *createBiDiPropsBuilder(UErrorCode &errorCode); PropsBuilder *createCasePropsBuilder(UErrorCode &errorCode); PropsBuilder *createLayoutPropsBuilder(UErrorCode &errorCode); PropsBuilder *createNamesPropsBuilder(UErrorCode &errorCode); /* global flags */ extern UBool beVerbose; extern UBool beQuiet; #endif