Курс языка программирования Raku / Регулярные выражения и грамматики / Грамматики / Создание грамматик
Разбор с помощью parse
Чтобы применить грамматику, вызовите её метод .parse,
передав строку для анализа:
grammar Pair {
token TOP { <key> '=' <value> }
token key { \w+ }
token value { \w+ }
}
my $m = Pair.parse('x=5');
say $m<key>; # 「x」
say $m<value>; # 「5」.parse возвращает объект совпадения, когда грамматика
сопоставляется со всей строкой, и Nil,
когда нет. Поскольку весь ввод обязан совпасть, якоря ^ и
$ не нужны — .parse добавляет это требование
за вас:
say Pair.parse('x=5').defined; # True
say Pair.parse('x=').defined; # FalseОбъект совпадения
работает точно так же, как те, с которыми вы встречались раньше. Каждый
использованный в грамматике токен становится именованным захватом,
поэтому $m<key> и $m<value> дают
совпавшие части. Токены вкладываются друг в друга, поэтому грамматика
строит небольшое дерево совпадений — ему посвящён один из следующих
разделов.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Правило TOP | Тест — Создание грамматик →
💪 Или перейдите сразу к упражнениям этого
раздела.