Skip to content

Instantly share code, notes, and snippets.

@lepsa
Created April 4, 2018 05:52
Show Gist options
  • Save lepsa/349ab323faf6a3b924e7d98443c4b692 to your computer and use it in GitHub Desktop.
Save lepsa/349ab323faf6a3b924e7d98443c4b692 to your computer and use it in GitHub Desktop.
Brackets and nested parsers
foo :: Parser Foo
foo = do
... <- ...
... <- ...
... <- ...
pure $ ...
bracket :: Parser () -> Parser () -> Parser a -> Parser a
bracket bra cket m = bra *> m <* cket
bar :: Parser Foo
bar = bracket (void $ char '(') (void $ char ')') foo
baz :: Parser Foo
baz = bracket (void $ char '(') (void $ char ')') bar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment