My quick reaction is that this looks like a good thing to have, but the most
important part is missing: the documentation patches. These should cover:
* Why have multiple start symbols? (See, for example, the motivating discussion
for this feature on page 6 of the RACK manual
<https://www.rand.org/content/dam/rand/pubs/notes/2009/N3100.pdf>.)
* Suppose Bison didn't have multiple start symbols; how could you achieve their
effect? (This is already in the Bison manual, I think.)
* What is the advantage of multiple start symbols over that simulation?
* Maybe contrast to how other Yacc-like parser generators do it? (Or at least,
steal good ideas from them. :-) These come to mind:
** RACK (see page 27 of its manual)
** Zyacc <https://www.cs.binghamton.edu/~zdu/zyacc/doc/zyacc_4.html#SEC71>
Disclaimer - I'm biased re RACK as it was written by a friend-of-a-friend.