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