Курс по Raku / Регулярни изрази и граматики / Граматики / Дървото на разбора, make и made / Exercises / Извлечете числото

Решение: Извлечете числото

Ето едно възможно решение на задачата.

Код

grammar Weight {
    token TOP    { <number> 'kg' { make $<number>.Int } }
    token number { \d+ }
}

say Weight.parse('5kg').made;

🦋 Намерете програмата във файла extract-the-number.raku.

Изход

5

Коментари

  1. Шаблонът съпоставя цифрите и буквалното kg, но вграденият блок съхранява само $<number>.Int — цялото число, без единицата.

  2. made прочита тази стойност обратно: истинска 5, готова за смятане, а не текстът 5kg. Това е обичайната работа на make — да превърне съвпадението в чистата стойност, която всъщност искате.

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

Извлечете числото   |   Умножете двойка