Posso usar facilmente assinaturas de token usando o nome do token diretamente:
my token t ( $x ) { $x };
'axb' ~~ / 'a' <t: 'x'> 'b' /; # match
'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match
No entanto, eu não encontrei uma maneira de fazer isso, quando o token é armazenado na variável:
my $t = token ( $x ) { $x };
'axb' ~~ / 'a' <$t: 'x'> 'b' /;
'axb' ~~ / 'a' <$t( 'x' )> 'b' /;
Ambos dão:
===SORRY!=== Error while compiling ...
Unable to parse expression in metachar:sym<assert>; couldn't find final '>'
Qual é a sintaxe mágica para fazer isso?
BTW: Eu até naveguei pelo conjunto de testes Raku e ele não inclui esse caso roast/S05-grammar/signatures.t
.
&
variáveis.Coloque um
&
antes da variável:O analisador procura
&
e, em seguida, delega para a regra de análise de variáveis Raku, que analisará felizmente um contextualizador como este.fonte