Corso di Raku / Espressioni regolari e grammatiche / Grammatiche / Classi di azione / Exercises / Un’azione in maiuscolo

Soluzione: Un’azione in maiuscolo

Ecco una possibile soluzione del compito.

Codice

grammar WordG {
    token TOP  { <word> }
    token word { \w+ }
}

class UpcaseAction {
    method TOP($/) { make $<word>.Str.uc }
}

say WordG.parse('hello', actions => UpcaseAction.new).made;

🦋 Trova il programma nel file upcase-action.raku.

Output

HELLO

Commenti

  1. La grammatica cattura la parola; la classe di azioni decide che cosa farne.

  2. $<word>.Str dà il testo riconosciuto e .uc lo rende maiuscolo, ed è questo che make conserva sulla corrispondenza.

Un’azione in maiuscolo   |   Una grammatica, due classi di azione