Yeah see my other comment above, I've done it with arbitrary grammars, works quite well, don't know why this isn't more widespread