Курс языка программирования Raku / Регулярные выражения и грамматики / Грамматики / Токены и правила / Exercises / Правило с пробелами
Решение: Правило с пробелами
Вот один из возможных вариантов решения задачи.
Код
grammar Phrase {
rule TOP { <word> <word> <word> }
token word { \w+ }
}
say Phrase.parse('the quick fox').defined;🦋 Исходный код можно найти в файле spaced-rule.raku.
Вывод
TrueКомментарии
Поскольку
TOPобъявлен какrule, каждый пробел, записанный между вызовами<word>, требует пробельного символа во вводе.В строке
'the quick fox'пробелы стоят между всеми тремя словами, поэтому она разбирается. БудьTOPобъявлен какtoken, пробелы в шаблоне игнорировались бы и разбор не удался бы.