core: Properly restore state in delimited
This commit is contained in:
parent
93d4d876d9
commit
ef690db972
1 changed files with 7 additions and 3 deletions
|
@ -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
|
||||
```
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue