Corso di Raku / Appendice 🆕 / Tipi e macchine per il testo / Espressioni regolari e grammatiche / Exercises / Una grammatica per i nomi completi

Soluzione: Una grammatica per i nomi completi

Ecco una possibile soluzione del compito.

Codice

grammar FullName {
    token TOP   { <first> \s+ <last> }
    token first { \w+ }
    token last  { \w+ }
}

my $match = FullName.parse('Grace Hopper');

say ~$match<first>;
say ~$match<last>;

🦋 Trova il programma nel file grammar-fullname.raku.

Output

Grace
Hopper

Commenti

  1. Il token TOP è il punto in cui l’analisi comincia; si riferisce agli altri token per nome con <first> e <last>, che diventano chiavi sulla corrispondenza.

  2. $match<first> è un oggetto match; il prefisso ~ lo trasforma nel semplice testo corrispondente.

Una grammatica per i nomi completi   |   Una grammatica che somma