Repl trouble

This commit is contained in:
Tibo De Peuter 2025-05-05 21:12:08 +02:00
parent fd16c4cedc
commit 4d334c1600
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
4 changed files with 35 additions and 31 deletions

View file

@ -29,40 +29,45 @@ class Repl {
}
private fun query(): Answers {
val queryString = io.prompt("?-", { "| " })
val queryString = io.prompt("?-", { "| " }, { it.endsWith(".") })
val simpleQuery = parser.parse(queryString)
val query = preprocessor.preprocess(simpleQuery)
return query.satisfy(emptyMap())
}
private fun printAnswers(answers: Answers) {
val knownCommands = setOf(";", "a", ".", "h")
val iterator = answers.iterator()
if (!iterator.hasNext()) {
io.say("false.\n")
} else {
io.say(prettyPrint(iterator.next()))
return
}
while (iterator.hasNext()) {
var command = io.prompt("")
io.say(prettyPrint(iterator.next()))
while (command !in knownCommands) {
io.say("Unknown action: $command (h for help)\n")
command = io.prompt("Action?")
while (true) {
when (io.prompt("")) {
";" -> {
try {
io.say(prettyPrint(iterator.next()))
} catch (_: NoSuchElementException) {
break
}
}
when (command) {
";" -> {
io.say(prettyPrint(iterator.next()))
}
"a" -> return
"." -> return
"h" -> {
help()
io.say("Action?")
}
"a" -> return
"." -> {
io.checkNewLine()
return
}
"h" -> {
help()
io.say("Action?")
}
else -> {
io.say("Unknown action: (h for help)\n")
io.say("Action?")
}
}
}