Ich kann Token-Signaturen einfach verwenden, indem ich den Token-Namen direkt verwende:
my token t ( $x ) { $x };
'axb' ~~ / 'a' <t: 'x'> 'b' /; # match
'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match
Ich habe jedoch keine Möglichkeit gefunden, dies zu tun, wenn das Token in einer Variablen gespeichert ist:
my $t = token ( $x ) { $x };
'axb' ~~ / 'a' <$t: 'x'> 'b' /;
'axb' ~~ / 'a' <$t( 'x' )> 'b' /;
Beide geben:
===SORRY!=== Error while compiling ...
Unable to parse expression in metachar:sym<assert>; couldn't find final '>'
Was ist die magische Syntax dafür?
Übrigens: Ich habe sogar die Raku-Testsuite durchsucht und sie enthält einen solchen Fall nicht roast/S05-grammar/signatures.t
.
&
Variablen umgewandelt werden.Stellen Sie ein
&
vor die Variable:Der Parser sucht nach der
&
und delegiert dann an die Raku-Variablen- Parser- Regel, die einen Kontextualisierer wie diesen gerne analysiert.quelle