Package to write parsers for arbitrary grammars (DSLs, etc) entirely in Java