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