Saya dapat dengan mudah menggunakan tanda tangan token dengan menggunakan nama token secara langsung:
my token t ( $x ) { $x };
'axb' ~~ / 'a' <t: 'x'> 'b' /; # match
'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match
Namun saya belum menemukan cara untuk melakukan ini, ketika token disimpan dalam variabel:
my $t = token ( $x ) { $x };
'axb' ~~ / 'a' <$t: 'x'> 'b' /;
'axb' ~~ / 'a' <$t( 'x' )> 'b' /;
Keduanya memberi:
===SORRY!=== Error while compiling ...
Unable to parse expression in metachar:sym<assert>; couldn't find final '>'
Apa sintaks ajaib untuk melakukan itu?
BTW: Saya bahkan melihat-lihat paket uji Raku dan tidak termasuk kasus seperti itu di roast/S05-grammar/signatures.t
.
&
variabel.Tempatkan
&
sebelum variabel:Pengurai mencari
&
, dan kemudian mendelegasikan ke aturan parse variabel Raku, yang dengan senang hati akan menguraikan kontekstualisasi seperti ini.sumber