CommonMark parser for Clojure/Script.
TODO
TODO add links to Monadic Parsing and Parsing with Derivatives papers.
Instaparse is very powerful and well done, but due to its tradeoffs it starts having issues around 20k-200k chars (one of the test files is 10M, Commonmark C implementation eats it in couple of seconds).
So, one alternative would be to implement a small parser combinators library (for fun) or use one of the following:
- https://github.com/youngnh/parsatron
- https://github.com/blancas/kern
- https://github.com/van-clj/zetta-parser
Kern looks best.
TODO
- Pass all the spec test cases
- Handle pathological inputs: markdown-it test suite
- ClojureScript port
Clone with git clone --recursive git://github.com/ff-/marchio
.
This will pull in the folder spec
the
last CommonMark specification.
TODO:
python3 spec/test/spec_tests.py --program $PROG
or
python3 spec/test/spec_tests.py --dump-tests
TODO: lein run
?
TODO: describe namespaces, where to find stuff, datastructures
Copyright © 2016 Fabrizio Ferrai and contributors
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.