Курс по 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 тест върху съдържанието на тази тема.

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

Тест — Именувани регулярни изрази   |   Тест — Какво е граматика


💪 Или преминете направо към упражненията в този раздел.