use v6; use Test; plan 4; # L<S05/Variable (non-)interpolation/Alternatively, if you predeclare a proto regex> grammar Grammar::With::Protos { token TOP { <fred>+ } proto token fred { <...> } token fred:sym<foo> { <sym> \d+ } token fred:sym<bar> { <sym> :s 'boz'+ } } my $m = Grammar::With::Protos.parse("foo23bar bozboz foo42"); ok($m, 'parse succeeded'); is(~$m<fred>[0], "foo23", "Submatch 1 correct"); is(~$m<fred>[1], "bar bozboz ", "Submatch 2 correct"); is(~$m<fred>[2], "foo42", "Submatch 3 correct"); # vim: ft=perl6