core: Properly restore state in delimited

This commit is contained in:
Nathan McCarty 2025-01-26 21:09:30 -05:00
parent 93d4d876d9
commit ef690db972

View file

@ -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
```