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

Решение: Правило с пробелами

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

Код

grammar Phrase {
    rule TOP   { <word> <word> <word> }
    token word { \w+ }
}

say Phrase.parse('the quick fox').defined;

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

Вывод

True

Комментарии

  1. Поскольку TOP объявлен как rule, каждый пробел, записанный между вызовами <word>, требует пробельного символа во вводе.

  2. В строке 'the quick fox' пробелы стоят между всеми тремя словами, поэтому она разбирается. Будь TOP объявлен как token, пробелы в шаблоне игнорировались бы и разбор не удался бы.

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

Правило с пробелами   |   Присваивание с пробелами