I have spent the past few months writing a Lua interpreter in RPython. (While I haven't implemented the full standard library yet, the benchmarks I have run are quite impressive.)
While implementing the parser, I noticed that the LL(1) PyPy parser generator generates an invalid NFA for grammar rules of the form
foo: [hello* world]. Instead, the generated NFA corresponds to
foo: [hello*] [world]. This MR fixes the NFA generation.