Puedo usar fácilmente las firmas de token usando el nombre del token directamente:
my token t ( $x ) { $x };
'axb' ~~ / 'a' <t: 'x'> 'b' /; # match
'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match
Sin embargo, no he encontrado una manera de hacer esto, cuando el token se almacena en variable:
my $t = token ( $x ) { $x };
'axb' ~~ / 'a' <$t: 'x'> 'b' /;
'axb' ~~ / 'a' <$t( 'x' )> 'b' /;
Ambos dan:
===SORRY!=== Error while compiling ...
Unable to parse expression in metachar:sym<assert>; couldn't find final '>'
¿Cuál es la sintaxis mágica para hacer eso?
Por cierto: incluso he examinado el conjunto de pruebas Raku y no incluye ese caso roast/S05-grammar/signatures.t
.
&
variables.Coloque un
&
antes de la variable:El analizador busca el
&
, y luego delega a la regla de análisis variable Raku, que analizará felizmente un contextualizador como este.fuente