Курс Raku / Додаток 🆕 / Типи та текстові машини / Регулярні вирази та граматики / Вправи / Граматика для повних імен

Розв’язання: Граматика для повних імен

Ось одне з можливих розв’язань задачі.

Код

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> є об’єктом збігу; префіксний ~ перетворює його на звичайний знайдений текст.

Навігація курсом

Граматика для повних імен   |   Граматика, що додає