From ef690db972e42122a5a67584eacea273252e9bc4 Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Sun, 26 Jan 2025 21:09:30 -0500 Subject: [PATCH] core: Properly restore state in `delimited` --- src/Parser/Interface.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Parser/Interface.md b/src/Parser/Interface.md index d9c2db2..49fe300 100644 --- a/src/Parser/Interface.md +++ b/src/Parser/Interface.md @@ -283,10 +283,14 @@ delimited before after x = do pnote "Parsing delimited by \{show before} \{show after}" starting_state <- save _ <- parseExactChar before - val <- x + Right val <- tryEither x + | Left err => do + load starting_state + throw err Just _ <- tryMaybe $ parseExactChar after - | _ => throw $ - MkParseError starting_state "Unmatched delimiter \{show before}" + | _ => do + load starting_state + throw $ MkParseError starting_state "Unmatched delimiter \{show before}" pure val ```