|
9 | 9 | //
|
10 | 10 | //===----------------------------------------------------------------------===//
|
11 | 11 |
|
12 |
| -struct Delimiter: Hashable { |
| 12 | +public struct Delimiter: Hashable { |
13 | 13 | let kind: Kind
|
14 | 14 | let poundCount: Int
|
15 | 15 |
|
@@ -74,26 +74,26 @@ extension Delimiter {
|
74 | 74 | }
|
75 | 75 | }
|
76 | 76 |
|
77 |
| -struct DelimiterLexError: Error, CustomStringConvertible { |
78 |
| - enum Kind: Hashable { |
| 77 | +public struct DelimiterLexError: Error, CustomStringConvertible { |
| 78 | + public enum Kind: Hashable { |
79 | 79 | case unterminated
|
80 | 80 | case invalidUTF8 // TODO: better range reporting
|
81 | 81 | case unknownDelimiter
|
82 | 82 | case unprintableASCII
|
83 | 83 | case multilineClosingNotOnNewline
|
84 | 84 | }
|
85 | 85 |
|
86 |
| - var kind: Kind |
| 86 | + public var kind: Kind |
87 | 87 |
|
88 | 88 | /// The pointer at which to resume lexing.
|
89 |
| - var resumePtr: UnsafeRawPointer |
| 89 | + public var resumePtr: UnsafeRawPointer |
90 | 90 |
|
91 | 91 | init(_ kind: Kind, resumeAt resumePtr: UnsafeRawPointer) {
|
92 | 92 | self.kind = kind
|
93 | 93 | self.resumePtr = resumePtr
|
94 | 94 | }
|
95 | 95 |
|
96 |
| - var description: String { |
| 96 | + public var description: String { |
97 | 97 | switch kind {
|
98 | 98 | case .unterminated: return "unterminated regex literal"
|
99 | 99 | case .invalidUTF8: return "invalid UTF-8 found in source file"
|
@@ -462,3 +462,9 @@ func lexRegex(
|
462 | 462 | var lexer = DelimiterLexer(start: start, end: end, delimiters: delimiters)
|
463 | 463 | return try lexer.lex()
|
464 | 464 | }
|
| 465 | + |
| 466 | +public func lexRegex( |
| 467 | + start: UnsafeRawPointer, end: UnsafeRawPointer |
| 468 | +) throws -> (contents: String, Delimiter, end: UnsafeRawPointer) { |
| 469 | + return try lexRegex(start: start, end: end, delimiters: Delimiter.enabledDelimiters) |
| 470 | +} |
0 commit comments