An early experimental general-purpose pattern matching engine for Swift.
To try out the functionality provided here, download the latest open source development toolchain. Import
_StringProcessing in your source file to get access to the API and specify
-Xfrontend -enable-experimental-string-processing to get access to the literals.
For example, in a
Package.swift file's target declaration:
.target( name: "foo", dependencies: ["depA"], swiftSettings: [.unsafeFlags(["-Xfrontend", "-enable-experimental-string-processing"])] ),
_StringProcessing are specially integrated modules that are built as part of apple/swift.
_RegexParser contains the parser for regular expression literals and is built both as part of the compiler and as a core library.
_StringProcessing are built together as a core library named
|Module||Swift toolchain component|
main branch is the branch for day-to-day development. Generally, you should create PRs against this branch.
|apple/swift branch||apple/swift-experimental-string-processing branch|
A pair of corresponding branches are expected to build successfully together and pass all tests.
To integrate the latest changes in apple/swift-experimental-string-processing to apple/swift, carefully follow the workflow:
mainthat you would like to integrate into
swift/main, e.g. "[Integration] main (
mainin apple/swift-experimental-string-processing, create a pull request in apple/swift. Note: Since CI in apple/swift-experimental-string-processing has not yet been set up to run full toolchain tests, you should create a PR in apple/swift regardless; if the integartion does not require changing apple/swift, create a dummy PR in apple/swift by changing the README and just not merge it in the end.
<PR NUMBER>with the apple/swift pull request number, if any):
apple/swift#<PR NUMBER> # use this line only if there is an corresponding apple/swift PR @swift-ci please test
<PR NUMBER>with the apple/swift-experimental-string-processing pull request number):
apple/swift-experimental-string-processing#<PR NUMBER> @swift-ci please test
Compiler integration can be tricky. Use special caution when developing
_StringProcessing, do not write fully qualified references to symbols in
_CUnicode, and always wrap
import _CUnicodein a
#if canImport(_CUnicode). This is because
_CUnicodeis built as part of