parsnip: A fast, minimal parser
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
A fast, minimal parser.
parsnip
parses null-terminated input strings with an absolute minimum of
internal state. It copies the input to a c string and works its way through
hand-over-hand with just an Addr#
as the internal state.
It uses reflection
-like tricks to lift the input ByteString
into a
constraint that is then passed to just the combinators that need access
to it to compute position, snip out slices of the original, or ask the
number of bytes remaining, but none of the monadic combinators nor simple
satisfy
or eof
predicates need access to this information.
Because of the null-termination, we can't assume that we can handle binary inputs, but this works well for text-based source languages.
[Skip to Readme]
Properties
Versions | 0, 0 |
---|---|
Change log | CHANGELOG.md |
Dependencies | attoparsec, base (>=4.15 && <5), bytestring, containers, data-default, ghc-prim, primitive [details] |
License | (BSD-2-Clause OR Apache-2.0) |
Copyright | Copyright (c) 2019-2021 Edward Kmett |
Author | Edward Kmett |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Category | Graphics |
Home page | https://github.com/ekmett/codex/tree/master/parsnip#readme |
Source repo | head: git clone https://github.com/ekmett/codex(parsnip) |
Uploaded | by EdwardKmett at 2021-03-24T01:31:45Z |
Modules
[Index] [Quick Jump]
Downloads
- parsnip-0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees