|
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