Курс по Raku / Регулярни изрази и граматики / Граматики / Класове за действия / Exercises / Действие с главни букви

Решение: Действие с главни букви

Ето едно възможно решение на задачата.

Код

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

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

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

🦋 Намерете програмата във файла upcase-action.raku.

Изход

HELLO

Коментари

  1. Граматиката прихваща думата; класът за действия решава какво да прави с нея.

  2. $<word>.Str дава съвпадналия текст, а .uc го превръща в главни букви — и точно това make съхранява върху съвпадението.

Навигация в курса

Действие с главни букви   |   Една граматика, два класа за действия