parser: switch to char matcher interface

This commit is contained in:
2023-10-06 15:30:43 -07:00
parent 97283636bc
commit d36310e698
7 changed files with 65 additions and 34 deletions

View File

@ -11,9 +11,14 @@ class IndentPrinter(
append(indentLevelText)
}
fun emitIndentedLine(line: String) {
emitIndent()
appendLine(line)
}
fun increaseIndent() {
indentLevel++
indentLevelText = indent.repeat(indentLevel)
indentLevelText += indent
}
fun decreaseIndent() {
@ -21,5 +26,11 @@ class IndentPrinter(
indentLevelText = indent.repeat(indentLevel)
}
inline fun indented(block: IndentPrinter.() -> Unit) {
increaseIndent()
block(this)
decreaseIndent()
}
override fun toString(): String = buffer.toString()
}