Package maintainers and Hackage trustees are allowed to edit certain bits
of package metadata after a release, without uploading a new tarball.
Note that the tarball itself is never changed, just the metadata that is
stored separately. For more information about metadata revisions, please
refer to the
Hackage Metadata Revisions FAQ.
No. |
Time |
User |
SHA256 |
-r1 (syntax-0.2.1.0-r1) |
2014-11-24T15:43:23Z |
pawel834 |
eb2c2e71dd1f3a296d02af804b58eb31bd2b83d5884687105b4a7ab4a3c5e450
|
|
Changed description
from 'syntax' allows you to write a single syntax description and instantiate is both as a parser and a pretty printer.
The interface is based on a custom Functor/Applicative/Monad hierarchy, provided by the 'semi-iso' package. You fmap using
a semi-isomorphism instead of function. A semi-isomorphism is a isomorphism that can fail in both directions, with slightly
weakened laws. It is worth to note that @Iso@s and @Prism@s from 'lens' are valid semi-isomorphisms :)
Once you write a description you can, for example turn it into an Attoparsec parser.
See @syntax-example@ for an example, 'syntax-attoparsec' and 'syntax-pretty' for a parser/printer implementation.
The library was inspired by:
* Rendel, Tillmann, and Klaus Ostermann. "Invertible syntax descriptions: unifying parsing and pretty printing." ACM Sigplan Notices. Vol. 45. No. 11. ACM, 2010.
TODO:
* a printer library based on Text/ByteString builders (wrapping 'pretty' is inefficient and doesn't use any features of it),
* try to implement indentation and Haskell layout rule,
* combinators for binary data formats, vectors,
* implementation of do notation for SemiIsoMonad with QuasiQuoters.
to 'syntax' allows you to write a single syntax description and instantiate is both as a parser and a pretty printer.
The interface is based on a custom Functor\/Applicative\/Monad hierarchy, provided by the 'semi-iso' package. You fmap using
a semi-isomorphism instead of function. A semi-isomorphism is a isomorphism that can fail in both directions, with slightly
weakened laws. It is worth to note that @Iso@s and @Prism@s from 'lens' are valid semi-isomorphisms :)
Once you write a description you can, for example turn it into an Attoparsec parser.
See @syntax-example@ for an example, 'syntax-attoparsec' and 'syntax-pretty' for a parser/printer implementation.
The library was inspired by:
* Rendel, Tillmann, and Klaus Ostermann. "Invertible syntax descriptions: unifying parsing and pretty printing." ACM Sigplan Notices. Vol. 45. No. 11. ACM, 2010.
TODO:
* a printer library based on Text/ByteString builders (wrapping 'pretty' is inefficient and doesn't use any features of it),
* try to implement indentation and Haskell layout rule,
* combinators for binary data formats, vectors,
* implementation of do notation for SemiIsoMonad with QuasiQuoters.
|
-r0 (syntax-0.2.1.0-r0) |
2014-11-24T15:42:16Z |
pawel834 |
1efb9f0576a58e5cab625de57587990e442218abaaf866d0d9ff893eb7827702
|
|
|