Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,10 @@ let package = Package(
dependencies: [
"_RegexParser", "_StringProcessing"
]),
.target(
name: "_CUnicode",
dependencies: []),
.target(
name: "_StringProcessing",
dependencies: [
"_RegexParser",
"_CUnicode",
"_RegexParser"
],
swiftSettings: publicStdlibSettings),
.target(
Expand Down
335 changes: 0 additions & 335 deletions Sources/_CUnicode/Common/ScriptData.h

This file was deleted.

155 changes: 0 additions & 155 deletions Sources/_CUnicode/UnicodeData.c

This file was deleted.

87 changes: 0 additions & 87 deletions Sources/_CUnicode/UnicodeScalarProps.c

This file was deleted.

46 changes: 0 additions & 46 deletions Sources/_CUnicode/include/UnicodeData.h

This file was deleted.

18 changes: 16 additions & 2 deletions Sources/_StringProcessing/ConsumerInterface.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
//
//===----------------------------------------------------------------------===//

@_spi(_Unicode) import Swift
@_implementationOnly import _RegexParser

extension DSLTree.Node {
Expand Down Expand Up @@ -371,10 +372,23 @@ extension DSLTree.CustomCharacterClass {
typealias ScalarPredicate = (UnicodeScalar) -> Bool

private func scriptScalarPredicate(_ s: Unicode.Script) -> ScalarPredicate {
{ Unicode.Script($0) == s }
{
if #available(SwiftStdlib 5.7, *) {
return unsafeBitCast($0.properties._script, to: Unicode.Script.self) == s
} else {
return false
}
}
}
private func scriptExtensionScalarPredicate(_ s: Unicode.Script) -> ScalarPredicate {
{ Unicode.Script.extensions(for: $0).contains(s) }
{
if #available(SwiftStdlib 5.7, *) {
let extensions = $0.properties._scriptExtensions
return extensions.contains(unsafeBitCast(s, to: UInt8.self))
} else {
return false
}
}
}
private func categoryScalarPredicate(_ gc: Unicode.GeneralCategory) -> ScalarPredicate {
{ gc == $0.properties.generalCategory }
Expand Down
38 changes: 0 additions & 38 deletions Sources/_StringProcessing/Unicode/ScalarProps.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,44 +9,6 @@
//
//===----------------------------------------------------------------------===//

@_silgen_name("_swift_stdlib_getScript")
func _swift_stdlib_getScript(_: UInt32) -> UInt8

@_silgen_name("_swift_stdlib_getScriptExtensions")
func _swift_stdlib_getScriptExtensions(
_: UInt32,
_: UnsafeMutablePointer<UInt8>
) -> UnsafePointer<UInt8>?

extension Unicode.Script {
init(_ scalar: Unicode.Scalar) {
let rawValue = _swift_stdlib_getScript(scalar.value)

_internalInvariant(rawValue != .max, "Unknown script rawValue: \(rawValue)")

self = unsafeBitCast(rawValue, to: Self.self)
}

static func extensions(for scalar: Unicode.Scalar) -> [Unicode.Script] {
var count: UInt8 = 0
let pointer = _swift_stdlib_getScriptExtensions(scalar.value, &count)

guard let pointer = pointer else {
return [Unicode.Script(scalar)]
}

var result: [Unicode.Script] = []

for i in 0 ..< count {
let script = pointer[Int(i)]

result.append(unsafeBitCast(script, to: Unicode.Script.self))
}

return result
}
}

extension UnicodeScalar {
var isHorizontalWhitespace: Bool {
value == 0x09 || properties.generalCategory == .spaceSeparator
Expand Down