Raku kurss / Regulārās izteiksmes un gramatikas / Gramatikas / Gramatiku veidošana / Exercises / Parsējiet tēmturi
Risinājums: Parsējiet tēmturi
Šeit ir iespējams risinājums uzdevumam.
Kods
grammar Hashtag {
token TOP { '#' <tag> }
token tag { \w+ }
}
say Hashtag.parse('#raku')<tag>;🦋 Atrodiet programmu failā parse-hashtag.raku.
Izvade
「raku」Komentāri
TOPizraksta fiksēto#, kam seko marķieris<tag>..parsepieprasa, lai sakristu visa virkne, un birka tad ir pieejama kā tvērums<tag>.
Cits variants
Tā vietā var ļaut tag sakrist ar visu tēmturi —
# kopā ar vārdu — un vārdu sasniegt caur ligzdotu likumu
word:
grammar Hashtag {
token TOP { <tag> }
token tag { '#' <word> }
token word { \w+ }
}
say Hashtag.parse('#raku')<tag><word>;Tas izdrukā to pašu 「raku」. Tagad
<tag> satver visu #raku, bet vārds tā
iekšienē ir sasniedzams kā <tag><word>.
Gramatika lasās mazliet vairāk kā tā lieta, ko apraksta — tēmturis
ir #, kam seko vārds, un vārds ir savs nosaukts
gabals.