grammar Abc {
token TOP { "abc" $<rest> = .* }
}
grammar Def {
token TOP { "def" }
}
class AbcDefActions {
method TOP($/)
{
class NestedActions {
method TOP($/) { make(~$/) }
}
my Str $nested_parse_result;
{
my $/ = OUTER::<$/>; # or temp, but requires e.g. `is copy` parameter
$nested_parse_result = Def.parse($<rest>, actions => NestedActions).made
}
make("abc with $nested_parse_result")
}
}
Abc.parse("abcdef", actions => AbcDefActions).made.say