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