Java monadic parser combinator framework for constructing LL(1) parsers