blob: 7552255f5bd9ab7a7742c3301c12d4acd8669fc4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/// Shared block-level lexical primitives.
enum BlockScanner {
static let blockMarkers = ASCIIByteSet("*-~>")
static let rangeableMarkers = ASCIIByteSet("$^:")
enum Delimiter {
case weak, strong, rule
}
static func delimiter(_ s: Substring) -> Delimiter? {
guard s.count >= 2, let first = s.first, "-=_".contains(first),
s.allSatisfy({ $0 == first })
else { return nil }
switch first {
case "-": return .weak
case "=": return .strong
default: return .rule
}
}
}
|