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.