language for building and caching grammars