| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See http://swift.org/LICENSE.txt for license information |
| // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| |
| /* CFRegularExpression.h |
| Copyright (c) 2015 Apple Inc. and the Swift project authors |
| */ |
| |
| #if !defined(__COREFOUNDATION_CFREGULAREXPRESSION__) |
| #define __COREFOUNDATION_CFREGULAREXPRESSION__ 1 |
| |
| #include <CoreFoundation/CFBase.h> |
| #include <CoreFoundation/CFString.h> |
| #include <CoreFoundation/CFError.h> |
| |
| CF_ASSUME_NONNULL_BEGIN |
| CF_IMPLICIT_BRIDGING_ENABLED |
| |
| typedef CF_OPTIONS(CFOptionFlags, _CFRegularExpressionOptions) { |
| _kCFRegularExpressionCaseInsensitive = 1 << 0, |
| _kCFRegularExpressionAllowCommentsAndWhitespace = 1 << 1, |
| _kCFRegularExpressionIgnoreMetacharacters = 1 << 2, |
| _kCFRegularExpressionDotMatchesLineSeparators = 1 << 3, |
| _kCFRegularExpressionAnchorsMatchLines = 1 << 4, |
| _kCFRegularExpressionUseUnixLineSeparators = 1 << 5, |
| _kCFRegularExpressionUseUnicodeWordBoundaries = 1 << 6 |
| }; |
| |
| typedef CF_OPTIONS(CFOptionFlags, _CFRegularExpressionMatchingOptions) { |
| _kCFRegularExpressionMatchingReportProgress = 1 << 0, |
| _kCFRegularExpressionMatchingReportCompletion = 1 << 1, |
| _kCFRegularExpressionMatchingAnchored = 1 << 2, |
| _kCFRegularExpressionMatchingWithTransparentBounds = 1 << 3, |
| _kCFRegularExpressionMatchingWithoutAnchoringBounds = 1 << 4, |
| _kCFRegularExpressionMatchingOmitResult = 1 << 13 |
| }; |
| |
| typedef CF_OPTIONS(CFOptionFlags, _CFRegularExpressionMatchingFlags) { |
| _kCFRegularExpressionMatchingProgress = 1 << 0, /* Set when the block is called to report progress during a long-running match operation. */ |
| _kCFRegularExpressionMatchingCompleted = 1 << 1, /* Set when the block is called after completion of any matching. */ |
| _kCFRegularExpressionMatchingHitEnd = 1 << 2, /* Set when the current match operation reached the end of the search range. */ |
| _kCFRegularExpressionMatchingRequiredEnd = 1 << 3, /* Set when the current match depended on the location of the end of the search range. */ |
| _kCFRegularExpressionMatchingInternalError = 1 << 4 /* Set when matching failed due to an internal error. */ |
| }; |
| |
| typedef const struct CF_BRIDGED_TYPE(_NSCFRegex) ___CFRegularExpression * _CFRegularExpressionRef; |
| |
| typedef void (*_CFRegularExpressionMatch)(void *_Nullable context, CFRange * _Nullable ranges, CFIndex count, _CFRegularExpressionMatchingOptions options, Boolean *stop); |
| |
| CFStringRef _CFRegularExpressionCreateEscapedPattern(CFStringRef pattern); |
| _CFRegularExpressionRef _Nullable _CFRegularExpressionCreate(CFAllocatorRef allocator, CFStringRef pattern, _CFRegularExpressionOptions options, CFErrorRef *errorPtr); |
| void _CFRegularExpressionDestroy(_CFRegularExpressionRef regex); |
| |
| CFIndex _CFRegularExpressionGetNumberOfCaptureGroups(_CFRegularExpressionRef regex); |
| void _CFRegularExpressionEnumerateMatchesInString(_CFRegularExpressionRef regexObj, CFStringRef string, _CFRegularExpressionMatchingOptions options, CFRange range, void *_Nullable context, _CFRegularExpressionMatch match); |
| |
| CFStringRef _CFRegularExpressionGetPattern(_CFRegularExpressionRef regex); |
| _CFRegularExpressionOptions _CFRegularExpressionGetOptions(_CFRegularExpressionRef regex); |
| |
| CF_IMPLICIT_BRIDGING_DISABLED |
| CF_ASSUME_NONNULL_END |
| #endif /* __COREFOUNDATION_CFREGULAREXPRESSION__ */ |