Курс 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   |   Тест — Створення граматик


💪 Або перейдіть одразу до вправ цього розділу.