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

Решение: Перемножьте пару

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

Код

grammar Product {
    token TOP { <a> '*' <b> { make $<a>.Int * $<b>.Int } }
    token a   { \d+ }
    token b   { \d+ }
}

say Product.parse('4*5').made;

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

Вывод

20

Комментарии

  1. Два числа захватываются как <a> и <b>, каждое преобразуется через .Int.

  2. Встроенный блок объединяет подсовпадения — перемножает их — и сохраняет результат на совпадении, который затем и возвращает made.

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

Перемножьте пару   |   Переверните порядок слов