Split CEGIS, allow other grammars, abstract away grammar