, not generating. And then, most of the time,
CF will not be mentioned. Regular expression can be used to
parse CFG's although it's not clear (yet?) whether they are
powerful enough to parse all CFGs (I believe they do, but I've
not even started proving it yet). And then there's Parse::RecDescent. Also for parsing, but if you use the right
"code blocks", you might be able to do some generating stuff
as well.