Курс 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Коментарі
Токен
TOPє місцем, де починається розбір; він посилається на інші токени за іменем через<first>та<last>, які стають ключами на збігу.$match<first>є об’єктом збігу; префіксний~перетворює його на звичайний знайдений текст.