Corso di Raku / Espressioni regolari e grammatiche / Grammatiche / Creare grammatiche / Exercises / Analizzate un hashtag
Soluzione: Analizzate un hashtag
Ecco una possibile soluzione del compito.
Codice
grammar Hashtag {
token TOP { '#' <tag> }
token tag { \w+ }
}
say Hashtag.parse('#raku')<tag>;🦋 Trova il programma nel file parse-hashtag.raku.
Output
「raku」Commenti
TOPesplicita il#fisso seguito dal token<tag>..parserichiede che l’intera stringa corrisponda, e il tag è poi disponibile come cattura<tag>.
Un’alternativa
Puoi invece lasciare che tag riconosca l’intero hashtag
— il # insieme alla parola — e raggiungere la parola
attraverso una regola word annidata:
grammar Hashtag {
token TOP { <tag> }
token tag { '#' <word> }
token word { \w+ }
}
say Hashtag.parse('#raku')<tag><word>;Questo stampa lo stesso 「raku」. Ora
<tag> cattura tutto #raku, mentre la
parola al suo interno si raggiunge come
<tag><word>. La grammatica si legge un po’ più
come la cosa che descrive — un hashtag è un #
seguito da una parola, e la parola è un pezzo con nome a pieno
titolo.