Курс Raku / Регулярні вирази та граматики / Граматики / Дерево розбору, make і made / Вправи / Витягніть число
Розв’язання: Витягніть число
Ось одне з можливих розв’язань задачі.
Код
grammar Weight {
token TOP { <number> 'kg' { make $<number>.Int } }
token number { \d+ }
}
say Weight.parse('5kg').made;🦋 Знайдіть програму у файлі extract-the-number.raku.
Вивід
5Коментарі
Шаблон зіставляється з цифрами та літеральним
kg, але вбудований блок зберігає лише$<number>.Int— ціле число, без одиниці.madeчитає це значення назад: справжню5, готову до обчислень, а не текст5kg. Це типова роботаmake— перетворити збіг на чисте значення, якого ви насправді хочете.