This runs fine on Moar and JVM, but still fails on Parrot:
$ perl6-m -e 'grammar G { token TOP() { <lit "a"> }; token lit($s) { $s } };
say ~G.parse: "a";'
a
$ perl6-j -e 'grammar G { token TOP() { <lit "a"> }; token lit($s) { $s } };
say ~G.parse: "a";'
a
$ perl6-p -e 'grammar G { token TOP() { <lit "a"> }; token lit($s) { $s } };
say ~G.parse: "a";'
Unmarshallable foreign language value passed for parameter '$s'
in regex lit at -e:1
in regex TOP at -e:1
in method parse at gen/parrot/CORE.setting:13987
in block <unit> at -e:1
I added a test (fudged 'todo' for parrot) to S05-grammar/parse_and_parsefile.t
with the following commit: https://github.com/perl6/roast/commit/f2f0ea1719