Курс языка программирования Raku / Приложение 🆕 / Типы и текстовые машины / Регулярные выражения и грамматики / Exercises / Грамматика для полных имён

Решение: Грамматика для полных имён

Вот один из возможных вариантов решения задачи.

Код

grammar FullName {
    token TOP   { <first> \s+ <last> }
    token first { \w+ }
    token last  { \w+ }
}

my $match = FullName.parse('Grace Hopper');

say ~$match<first>;
say ~$match<last>;

🦋 Исходный код можно найти в файле grammar-fullname.raku.

Вывод

Grace
Hopper

Комментарии

  1. Токен TOP — это место, где начинается разбор; он ссылается на другие токены по имени через <first> и <last>, которые становятся ключами в объекте совпадения.

  2. $match<first> — объект совпадения; префиксный ~ превращает его в обычный совпавший текст.

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

Грамматика для полных имён   |   Грамматика, которая складывает