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