Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Тест — Именувани регулярни изрази | Тест — Какво е граматика →
💪 Или преминете направо към упражненията в този
раздел.