Con un'espressione regolare, token o regola, è possibile definire una variabile come tale;
token directive {
:my $foo = "in command";
<command> <subject> <value>?
}
Non c'è nulla nella documentazione di lingua here, e molto poco in S05 - Regexes and Rules, per citare;
Qualsiasi espressione regolare di grammatica è in realtà solo un tipo di metodo e si possono dichiarare variabili in tale routine utilizzando i due punti seguiti da qualsiasi dichiaratore di ambito analizzato dalla grammatica di Perl 6, inclusi my, our, state e constant. (. Come dichiaratori quasi, temperatura e lasciare che sono anch'essi iscritti) Una singola istruzione (attraverso un punto e virgola finale o una linea di finale di chiusura brace) viene analizzato come normale codice Perl 6:
token prove-nondeterministic-parsing {
:my $threshold = rand;
'maybe' \s+ <it($threshold)>
}
Ottengo che regexen all'interno le grammatiche sono molto simili ai metodi nelle classi; Capisco che è possibile avviare un blocco ovunque all'interno di una regola e se l'analisi riesce a raggiungere quel punto, il blocco verrà eseguito - ma non capisco cosa diavolo sia per questa cosa.
Qualcuno può definire chiaramente che cos'è lo scopo? spiegare quale necessità soddisfa e dare il tipico caso d'uso?