I have been interested in various aspects of parsing since 2009. My research is particularly focused on parsing general context-free grammars, using combinator parsers. I have published several papers, formalized various proofs about parsers in the HOL4 theorem prover, and produced quite a few OCaml implementations to try out various ideas.

  • Earley parser, 2016 - now
    My current favourite Earley parser implementation (in OCaml). A Python version is also available from github.

  • P1, 2015 (now inactive)
    A combinator parsing library for all context-free grammars (CFGs). The implementation is based on the verified parsing work.

  • P0, 2015- now
    A very simple combinator library, a sort-of minimal basis for combinator parsing.

  • Example grammars, 2015 - now
    Used for testing parsers. See also the blog post

  • Verified parsing, 2011
    This work produced a verified, sound and complete approach to combinator parsing. This introduced the idea of "good parse trees". The problem with this approach is that it is too inefficient with left-recursive grammars. See also the blog post.

  • Older parsing work which I have now abandoned can be found here