Курс языка программирования 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 сохраняет на совпадении.

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

Действие с верхним регистром   |   Одна грамматика, два класса действий