Cursus Raku / Reguliere expressies en grammatica’s / Grammatica’s / Actieklassen / Exercises / Een actie voor hoofdletters

Oplossing: Een actie voor hoofdletters

Hier is een mogelijke oplossing voor de taak.

Code

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

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

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

🦋 Je kunt de broncode vinden in het bestand upcase-action.raku.

Uitvoer

HELLO

Opmerkingen

  1. De grammatica captureert het woord; de actieklasse beslist wat ermee gebeurt.

  2. $<word>.Str geeft de gematchte tekst en .uc zet die in hoofdletters, en dat is wat make op de match bewaart.

Cursusnavigatie

Een actie voor hoofdletters   |   Eén grammatica, twee actieklassen