Hi Armando,
Thank you for your great work with this library! I don't have much previous
experience with parser combinators, but with your implementation, and the
wonderful documentation, I've had a lot of fun playing and learning.
I've been hacking on a small project for implementing a subset
Ragnar, thanks for your kind words; I'm glad you're finding kern fun and
useful.
The lexer module has parsers that take care of whitespace, and conveniences
like parens, braces, comma-sep (and others) that shorten things. You might
start with the namespace blancas.kern.lexer.basic and use
Kern is a text-parsing library based on Parsec, the Haskell monadic
combinators library. It is useful for parsing all kinds of text: data,
program input, configuration files, DSLs, or a full-blown programming
language.
My main goal is, like the Self folks, the power of simplicity. In the ideal
Have you looked also at Parsatron (another parsec-derived library)?
https://github.com/youngnh/parsatron
I wrote some combinators for parsatron for dealing with clojure datastructures:
https://github.com/bwo/macroparser
On Mon, Jan 21, 2013 at 10:27 AM, Armando Blancas abm221...@gmail.com
I've actually taken a peek at just about every parsing lib that has been
mentioned in this board. I've learned plenty by reading other people's
code, and also looking at how they approached the subject.
On Monday, January 21, 2013 10:32:55 AM UTC-8, Ben wrote:
Have you looked also at
On Mon, Jan 21, 2013 at 12:09 PM, Armando Blancas abm221...@gmail.com wrote:
I've actually taken a peek at just about every parsing lib that has been
mentioned in this board. I've learned plenty by reading other people's code,
and also looking at how they approached the subject.
Any plans to
Any plans to decouple the parsing combinators (more importantly the
error messages/position tracking) from parsing text? A seqable
object as in the second argument to parse is not necessarily
something for which lines and columns make sense.
Not yet. I've decided that first the
On Mon, Jan 21, 2013 at 2:05 PM, Armando Blancas abm221...@gmail.com wrote:
Not yet. I've decided that first the library must get really good at parsing
text. Once I have more experience writing and using this library, that'd be
a good goal to have. But for now it's about text.
Fair enough,
I see---also fair enough. How do you implement things like return (for
monads) or mempty (for monoids) with protocols? I assume it's the
perceived desirability of not having to pass in a parameter
corresponding to some concrete monad/monoid/whatever to be able to get
the right function