microparsec icon indicating copy to clipboard operation
microparsec copied to clipboard

⭐ A performant Nim parsing library built for humans.

Results 32 microparsec issues
Sort by recently updated
recently updated
newest added

Some Parsec combinators were improved by Megaparsec. Implement the following or find alternatives: - [x] `between` - [x] `sepBy` - [x] `sepBy1` - [ ] `choice` - [ ] `count`...

combinators

Some Parsec combinators were improved by Megaparsec. Implement the following or find alternatives: - [ ] `newline` - [ ] `crlf` - [ ] `eol` - [ ] `tab` -...

combinators

Useful for validating input. [Similar to `options`](https://nim-lang.org/docs/options.html#filter%2COption%5BT%5D%2Cproc%28T%29). Or, better yet, do it in arnetheduck/nim-result#14.

enhancement

- [ ] [A nice, tricky example](https://www.reddit.com/r/haskell/comments/avok2x/how_to_design_parsec_parsers_for_good_error/ehh1009?utm_source=share&utm_medium=web2x&context=3)

documentation
tests

Or find alternatives: - [ ] `parserTrace` - [ ] `parserTraced` [Code can be found here](https://hackage.haskell.org/package/parsec-3.1.14.0/docs/src/Text.Parsec.Combinator.html).

combinators

That means checking if `readChar` understands at least `\n` (Unix-like) and `\r\n` (Windows-like). See [here](https://en.wikipedia.org/wiki/Newline#Representation).

portability

Should fallback to [this](https://github.com/arnetheduck/nim-result/blob/3726fd298c49e17f2681a7310e61499ba5c72ef4/results.nim#L519-L522) and [this](https://github.com/arnetheduck/nim-result/blob/3726fd298c49e17f2681a7310e61499ba5c72ef4/results.nim#L624-L627). String conversion for errors is covered in #11.

pretty printing

- [Generalising monads to arrows](https://doi.org/10.1016/S0167-6423(99)00023-4) - [Programming with Arrows](http://www.cse.chalmers.se/~rjmh/afp-arrows.pdf) - [`functional-arrow`](https://hackage.haskell.org/package/functional-arrow) Related to parameter orderings too (see #7). EDIT: [Control.Arrow](https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Arrow.html#g:1).

combinators
typeclasses