Курс языка программирования 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Комментарии
Два числа захватываются как
<a>и<b>, каждое преобразуется через.Int.Встроенный блок объединяет подсовпадения — перемножает их — и сохраняет результат на совпадении, который затем и возвращает
made.