|
17 | 17 | // incremental conversion, such that leaves remain
|
18 | 18 | // as canonical regex literals.
|
19 | 19 |
|
| 20 | +/// Renders an AST tree as a Pattern DSL. |
| 21 | +/// |
| 22 | +/// - Parameters: |
| 23 | +/// - ast: A `_RegexParser.AST` instance. |
| 24 | +/// - maxTopDownLevels: The number of levels down from the root of the tree |
| 25 | +/// to perform conversion. `nil` means no limit. |
| 26 | +/// - minBottomUpLevels: The number of levels up from the leaves of the tree |
| 27 | +/// to perform conversion. `nil` means no limit. |
| 28 | +/// - Returns: A string representation of `ast` in the `RegexBuilder` syntax. |
20 | 29 | @_spi(PatternConverter)
|
21 |
| -extension AST { |
22 |
| - /// Renders as a Pattern DSL. |
23 |
| - @_spi(PatternConverter) |
24 |
| - public func renderAsBuilderDSL( |
25 |
| - maxTopDownLevels: Int? = nil, |
26 |
| - minBottomUpLevels: Int? = nil |
27 |
| - ) -> String { |
28 |
| - var printer = PrettyPrinter( |
29 |
| - maxTopDownLevels: maxTopDownLevels, |
30 |
| - minBottomUpLevels: minBottomUpLevels) |
31 |
| - printer.printAsPattern(self) |
32 |
| - return printer.finish() |
33 |
| - } |
| 30 | +public func renderAsBuilderDSL( |
| 31 | + ast: Any, |
| 32 | + maxTopDownLevels: Int? = nil, |
| 33 | + minBottomUpLevels: Int? = nil |
| 34 | +) -> String { |
| 35 | + var printer = PrettyPrinter( |
| 36 | + maxTopDownLevels: maxTopDownLevels, |
| 37 | + minBottomUpLevels: minBottomUpLevels) |
| 38 | + printer.printAsPattern(ast as! AST) |
| 39 | + return printer.finish() |
34 | 40 | }
|
35 | 41 |
|
36 | 42 | extension PrettyPrinter {
|
|
0 commit comments