chore: Use repeat-break structure

This commit is contained in:
Leni Aniva 2025-01-24 19:11:05 -08:00
parent 418d630255
commit 976646fb67
Signed by: aniva
GPG Key ID: 4D9B1C8D10EA4C50
1 changed files with 2 additions and 3 deletions

View File

@ -23,10 +23,10 @@ def parseCommand (s: String): Except String Command := do
return { cmd := s.take offset, payload := payload } return { cmd := s.take offset, payload := payload }
| .none => throw "Command is empty" | .none => throw "Command is empty"
partial def loop : MainM Unit := do partial def loop : MainM Unit := do repeat do
let state ← get let state ← get
let command ← (← IO.getStdin).getLine let command ← (← IO.getStdin).getLine
if command.trim.length = 0 then return () if command.trim.length = 0 then break
match parseCommand command with match parseCommand command with
| .error error => | .error error =>
let error := Lean.toJson ({ error := "command", desc := error }: InteractionError) let error := Lean.toJson ({ error := "command", desc := error }: InteractionError)
@ -43,7 +43,6 @@ partial def loop : MainM Unit := do
let message ← e.toMessageData.toString let message ← e.toMessageData.toString
let error := Lean.toJson ({ error := "main", desc := message }: InteractionError) let error := Lean.toJson ({ error := "main", desc := message }: InteractionError)
IO.println error.compress IO.println error.compress
loop
unsafe def main (args: List String): IO Unit := do unsafe def main (args: List String): IO Unit := do