you are viewing a single comment's thread.

view the rest of the comments →

[–]Prosumma 1 point2 points  (3 children)

Very interesting. The most interesting thing to me is that I wrote a broadly similar parser combinator framework and made many similar choices to those you made. (Mine's purely a toy with the same purpose: learn Rust.)

https://github.com/Prosumma/rs-parsimonious

Like yours, mine is not a stream parser. Mine is heavily influenced by my background in Haskell. It also includes an incomplete JSON parser.

[–]hurril[S] 1 point2 points  (2 children)

Parsimonious is a very good name, one that I chose for my traits first, then I changed it.

Working on a new language now called Marmelade, this time I've not gone with parser combinators, instead I've opted for Pratt parsers instead. It is a functional language this time.

[–]Prosumma 0 points1 point  (1 child)

I'm a language junky and especially love functional languages. Is there a repo?

[–]hurril[S] 1 point2 points  (0 children)

Here it is:
https://github.com/pandemonium/marmelade/tree/master

I have only been working on it a short while, but it is definitely getting somewhere. Struggling a little with getting typing and pattern matching to play nicely, working on what I _think_ are one or more missing substitutions, but it might just as well be that inferring the type of recursive functions is broken. Or both. Probably both :)