After a great deal of faffing about, it seems there are no headers declaring _PyParser_Grammar. However, declaring
extern grammar _PyParser_Grammar;
in each of the C++ source files that need access works perfectly. Not particularly elegant, but at least it compiles.