Library for implementing parsers using BNF-like grammar directly in Java