// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html // // regexst.h // // Copyright (C) 2004-2015, International Business Machines Corporation and others. // All Rights Reserved. // // This file contains class RegexStaticSets // // This class is internal to the regular expression implementation. // For the public Regular Expression API, see the file "unicode/regex.h" // // RegexStaticSets groups together the common UnicodeSets that are needed // for compiling or executing RegularExpressions. This grouping simplifies // the thread safe lazy creation and sharing of these sets across // all instances of regular expressions. // #include "unicode/utypes.h" #if !UCONFIG_NO_REGULAR_EXPRESSIONS #include "unicode/unistr.h" #include "unicode/uniset.h" #include "unicode/uchar.h" #include "unicode/regex.h" #include "uprops.h" #include "cmemory.h" #include "cstring.h" #include "uassert.h" #include "ucln_in.h" #include "umutex.h" #include "regexcst.h" // Contains state table for the regex pattern parser. // generated by a Perl script. #include "regexst.h" U_NAMESPACE_BEGIN // "Rule Char" Characters are those with special meaning, and therefore // need to be escaped to appear as literals in a regexp. constexpr char16_t const *gRuleSet_rule_chars = …; // // The backslash escape characters that ICU's unescape() function will handle. // constexpr char16_t const *gUnescapeChars = …; // // Unicode Set pattern for Regular Expression \w // constexpr char16_t const *gIsWordPattern = …; // // Unicode Set Definitions for Regular Expression \s // constexpr char16_t const *gIsSpacePattern = …; // // UnicodeSets used in implementation of Grapheme Cluster detection, \X // constexpr char16_t const *gGC_ControlPattern = …; constexpr char16_t const *gGC_ExtendPattern = …; constexpr char16_t const *gGC_LPattern = …; constexpr char16_t const *gGC_VPattern = …; constexpr char16_t const *gGC_TPattern = …; constexpr char16_t const *gGC_LVPattern = …; constexpr char16_t const *gGC_LVTPattern = …; RegexStaticSets *RegexStaticSets::gStaticSets = …; UInitOnce gStaticSetsInitOnce { … }; RegexStaticSets::RegexStaticSets(UErrorCode *status) { … } RegexStaticSets::~RegexStaticSets() { … } //------------------------------------------------------------------------------ // // regex_cleanup Memory cleanup function, free/delete all // cached memory. Called by ICU's u_cleanup() function. // //------------------------------------------------------------------------------ U_CDECL_BEGIN static UBool U_CALLCONV regex_cleanup() { … } static void U_CALLCONV initStaticSets(UErrorCode &status) { … } U_CDECL_END void RegexStaticSets::initGlobals(UErrorCode *status) { … } U_NAMESPACE_END #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS