Курс 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 тест за змістом цієї теми.
Навігація курсом
← Тест — Іменовані регулярні вирази | Тест — Що таке граматика →
💪 Або перейдіть одразу до вправ цього
розділу.